[Backend - 백엔드] Node.js

박규범·2023년 2월 26일
1
post-thumbnail

웹개발에서 백엔드를 구성할 수 있는 다양하게 있다. java, php, node.js, python 등.. 그 중 나는 javanode.js를 개발했었는데, 익숙한 node.js를 좀 더 깊숙하게 공부를 시작하고 싶다.

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

'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 등 여러 갈래의 기능을 개발하면 구색 갖춘 서버를 만들 수 있다.
하나하나 모두 딥한 영역이기 때문에 더 자세히 공부해야겠다.

profile
즐겁게 코딩합시다 😀

0개의 댓글