요즘 Node에 대해 공부 중이다.
예전부터 조금씩 익혀오긴 했지만 본격적으로 Node 서버에 대해 샘플 프로그램을 작성해 보고 있다. 일반적으로 Mean(MongoDB + Express + angular.js+ NodeJS) 스택을 사용하는데, angular.js 가 익숙하지 못해 MongoDB + Express + Nodejs 까지만 적용해 봤다. 처음 시작할 때는 Javascript 에 대해서 익숙하고 Django를 하다보니 서버쪽도 많이 해봤고, cassandra 로 개발을 해봤기에 NoSQL 경험도 있기에 쉽게 생각했는데......
누군가 나처럼 Django에서 NodeJS 를 공부하는 사람들을 위해 몇가지 기록을 남긴다.
Django 로 개발할 때는 Eclipse + PyDev 를 주력으로 사용했는데, Node 의 경우 Eclipse 가 편하지 않았다. 세팅 환경 잡기도 어려웠다. 물론 내가 제대로된 가이드를 찾지 못해서가 원인 일 수도 있다. 어째든 vscode 로 환경을 설정했는데, 크게 불편하지는 않았다. (물론 난 vscode 로 파이썬을 개발하기도 한다. )
Django 를 주력으로 사용했던 사람이다 보니 뭔가 맨바닥에서 부터 시작한다는 느낌이 드는 것 같았다. Django 의 경우 UserModel 을 기본적으로 제공하는데 Express의 경우 그런게 따로 없다. 그래도 라이브러리가 있는데 Passport.js(http://www.passportjs.org/) 가 가장 많이 사용하는 것 같았다. 그리고 local에서 mongoDB 까지 User 를 생성하려면 아무래도 passport + passport-local + passport-local-mongoose 를 이용하는게 편하다. https://github.com/saintedlama/passport-local-mongoose 에 있는 test 내용을 잘 참고해서 환경을 구축하는게 좋은 것 같다.
Express 템플릿 엔진은 jade 와 ejs 가 있는데 HTML 에 익숙한 사람이라면 ejs 가 더 편하다. Jade 의 경우 기존 HTML 형태가 아니라 새로운 형태로 만들어야 한다. (물론 ejs 도 몇가지 자체 문법이 있다. )
내 경우, Bootstrap 템플릿을 이용해서 HTML 쪽을 구현하는 편이데, HTML 을 수시로 Copy & Paste 하는데 익숙하다보니 내가 개발하는 속도 상에서 너무 차이가 나서 ejs 를 사용했다. (물론 angular.js 를 사용한다면 딱히 템플릿엔진이 필요 할 수 없을 것 같다. )
MongoDB의 경우 모델링 개념 잡는데 조금 어려움을 겪었고, 그리고 그 데이터를 Query 하는데 더 많은 어려움을 겪었다. 모델링보다 Query 구문 만드는게 더 어렵다. 물론 Query 하나하나는 그렇게 까지 어렵지 않은데(물론 오타같은 것은 눈에 안 익어서 고치는게 오래걸린다... 이것 내 머리와 손의 문제다.... 그리고 에러 문구에 익숙해지는 것도 신기술을 배울 때 어쩔 수 없기 겪어야 하는 절차겠지....) 최적화해서 한 방에 Query 짜는 것은 기능을 모두 알지 못해 오래 걸리고 있다. 뭐, 이건 SQL 쪽에서 Query 최적화와 마찬가지니 계속 익혀나가는 수 밖에 없을 것 같다.
어느정도 샘플이 작성된다면 Git 에 올리도록 하겠다.
from http://yiunsr.tistory.com/755 by ccl(S) rewrite - 2020-03-06 19:54:53
댓글
댓글 쓰기