일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 사설 ip
- http 413
- golang
- GoF 디자인패턴
- go
- UnBuffered channel
- 윈도우키보드
- 오블완
- Intellij
- intellij ide
- Golines
- AWS
- goland
- apollo router
- gitops
- 배포 파이프라인
- 티스토리챌린지
- Buffered channel
- System Design
- 대규모 시스템 설계
- 배포 프로세스
- GoF
- body size
- Kubernetes
- elasticsearch
- Infra
- 디자인패턴
- notification system
- 컴포지트패턴
- Logrus
Archives
- Today
- Total
Fall in IT.
Node.js, Express 개념정리하기 본문
반응형
반갑습니다. 오늘은 Node.js, Express의 개념에 대해서 간략히 알아보도록 하겠습니다.
Node.js의 개념
- 구글의 크롬 V8 자바스크립트 엔진을 기반으로한 비동기 IO 를 지원하는 고성능네트워크 서버이다.
- 프로그래밍 언어로 Javascript를 사용한다.
- 2009년 유럽 JSConf의 라이언 달이 V8을 이용하여 자바스크립트의 강력함과 단순함을 활용한 이벤트 기반의 논블로킹 I/O를 주 컨셉으로 만든 백엔드(Back-end) 자바스크립트기반 서버이다.
Node.js 장점
- 매우 빠른 고성능 서버
- 비동기 처리로 인해 퍼포먼스가 증가한다. - 한가지 언어(Javascript)를 사용하여 개발 할 수 있다.
- 서버-클라이언트 모두를 개발할 수 있다. - 프론트엔드 개발자들이 직접 서버 개발을 할 수 있다.
- 즉, 프론트엔드 개발자는 하나의 어플리케이션을 혼자 개발 할 수 있다. - 광범위한 커뮤니티
- 이미 많은 커뮤니티들이 활성화 되어있다. - 탁월한 생산성
- Java 언어를 사용하여 REST API + DB 기술을 사용하여 백엔드를 개발할때와 node.js로 개발할 경우 node.js로 개발할때 더 빠르게 개발 할 수 있다. (단, 프로젝트의 시나리오에 따라 달라질 수 있습니다.)
Node.js 사용 시 주의사항
- 싱글스레드이기 때문에 하나의 작업 자체가 시간이 많이 걸리면 전체 시스템의 성능이 낮아진다.
- CPU를 많이 사용하지 않는 작업 위주로 개발되어야 한다. - 코드의 가독성이 좋지않다.
- 자바에 비해 자바스크립트는 코드의 가독성이 좋지 않기 때문이다.
- 코드의 가독성이 좋지 않다보니, 유지보수가 어려워 질 수 있다. - 실행해봐야 에러를 확인 할 수 있다.
- 컴파일시 확인이 불가하다. - 프로그래밍 컨셉이 기존의 서버사이드 컨셉과는 달라서 적응 시간이 필요하다.
- 코드를 순차적으로 실행하는 것이 아니라, 비동기 방식으로 이벤트를 보내 놓고, 그 응답에 대한 이벤트가 오면 핸들러를 통해서 처리하는 형식이기 때문에, 기존 서버 프로그래밍 모델과는 많은 차이가 있다.
Node.js를 사용하는데 적합한 어플리케이션은?
Node.js 의 특징을 살펴보면 짧은 시간에 대량의 클라이언트 요청을 처리하는 웹 어플리케이션을 개발하기엔 적합하나, CPU의 사용이 높게 필요한 어플리케이션의 경우(특히, 하나의 작업처리 시간이 길게 필요한경우)에는 오히려 성능이 좋지 않을 수 있을것 같습니다.
간단히 말하면, Node.js는 간단하지만 많은 양의 처리를 요하는 서버를 구축할때 효율이 좋습니다.
Express.js의 개념
Express.js는 Node.js를 위한 빠르고 간편한 웹 프레임워크입니다.
다양한 웹프레임웍이 있지만 현재까지 가장 많이 사용하는 것이 바로 익스프레스 엔진입니다.
"Express.js는 Node.js의 핵심 모듈인 http와 Connect 컴포넌트를 기반으로 하는 웹 프레임워크다. 그러한 컴포넌트를 미들웨어(middleware)라고 하며, 설정보다는 관례(convention over configuration)와 같은 프레임워크의 철학을 지탱하는 주춧돌에 해당한다. 즉, 개발자들은 특정 프로젝트에 필요한 라이브러리를 어떤 것이든 자유롭게 선택할 수 있으며, 이는 개발자들에게 유연함과 수준 높은 맞춤식 구성을 보장한다."
(쉽게말하면, Node.js 개발시 개발을 빠르고 손쉽게 할 수 있도록 도와주는 역할을 합니다. 이것은, 미들웨어(Middleware) 구조 때문에 가능한 것입니다. 자바스크립트코드로 작성된 다양한 기능의 미들웨어는 개발자가 필요한 것만 선택하여 익스프레스와 결합해 사용할 수 있습니다.)
참조사이트
- http://wikibook.co.kr/article/what-is-expressjs/
- http://expressjs.com/en/starter/installing.html, express 공식 홈페이지
- https://nodejs.org/en/, node.js 공식 홈페이지
반응형
'프로그래밍언어 > Node.js' 카테고리의 다른 글
모듈 - npm으로 모듈설치하는 방법 (0) | 2016.07.17 |
---|---|
Node.js에서 세션 사용하는 방법 (0) | 2016.04.27 |
Node.js에서 쿠키하는 사용방법 (0) | 2016.04.26 |
실행중인 Node.js 프로그램 자동재시작 프로그램 Supervisor (0) | 2016.04.05 |
Node.js 설치 및 시작하기. (0) | 2016.03.31 |
Comments