sails.js 에 대한 단상 #1

sails.js 를 이용해서 본격적으로 개발을 시작한 지 약 3개월이 지났다.

물론 기술 검토 기간을 고려한다면, 한달 정도를 덧붙여야 하지만, 지금 진행중인 프로젝트의 날짜를 고려해보면 대략 3개월.

아직 프로젝트가 끝나지 않은 상황에서 무엇인가를 논하기에는 부족한 부분이 많지만, 이 글은 현 시점에서의 sails.js 에 대한 내 소감을 담는것을 목표로 한다.

  1. 임모탄의 V8 보다 더 화려한 node.js 위에서
  2. DB의 경계를 가르는 Waterline ORM 을 품고
  3. 마법의 Blueprint CRUD API 를 막 뿌려대는
  4. 귀여운(?) 오징어 한마리.(로고가.. ;) )

장점

  1. 기본 기능에 충실한(?) API 개발 만큼은 진짜 빠르다. - 심하게 이야기하면, 스키마 잡고, ‘정책’설정만 잘 만지면 끝. -.-;
  2. 개발인지, 설정인지 가끔 헷갈리는 듯한 개발 스텝.
  3. 그래서인지 혼자 이것저것 다 하기 딱 좋다. - DB 도 설계하고, 그 위에 API 만들고, 프론트 백엔드 얼쑤~
  4. 생각보다(?) 안정적인 시스템 플랫폼. - 물론 초반에는 삽질 좀 했지만.. ㅎㅎ

단점

  1. node.js, javascript 의 탑재는 필수 - 좋게 생각하면 클로저의 세계에 빠지니, 이제 swift 로의 전환(?!)은 떡먹기? (쿨럭)
  2. 정체성의 혼란 - 나는 개발자인가, DBA 인가.. -.-a
  3. 아직 서비스에서 돌려보지 못한 경험 - 조만간 되겠지
  4. 한계가 분명한 Blueprint CRUD API, 특히, 검색! - 기본 검색은 탄탄한데, populated 된 값에 대한 검색이 pk외에는 안된다. ㅠ.ㅜ 어쩌면 되는데 내가 못하는 걸지도.. -.-;
  5. 아쉬움이 조금씩 남는, 그 부분을 코드로 채우려다 높아지는 코드 난이도. - Waterline ORM vs 그냥 join 이 나을까. 흐으음…
  6. Waterline ORM 그 자체의 이해도 조금 시간이 필요. - 특히 ‘관계’에서. 하지만 이건 방향을 찾았다.
  7. 한글 자료의 부족(사실 포기하고 찾아보지도 않았;;음) & 공홈의 데이터도 좀 부족;; - 그래도 막상 찾으면 있긴 있다.. -.-;;
  8. 퍼포먼스 문제? - 그,글쎄.. @_@;;;

결론

  1. 혼자 지지고 볶고 할 때, 좀 급하게 만들어야(!)할 때, 혹은 스타트업에게는 좋은 선택지가 될 수’도’ 있다고 봄
  2. 근데 어쩌면 그냥 가볍고 편하게, express.js 를 쓰는게 나을지도 - 사실 sails.js 가 express.js 위에서 돌아가는건 함정.
  3. 더 큰 문제는, 국내에서 쓰긴 쓰나염? -.-a

도전 과제

  1. Javascript 언어 그 자체에 대한 공부
  2. 이걸로 scalability 기반의 상용서비스까지 가보기
  3. Waterline ORM 을 위한 ER diagram tool for mac 개발 - 현재는 mySQLWorkbench(!) 사용중인데 아쉽아쉽.
  4. (전반적인) API 관리를 위한 업무 페이지 만들기 (현재 개발중)

… 이러다 PMS 까지 만들지도.. 쿨럭;

오늘까지의 작업 내역

- 72개의 테이블-.-;과 다 대 다 관계를 위해서 자동 생성된 +a 테이블들…

보너스

sails.js build order를 추천한다면..?

  1. 먼저, node.js 를 간단히 잡고, — http://nodeschool.io (learn you node) 추천
  2. sails.js 의 문서중 concept 쪽을 일독하면서,
  3. architect 와 부분 공개되어있는 e-book 을 같이 읽으면 금상첨화.
  4. 적고보니 3번의 e-book이 최고인듯.