일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- html tag
- java
- github
- stringbuffer
- Codeup
- entity
- HTML
- @AllArgsConstructor
- @NoArgsConstructor
- 프로그래머스
- SQL
- CRUD
- Python
- 브랜치
- git
- 상속
- DTO
- 캡슐화
- @builder
- 알고리즘
- HashSet
- 에러
- lv1
- 기본생성자
- 부트캠프
- 깃허브
- 파이썬
- 코드업
- 자바
- 부스트코스
- Today
- Total
잉?
Node.js란 무엇인가? 본문
Node.js는 Chrome V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임으로 정의되고 있다.
여기서 자바스크립트 런타임은 자바스크립트를 실행하기 위한 프로그램이다.
내가 이해한 바로는 FE(프론트엔드)를 위한 언어로는 대표적으로 JS(자바스크립트), HTML, CSS가 있다. FE언어인 JS를 브라우저 밖으로 가지고 나온 것이다. 즉, JS는 브라우저(웹=프론트)상에 포함되어 있는데 밖으로 가지고 나왔다는 것은 BE의 역할인 것이다. JS를 이용하여 서버를 만들 수 있다. JS는 브라우저에 종속되어 있었지만 Node.js가 생기면서 브라우저가 아니여도 모바일 앱 등 사용 할 수 있는 범위가 무한해졌다.
널리 쓰이는 언어(JSP, ...)로 웹 애플리케이션을 개발한다면 이 웹 애플리케이션은 일반적으로 아파치와 같은 웹 서버에서 동작하게 될 것이다. 이때 클라이언트가 웹 서버에 연결을 요청하게 된다면, 일정한 메모리 공간을 사용하여 새로운 쓰레드를 생성한다. 이런 형태로 사업자는 사용자를 위해 더 많은 서버를 추가할 수 밖에 없다. 여기서 발생하는 여러 비용의 문제를 발생시킨다. 또한 사용자 입장에서 마치 하나의 서버에 접속하는 것과 같은 효과를 주어야 하기 때문에 모든 서버는 같은 데이터를 동기화해야 한다는 문제를 발생시킨다.
바로 Node가 위의 문제를 해결하기 위해 등장했다.
노드는 연결을 처리하는 방법을 새로운 컨셉으로 변경하여 이 문제를 해결한다. 기존에는 각 연결에 대해 새로운 쓰레드를 생성하고 그에 따라 메모리를 할당하여 사용자 요청을 처리했다면, 노드에서는 각 연결이 하나의 이벤트로서 노드 엔진에서 처리된다.
NETFLIX, PayPal, UBER, Microsoft, Walmart는 Node를 사용하는 예이다.
프레임워크?
Node.js는 가볍고, 정말 기본적인 것들만 들어있기 때문에 더 쉬운 개발을 위해 모듈들을 추가해야한다. 프레임워크란 이 모듈들을 단순히 모은 라이브러리가 아닌, 웹 애플리케이션으로써 기본적인 시스템 자체를 제공하는 것을 말한다.
즉, 웹 프레임워크란 웹 사이트를 개발하기 쉽도록 만들어진 툴이라고 생각하면 된다. 이 프레임워크를 사용하면 전문가들이 만들어 놓은 틀에 맞춰 웹사이트도 쉽게 구축할 수 있다.
express 프레임워크?
express는 노드를 이용한 웹 서비스나 웹 애플리케이션 개발에 가장 널리 쓰이는 확장 모듈 중 하나다. 가장 인기가 많고 대중적이다. Node.js 패키지로 제공되고 있어서 npm에서 간단히 설치하고, 서버 프로그램을 만들 수 있다. 코드의 양이 줄고, 유지보수를 할 때도 쉽기 때문에 많은 곳에서 사용하고 있다.
여기까지 Node.js가 무엇이고, 프레임워크가 무엇인지에 대해 간략히 알아봤다.
'웹_WEB' 카테고리의 다른 글
[부스트코스] Web개발의 이해 - FE/BE (0) | 2020.04.01 |
---|