웹개발에서 백엔드를 구성할 수 있는 다양하게 있다. java, php, node.js, python
등.. 그 중 나는 java
와 node.js
를 개발했었는데, 익숙한 node.js
를 좀 더 깊숙하게 공부를 시작하고 싶다.
javascript
는 인터프리터 언어이며, javascript 엔진을 통해 코드가 실행되기 때문이다. 브라우저에는 javascript 엔진이 내장되어있기 때문에 웹에서 동작할 수 있는 것이다. 근데 서버 환경에서 어떻게 동작할 수 있을까?
node.js
는 javascript를 실행시킬 수 있는 chrome V8 engine
이 내장되어 있기 때문에 웹 외의 환경에서도 동작할 수 있게 하는 런타임(실행) 환경이다.
chrome V8 engine
이란?
구글에서 제작한 자바스크립트 엔진이다.c++
로 작성되었고,javascript
전용의 웹 어셈블리 엔진이라고 할 수 있다. 원래javascript
는 인터프리터 형식이지만 V8 엔진은javascript
코드를 바이트코드로 컴파일하고 실행하는 방식을 샤용한다.
node.js
는 위에 설명했듯이 런타임 환경이기 때문에, node.js
만으로는 아무것도 할 수 없다. 설치했다고 서버가 뚝 만들어지는 것은 아니다. 서버를 구축하기 http 통신이 가능해야한다. 그럼 어떻게 할 수 있을까? http 라이브러리를 install 하여 코드를 작성하면 서버를 만들 수 있다. 하지만 그 외에도, 쿠키, 세션, URO, 보안 그 외에도 방대한 라이브러리들을 설치해야되고 사용법을 알아야 한다. 이를 보다 쉽게 해결해줄 수 있는 프레임워크가 있다.
'express.js
는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 node.js
웹 애플리케이션 프레임워크입니다.' 라고 공식 홈페이지에 적혀있다. 즉, node.js
를 사용해 서버를 쉽게 구성할 수 있도록 여러 라이브러리들이 내장되어 있는 프레임워크이다.
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
쨘! vsc를 열어서 위 코드를 작성만 하면 3000포트의 서버가 생성된다!
이제 에러발생 시 관리할 수 있는 error handler, cookie, auth 등 여러 갈래의 기능을 개발하면 구색 갖춘 서버를 만들 수 있다.
하나하나 모두 딥한 영역이기 때문에 더 자세히 공부해야겠다.