프론트엔드 공부하면서 Node도 해야지 해야지 하다가
드디어 공부 시작!! 풀스택 가보자고
: 서버 측 자바스크립트 런타임 환경
Node.js V8 자바스크립트 엔진과 libuv 및 C/C++에 의존성을 가진 자바스크립트 런타임이다
일단 런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다.
V8은 자바스크립트 코드를 실행하도록 해주고
libuv는 이벤트 루프 및 운영체제 계층 기능을 사용하다록 API를 제공한다.
쉽게 말해 Node는 자바스크립트 코드 실행에 필요한 런타임으로 V8엔진을 사용하고, 자바스크립트 런타임에 필요한 이벤트 루프 및 운영체제 시스템 API를 사용하는데는 libuv 라이브러리를 사용한다는 뜻이다.
const http = require("http") // http 객체 생성
let count = 0
const server = http.createServer((req, res) => { // 서버 객체 생성
log(count); // 카운트 1 증가
res.statusCode = 200; // 결괏값 200
res.setHeader("content-Type", "text/plain"); // 헤더 설정
res.write("hello\n"); // 응답값 설정
setTimeout(() => {
res.end("Node.js"); // 2초 후 Node.js 출력
}, 2000)
})
function log(count) {
console.log((count += 1))
}
server.listen(3000) // 3000포트로 연결
require()함수는 모듈을 읽어오는 함수
createServer()는 서버 인스턴스를 만드는 함수이다
인수로는 콜백 함수를 받는데 콜백 함수에서는 http 서버로 요청이 들어오면 해당 요청을 처리할 함수를 설정함
콜백 함수는 요청 처리에 사용할 req와 res 객체로 인수를 받는다.
요청에 대한 상태 코드를 200으로 설정함
주요 상태 코드는 요런게 있음!
HTTP는 요청/응답에 대한 부가 정보를 설정할 수 있다.
부가 정보는 header에 설정하게 되는데, 여기서는 콘텐츠 타입을 'text/plain'으로 설정했다.
text/plain은 '텍스트를 평문으로 해석하겠다' 라는 뜻이다.
text/html이라면 '텍스트를 html로 해석한다' 라는 뜻!
이외에 자주 보는 헤더 설정은 Accept, Accept-Charset, User-Agent. Referer 등이 있다
응답으로 보낸다는 뜻
사용팔 포트를 3000번으로 지정
IP가 생략되었으므로 기본값인 localhost로 접속된다.
[Node.js] Express로 간단한 API 서버 만들어보기 (1) | 2024.07.22 |
---|---|
[Node.js] 라우터 만들기 (0) | 2024.07.21 |