node.js란?
JavaScript 코드를 브라우저 밖에서 실행할 수 있게 해주는 런타임 환경
node.js 장단점
장점
비동기 이벤트 기반 IO를 사용해 동시에 여러 요청 다루기 편함
js를 사용해 프론트엔드 개발자의 백엔드 입문 쉬움
v8엔진이 JIT 컴파일러여서 서버 기동이 빠름
단점
멀티코어 사용시 별도의 작업 필요
콜백 중첩을 계속 사용하면 코드작성, 디버깅시 문제발생(콜백 지옥)
이벤트 기반 프로그래밍 경험이 없을 시 코드 작성이 어려움
싱글 스레드
콜스택이 하나만 존재
한 번에 하나의 작업만 가능
이벤트 기반 아키텍쳐
이벤트가 발생하면 미리 등록된 콜백 함수를 호출하여 처리하는 구조
이벤트 루프를 통해 비동기적으로 작업을 수행하는 프로그래밍 방식
이벤트 루프
Node.js에서 비동기 작업을 처리하기 위해 이벤트와 콜백 함수를 관리, 실행하는 메커니즘
단일 스레드 환경에서 논블로킹 방식으로 동작하도록 지원하는 핵심 구성 요소
Nodejs 문법
- const http=require("http");
- require() 함수는 모듈을 읽는다.
- http 모듈을 불러와 http 변수에 할당
- res.statusCode=200
- 요청에 대한 상태 코드를 200으로 설정
- 200은 성공 상태에 따라 코드가 다름
- const server=http.createServer(callback);
- createServer() 함수는 서버 인스턴트를 만든다
- 인수를 콜백함수로 받아 서버 요청을 처리
- log(count);
- 전역변수 count를 이용해 요청에 대한 로그를 간단하게 남긴다
- res.setHeader("Content-Type", "text/plain")
- header에 부가 정보 설정
- 콘텐츠 타입은 콘텐츠가 어떤 데이터인지 나타냄
- setTimeout(()=>{res.ent(" ")},2000)
- setTimeout()함수는 콜백 함수와 숫자를 입수 받음
- 지정한 시간후 "" 안에 있는 내용으로 응답
- server.listen(8000, ()=>console.log(" "));
- 사용한 포트 번호 지정
- 이 코드에서는 800번
- res.write(" ")
- 응답으로 "" 안에 있는 내용을 내보냄
'web > web' 카테고리의 다른 글
| flask 1일차 (0) | 2025.09.24 |
|---|---|
| node js 3, 4차시 (0) | 2025.08.17 |
| nodejs 1차시 (4) | 2025.08.10 |
| JS 4차시 - 비동기 (1) | 2025.07.29 |
| Js 3차시 - 객체 (3) | 2025.07.28 |