📘 Node.js 실무 백엔드 개발


📖 1장. 서버와 Node.js의 이해


1.1 서버란 무엇인가

서버(Server)는 클라이언트(Client)의 요청을 받아 처리하고, 그 결과를 응답하는 시스템이다.
웹 환경에서 서버는 주로 다음과 같은 역할을 수행한다:

  • 데이터 저장 및 조회
  • 사용자 인증 처리
  • 비즈니스 로직 수행

웹 애플리케이션의 기본 구조는 다음과 같다:

클라이언트 → 요청(Request) → 서버 → 응답(Response) → 클라이언트

1.2 웹 애플리케이션의 구성

웹 시스템은 크게 세 가지 계층으로 나뉜다:

  • 프론트엔드: 사용자 인터페이스
  • 백엔드: 서버 로직
  • 데이터베이스: 데이터 저장소

이 중 본 교재는 백엔드 영역에 집중한다.


1.3 Node.js란 무엇인가

Node.js는 JavaScript를 브라우저 외부에서도 실행할 수 있도록 만든 런타임 환경이다.
기존에는 JavaScript가 브라우저에서만 실행되었지만, Node.js를 통해 서버 개발이 가능해졌다.


1.4 Node.js의 특징

이벤트 기반 구조 (Event-driven)

Node.js는 이벤트 발생을 중심으로 동작한다.
요청이 들어오면 이벤트가 발생하고, 해당 이벤트에 대한 처리가 수행된다.


논블로킹 I/O (Non-blocking I/O)

입출력 작업이 완료될 때까지 기다리지 않고 다음 작업을 수행한다.
이를 통해 높은 처리 성능을 확보할 수 있다.


싱글 스레드 기반

Node.js는 기본적으로 하나의 스레드로 동작하지만, 비동기 처리 덕분에 동시에 많은 요청을 처리할 수 있다.


1.5 Node.js의 동작 구조

Node.js는 내부적으로 이벤트 루프(Event Loop)를 사용한다.

요청 발생 → 이벤트 큐 등록 → 이벤트 루프 처리 → 콜백 실행

이 구조는 고성능 네트워크 애플리케이션에 적합하다.


1.6 Node.js의 활용 분야

Node.js는 다음과 같은 분야에서 널리 사용된다:

  • REST API 서버
  • 실시간 서비스 (채팅, 스트리밍)
  • 마이크로서비스 아키텍처

1.7 서버 개발에서의 역할

Node.js는 다음 역할을 담당한다:

  • HTTP 요청 처리
  • 데이터 가공 및 반환
  • 외부 서비스 연동

1.8 백엔드 개발의 핵심 요소

백엔드 시스템을 설계할 때 고려해야 할 요소는 다음과 같다:

  • 확장성 (Scalability)
  • 안정성 (Reliability)
  • 유지보수성 (Maintainability)

1.9 개발 환경 개요

Node.js 개발을 위해 필요한 기본 요소:

  • Node.js 런타임
  • 패키지 관리자 (npm)
  • 코드 편집기

1.10 정리

이 장에서는 서버의 개념과 Node.js의 기본적인 특징을 살펴보았다.
Node.js는 비동기 이벤트 기반 구조를 통해 효율적인 서버 개발을 가능하게 한다.

 

다음 장에서는 실제 개발 환경을 구축하고, 첫 번째 서버를 실행해본다.

+ Recent posts