
스키마 메소드 모듈분기 안녕하세요:) 지난 포스팅까지 우리는 몽구스 모듈을 활용해서 로그인과 관련된 여러가지 기능들을 구현해 보았습니다. 그런데 쭉쭉 잘 코딩하고 나니 기능적인 문제는 없지만 가독성이 떨어지는것이 문제였습니다. 세,네가지의 DB 운용 메소드들과 요청path에 따른 라우팅 미들웨어들을 쭉 열거하니 코드의 분량이 400라인이 훨신 넘어갔습니다ㅠㅠ 이번 포스팅에서 다루어볼 내용은 메인모듈에서는 스키마 관련 코드(메소드 및 필드 초기화)를 메인 코드에서 분기하여 모듈화하는것을 해보겠습니다. 만약 모듈을 분기한다면 메인이 되는 node파일에서의 가독성은 증가하게 되고 이는 디버깅시에도 훨씬 유리하게 작용할것입니다. 파이썬 장고 프레임워크에서는 새로운 웹프로젝트 또는 웹앱 에디팅을 시작하게 되면 분..

데이터를 암호화, 입력값 유효성 확인하기. 안녕하세요:) 이번 포스팅에서는 암호화와 암호화된 데이터의 유효성을 확인해보겠습니다. 혹시 리눅스 운영체제를 이용해보신 경험이 있으신가요? 저는 우분투 리눅스를 근 1년동안 잘 사용해 왔습니다. 어쨋든 리눅스 운영체제에서 새로운 사용자를 추가하고 관리자 계정을 통해 사용자 정보가 담겨있는 파일의 정보를 조회해보면 비밀번호부분이 암호화 되어있어서 관리자 조차 사용자의 암호를 알수없습니다. 이처럼 로그인 기능에서 비밀번호의 암호화는 필요합니다. 그렇다면 이를 어떻게 해야 할까요? 개념적으로 먼저 살펴본다음 코드로 연결해 보겠습니다. 1. 지금까지 해온방식 우리는 지금까지 비밀번호를 그대로 데이터베이스에 삽입하는 방식을 선택해왔습니다. (아래의 그림처럼 1234를 패..

몽구스 모듈로 Database를 운용하여 로그인기능 구현하기 안녕하세요:) 이번 포스팅에서는 몽구스 mongoose 모듈을 운용해보겠습니다. mongodb모듈과는 달리 몽구스 모듈은 스키마 객체에 도큐먼드를 매핑해서 운용합니다. id와 name과 password 세가지의 값을 포함하는 도큐먼트를 데이터베이스 컬렉션내에서 선언한후 node의 코드에서 매핑한다 해보겠습니다. 이전까지의 포스팅에서는 mongodb모듈을 활용한 아래와 같은 방법을 사용했습니다. 1. database라는 변수명으로 로컬 데이터베이스와의 커넥션을 객체화 시키기 2. 객체화 시킨 database를 활용하는 함수를 모듈화하여 사용하기, 예를 들어 addUser함수 모듈에서는 database의 users 컬렉션과 커넥션을만든후 inser..

이번포스팅에서 진행해볼 컨텐츠는 지난번에 만들어본 DB연동 수도퀴즈 웹사이트에서 유저가 문제를 조회할수 있고 추가할수도 있도록 해보았습니다. 지난 포스팅에서 웹브라우저에서 DB내의 데이터를 update 하는것까지 다루어 보았습니다. 지난포스팅에서 사용했던 DB를 조작하는 코드를 유기적으로 엮어내면 수도퀴즈 문제를 추가하는 미들웨이는 어렵지 않게 구현할수 있었습니다. 추가적으로 할일은 DB내의 데이터를 모두 조회하여 페이지에 출력하는일이었습니다. 코드는 아래와 같습니다. 결과) 다음포스팅 부터는 몽구스모듈을 활용한 데이터베이스 제어를 다루어 보겠습니다. 이후에는 데이터베이스를 활용한 한두가지 토이프로젝트를 진행후 이번 카테고리의 포스팅을 마무리할 계획입니다.

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 Express의 mongodb 모듈을 이용해서 몽고디비에 데이터를 삽입하고 수정하는것입니다. 지난 시간 우리는 DB의 데이터를 조회해서 이를 활용해 로그인 기능과 간단한 퀴즈의 정답오답을 표현해주는 웹앱을 만들어보았습니다. 이번에는 모듈을 이용해 DB내에 데이터를 직접삽입하고 수정하는 기능을 구현해보겠습니다. 로그인으로 치면 사용자 생성과 사용자 수정 기능입니다. 방법은 database.collection('users').find({}) 를 지난시간에 다루어보았기 때문에 그리 어렵지 않습니다. 컬렉션속성의 메소드인 insertMany 와 updateOne 을 사용하면 됩니다. 함수는 다음과 같습니다. 각각의 요청에 대한 미들웨어 구성은 아래와 같습니다. 결..

안녕하세요 :) 이번에 다루어 볼 내용은 Node.js 의 Express 모듈에 몽고DB를 연동한 웹 어플리케이션을 만들어 보겠습니다. 먼저 mongodb를 연동하기 위해 필요한 외부 모듈 명은 mongodb입니다. npm install --save 명령을 통해 설치를 해주고 필요한 모듈들의 설치를 진행해준후에 아래와 같은 모듈이 설치되어있는 디렉터리를 만들어주세요. (설치된 모듈은 package.json 파일을 통해 알수있습니다.) 이후 로그인 확인을위해 이전에 만들어둔 users 데이터베이스에 id, name, password 정보를 포함하는 도큐먼트를 만들어줍니다. 아래와 같습니다. db.users.insert({ id: 'test01', name : 'kim', password : 1234 }) ..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 몽고디비에 데이터를 추가 하거나 조회하기 입니다. 이전 포스팅에서 몽고디비에 대한 기본적인 개념과 설치까지 진행해보았습니다. 이번에는 설치이후 데이터베이스를 활성화시킨 상태에 이어서 조회와 추가를 진행해보겠습니다. 활성화 이후 새로운 터미널을 열어(윈도우의 경우 명령 프롬프트 또는 파워셸) mongo 라는 명령어를 입력합니다. 그러면 아래와 같이 버전정보가 출력되면 몽고디비 데이터베이스와 연결된 셸이 실행됩니다. 이후 use local이라는 명령어를 통해 local 데이터 베이스에 연결합니다. (그럼 여기서 감이 옵니다. 우리가 --dbpath라는 명령을 통해 데이터베이스화 한 폴더는 그냥 폴더에서 데이터베이스로 변경된것을 알수 있습니다.) 다음 명령을 입..

안녕하세요 :) 이번 포스팅에서는 몽고디비가 무엇인지 알아보고 설치를 진행해보겠습니다. 우리가 보편적으로 처음 접하는 데이터베이스는 mysql 또는 sqllite과 같은 관계형 데이터베이스일것입니다. 하지만 몽고디비의 경우 관계형 데이터 베이스와는 달리 SQL을 사용하지 않습니다. 자바스크립트 객체를 그대로 저장할수 있기 때문에 데이터 조회 방식또한 SQL과 많이 다릅니다. 이러한 비관계형 데이터베이스를 NoSQL이라 많이 부릅니다. 비관계형 데이터베이스가 주목받기 시작한 대부분의 이유는 성능측면에서 우수하기 때문입니다. 시스템의 신뢰도를 높이기 위해 필요한 많은 장치를 수반하고 있기 때문에 성능이 좋습니다. SQL의 경우 쿼리문을 읽어와 실행하는 측면에서 많은 리소스를 사용하고 성능이 떨어지는 반면 N..