예전에도 그랬지만 웹 개발은 할 것이 너무 많다..
서버측 기술에 클라이언트측 기술..디자인이나 설계는 제외를 하더라도 배워야 할 것이 너무 많다..서버쪽 페이지를 cakephp로 만들다가 클라이언트쪽 문제가 생기면 구글 디버그 도구 열어놓고 자바스크립트를 끄적거려야 하는데 문법도 헷갈리고 개념도 다르니 어려운 부분이 많았다.
그러다가 클라이언트쪽 페이지 개발에서 자바스크립트가 엄청나게 중요하다는 생각이 들어서 공부를 하려다보니 엥? 서버측 페이지 개발도 자바스크립트로 가능하다는?? 구뤠~잇?
그것이 바로 Node.js 였다..서버사이드에서 움직이는 자바스크립트.
서버쪽도 클라이언트쪽도 같은 언어로 쓸 수 있다는 것이 정말 매력적으로 다가왔다.
또한 속도가 빠르고 웹 이외에도 IoT 등에서도 활용이 가능하다는 이야기를 듣고 공부하기로 마음을 먹었다 ㅋ
- Javascript는? : 처음에는 브라우저를 제어하는 정도로 생각했던 언어로 나는 팝업창을 띄우거나 서브메뉴를 표시하는 코드를 복사해서 수정하는 레벨이었다.
그랬던 자바스크립트가 구글에서 손을 대기 시작하면서 탈바꿈을 하기 시작, 엔진도 달라지고 설계도 달라지면서 처음에는 프로그래밍언어라고 하면 비웃음을 받던 천덕꾸러기에서 올라운드 플레이어 같은 존재가 되었다.
- Node.js는? : 그동안 PHP나 ASP, JSP 같은 언어로 개발되던 서버측 개발을 Javascript 로 가능하게 해 준 그야말로 혁신적인 언어...랄까? 정확하게 이야기하면 서버사이드에서 자바스크립트로 개발 가능한 플랫폼? 혹은 서버사이드에서 자바스크립트를 구동 가능한 런타임?환경? 이란 표현이 더 정확할 듯.
- 특징 : 여러가지가 있고 아직 공부 중이라서 다 이해를 하고 있지는 않지만..ㅠㅠ
- 웹서버가 필요없음 : 지금까지 웹개발을 할 때 당연히 깔아야 했던 Apache 웹 서버 같은 웹서버를 설치할 필요 없이 Node.js 에서 서버를 자체적으로 구축해서 서비스를 제공할 수 있다.
- 리얼타임에 강력함 : 비동기 방식에 이벤트 주도 런타임으로 확장성이 뛰어나고 속도 및 퍼포먼스가 좋다.
- 플랫폼에 독립적 : 자바스크립트를 기반으로 하므로 운영체제나 브라우저 관계없이 실행이 가능하다.
- 주의점 : 서비스 규모나 성향을 생각하면 소규모에 기동성이 높으며 실시간으로 응답을 해야하는 리얼타임 & 싱글페이지 앱/웹 개발에 적합하다고 한다. 하지만 뭐 대규모 프로젝트에서도 사용되고 있으니 그닥 와 닿지는 않는다.
- 내가 느낀 문제점 : 자바스크립트의 개념 및 구조를 모르면 정말 어렵고 헤메이기 쉬운 듯 싶다. 예를 들면 콜백 함수라던가 클로져라던가. 15년 전 자바스크립트를 기억하고 있는 나에게는 너무 거대한 벽처럼 느껴지더라. 또한 Node.js 자체 컨셉도 기존의 서버측 개발 언어와 다르므로 학습할 때 조금 노력이 많이 드는 느낌도 든다. POST로 데이터 전송을 하려고 하면 별도의 미들웨어를 설치해야 한다던가, npm이나 bower 등으로 의존성을 관리하는 것 등이 대표적으로 어려웠던 부분.
테스트 코드를 돌려보고 이것저것 만져보고 있는데 재미있는 기술이라는 생각이 들었다.
앞으로 학습 잘 해서 실무에서 써 먹어보려고 한다.
[원문 & 참조]
初心者向け!3分で理解するNode.jsとは何か?
댓글
댓글 쓰기