개요


 스프링을 공부하고 회사에서도 스프링을 다룬다. 그러나 스프링의 심오함은 파도파도 끝이 없는 것 같다. 결정적으로 새로운 언어의 학습 필요성을 느낀 때가 있엇다. 

 Cloud 서비스 및 빅데이터 강의를 연수원에 있을때 들은 적이 있는 데, 강사님과 Back-End와 Front-End에 대해서 이야기를 나눈 적이 있엇다.

 강사님 왈 "한국에서는 백엔드 하면 무조건 JSP,Servlet(스프링) 인데 이미 외국은 노드제이에스 파이썬 장고로 많이 넘어갔어요. 미리미리 준비해두세요." 이런식으로 말씀 하신게 기억이난다.

 그 이후로 nodejs에 대해 조금 스터디를 하고 싶어졌고 하둡 생태계처럼 nodejs도 생태계가 존재하는 것이었다.



그래서 MEAN STACK 이 뭔데??


일단 이 그림부터 보고 가는 게 좋겠다.

 다음과 같은 프로그램의 앞글자를 따서 약자로 쓴 것 인데, 여기서 주목할 만한점은 모든 데이터를 JSON 형태로 주고받는 다는 것이다.

 특히 가히 충격점인점은 DB인데, document 기반(추후 따로 올려야겠다)이다. (몽고디비는 BSON이라고 불리는 바이너리 제이선으로 저장함) 이라는 것이다. RDB의 형식을 파괴하고, 무려 이름은 No-SQL 이다.! 

 물론 오래전부터 주목받았겠지만, 최근에 알게된 나는 JSON으로 프론트에서 디비까지 데이터 변형없이 주고받는게 너무 신선했다. 


장 단점


- 장점

  • 일단 4가지 언어의 공통점은 JavaScript의 뿌리를 가진다. 한 가지 언어로 프론트부터 백단까지 구성!!
  • 굉장히 간단하다. 스프링에 비한다면 가히 폭팔적인 생산성이라고 할 수 있겠다.(코드 짜는 속도가 완전 빠름)
  • 빠르다. 일단 NodeJs가 NonBlocking,Single-Thread를 추구하므로 단점도 있긴 하지만 빠르다. 또한 DOM기반 Jquery에 비해 AngularJS가 훨 씬 빠르다. (물론 어떻게 쓰느냐에 따라 많이 다르다)


- 단점

  • AngularJs는 진입장벽이 확실히 높다. 개인적으로 Jquery는 굉장히 직관적이어서 selector개념만 익힌뒤, 원하는 기능을 왠만하면 다 만들어 낼 수 있엇다. angularjs는 뷰단에서 프레임워크를 구성하기 때문에, 그리고 바인딩 개념때문에 확실히 초반진입장벽이 있다.
  • 한국은 아직까지 JAVA가 대세. 말 그대로 어쩔 수 없는 것 같다. 아직까지 자바공화국 한국에서는 nodejs 기반 프로그래밍은 스타트업에서 쓰이는 정도이다. (나도 자바로 취직을 했다. MEAN stack은 스터디 개념)
  • MongoDb에는 트랜젝션이 없다. 이 부분에서는 좀더 스터디를 하면서 채워나가야 겠다.

결론


 나는 회사원보다는 개발자가 되고싶다. 

언어는 90년대부터 시작해서 굉장히 많이 변해 왔다. 목수나 기술자에게 생산성이 높은 툴이 나온다면, 주저하지 않고 사용법 정도는 익혀놔야 할 것이다. 개발자에게는 더욱 중요 하다. 








+ Recent posts