node.js 공부 중입니다. 탬플릿 엔진 Jade & EJS 와 NoSQL MongoDB & OrientDB 에 대해서 궁금합니다.


Node.js 공부 중입니다.

질문이 매우 간단하지만, 중요한 부분인 것 같아 질문 드립니다.

  1. 탬플릿을 사용하여 개발하려고 하는데, jade 와 ejs 중 어느 것을 공부해야할지 선택하는데 어려움이 있습니다.

  2. 마찬가지로, DB도 node.js와 연동하여 사용할 것인데요. 웹 사이트를 개발하는데에 MongoDB 와 OrientDB 중 고민입니다.

실무 개발은 해보지 않아서, 현업에서 어떻게 사용하는, 어떤 것을 범용적으로 사용하는지, 장 단점이 궁금합니다.

ps. 둘 중 하나를 선택하여 공부하는데에 도움이 될 수 있게...

  • 2016년 04월 09일에 작성됨
    웹 사이트 공부 중입니다. 많은 도움 주시면 좋아요.

조회수 715


1 답변


좋아요
1
싫어요
채택취소하기

jade vs ejs

기능상으로만 보면 jade가 훨씬 앞섭니다. block을 정의하거나 mix-in으로 여러 블럭을 섞는 등 보다 더 선언적이며 높은 수준의 추상화가 가능합니다. 그러나 반면 순수 HTML과는 많이 이질적이고, bootstrap등과 같이 복잡한 구조의 HTML을 표현할 때는 들여쓰기 기반이 오히려 가독성을 해칠 수 있습니다. 마지막으로 선언적 문법이 항상 장점만 있는 것이 아니라서 쉬운 문제를 돌아가야 하는 경우가 발생할 수 있습니다.

ejs는 이름 그대로 HTML안쪽에 코드를 포함시키는 형태이기 때문에 순수 HTML에 비해 이질감이 덜 하며 학습곡선이 아주 낮은 장점이 있습니다. 다만 아주 빠르게 HTML이 스파게티화 될 수 있습니다.

ejs vs jade는 어떤 한쪽을 선택함으로서 포기해야 하는 부분이 많이 없기 때문에 취향 차이로 경정되는 경우가 많습니다.

실무에서라면 HTML마크업을 당당해 주시는 퍼블리셔분이 계신 구조라면 ejs를 택하시는게 유리할 것이고, 직접 마크업을 계속 작업해야 한다면 jade를 선택하는게 좋을 것이라 생각됩니다.

mongo db vs oriend db

이 부분은 제가 경험이 많지는 않은점 참고해서 읽어주세요. 먼저 두 디비는 성격이 조금 다릅니다.

기능적으로 보면 oriend(graph db)mongo(document db)의 슈퍼셋 입니다. 또한 전자의 경우 acid 수준의 트랜젝션과 쿼리 언어로 sql지원 등 기존 rdb가 제공하는 몇가지 기능을 함게 제공하는데 반해 후자는 그렇지 않습니다.

조금 더 자세한 차이점은 몽고vs오리엔트를 참고하시는게 좋을것 같습니다.

mongo db의 경우 초반에 문제가 아주 많았던 것으로 들었는데, 최근(v3.0) 버전은 많이 개선 된 것으로 알고 있고, 무엇보다 몇몇 큰 서비스에서 사용된 레퍼런스가 있습니다.

성공적인 레퍼런스는 기술 선택에 있어서 매우 매우 중요합니다.

p.s: 공부하시는 것이라면 하나를 선택해서 하지 마시고 모두 해보시는게 좋습니다.

  • 2016년 06월 01일에 수정됨
    프로그래밍 언어를 좋아하는 프로그래머
  • 2016년 04월 09일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머

  • 좋은 말씀 감사드립니다. 공부를 하면서 서비스를 만들고 있어서 둘 다 해보지 못하고 질문하게 되었습니다. mongo db 와 orient db 가 심히 고민되는 이유는 전자가 후자보다 인터넷에 정보가 훨씬 많더라구요. 강력함은 후자인 것 같으나... 아무튼 감사드립니다.    상남자   2016.4.9 13:18     
  • @상남자 서비스에 적용 예정이시라면 `mongo`를 추천드립니다. 적어주신것 처럼 자료도 많고 성공적 레퍼런스도 몇 있으니까요.    정대원   2016.4.9 13:50     
  • 그래야겠네요!! 아무래도 구현하려면 정보가 많아야하니까... 정말 감사드립니다!!    상남자   2016.4.9 16:19     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close