상세 컨텐츠

본문 제목

[Node.js] Node.js 입문!!

Node.js

by 래모 2024. 7. 12. 15:58

본문

프론트엔드 공부하면서 Node도 해야지 해야지 하다가

드디어 공부 시작!! 풀스택 가보자고


Node.js

: 서버 측 자바스크립트 런타임 환경

 

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포트로 연결

 

 

✔️const http = require("http")

require()함수는 모듈을 읽어오는 함수

 

✔️const server = http.createServer(callback)

createServer()는 서버 인스턴스를 만드는 함수이다

인수로는 콜백 함수를 받는데 콜백 함수에서는 http 서버로 요청이 들어오면 해당 요청을 처리할 함수를 설정함

콜백 함수는 요청 처리에 사용할 req와 res 객체로 인수를 받는다.

 

✔️ res.statusCode = 200

요청에 대한 상태 코드를 200으로 설정함

주요 상태 코드는 요런게 있음!

 

 

✔️ res.setHeader("Content-Type", "text/plain")

HTTP는 요청/응답에 대한 부가 정보를 설정할 수 있다.

부가 정보는 header에 설정하게 되는데, 여기서는 콘텐츠 타입을 'text/plain'으로 설정했다.

 

text/plain은 '텍스트를 평문으로 해석하겠다' 라는 뜻이다.

text/html이라면 '텍스트를 html로 해석한다' 라는 뜻!

 

이외에 자주 보는 헤더 설정은 Accept, Accept-Charset, User-Agent. Referer 등이 있다

 

✔️ res.write("hello\n")

응답으로 보낸다는 뜻

 

✔️ server.listion(3000)

사용팔 포트를 3000번으로 지정

IP가 생략되었으므로 기본값인 localhost로 접속된다.

 

 

'Node.js' 카테고리의 다른 글

[Node.js] Express로 간단한 API 서버 만들어보기  (1) 2024.07.22
[Node.js] 라우터 만들기  (0) 2024.07.21

관련글 더보기