9/2 Node.js 입문 1주차 (2)

성준호·2024년 9월 2일
0

1. Module

1) Module이란?

  1. 모듈은 하나의 모듈에서 다른 모듈을 호출하여 사용할 수 있다.
  2. 모듈은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로 사용할 수 있다.
  • 모듈이 필요한 이유
    1. 코드 베이스를 분리하고, 코드를 구조적으로 관리할 수 있다.
    2. 코드를 재사용 가능하게 한다. (모듈화)
    3. 코드의 일부만 외부에서 사용하도록 노출시킨다.
    4. 해당 모듈이 참조하고 있는 다른 모듈에 대한 종속성을 관리한다.

  • CJS (CommonJS)
    CJS는 Node.js에서 기본적으로 사용되는 모듈 시스템이다.
    require 함수를 사용하여 다른 모듈을 불러올 수 있다.

  • ESM (ECMA Script Module)
    ESM은 최신 JavaScript에서 지원하는 모듈 시스템이다.
    모든 JS 환경에서 통합적인 인터페이스를 제공하기 위해 시작된 체계.
    CommonJS와는 다르게 정적으로 모듈을 가져오며 비동기적 모듈 로딩과 순환 종속을 처리한다.

2) Module 사용하기

  • export 명령어를 변수나 함수 앞에 붙여 외부 모듈에서 해당 변수나 함수에 접근할 수 있다.
  • import, require 명령어를 사용하여 외부 모듈의 기능을 가져올 수 있다.

1. API와 REST API의 개념

1) API란?

서로 다른 시스템 간의 통신을 할 수 있게 해주는 중개자 역할

2) API를 작성한다의 의미는?

  • 웹 어플리케이션에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미
  • 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션에 데이터를 제공한다.

3) REST API

REST (Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위해 네트워크 상에서 자원을 쉽고 명확하게 식별하고 조작할 수 있게 도와주는 소프트웨어 아키텍처의 한 형식이다.

  • REST 아키텍쳐는 사람이 봐도 쉽게 이해할 수 있도록 자원을 정의하고 이 자원을 중심으로 표현을 구성하는 원칙을 제시한다.

4) REST API의 구성 요소

  1. 자원 - URL
    • 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있다.
      • e.g 상품 -> /goods, 장바구니 -> /carts
  2. 행위 - HTTP method
    • 해당 자원에 대한 행위를 표현할 수 있다.
      • e.g GET 메서드는 조회와 관련이 있으므로 데이터를 읽는 작업, POST 메서드는 생성과 관련 있으므로 새로운 데이터를 생성하는 작업을 수행한다.
# 일반적인 method 사용 방식
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT),(PATCH)
Delete : 삭제(DELETE)
  1. 표현
    • 보통 JSON, XML 같은 형식을 이용해서 자원을 표현한다.
    • HTTP에서는 Content-Type이라는 헤더를 통해 표현 방법 서술

5) REST API 예시

router.get('/books', (req, res) => {
	res.json({ success: true, data: getAllBooks() });
});
  • /books라는 URL을 통해 전체 책 목록을 불러와 응답
  • GET은 리소스를 조회하는 역할을 담당하므로, 전체 책 목록을 조회하고, 그 결과를 JSON 형식으로 반환

2. Routing 이해 및 Router 학습

1) Routing이란?

클라이언트의 요청 조건(HTTP 메서드, 주소 등)에 대응해 응답하는 방식

2) Router란?

클라이언트의 요청을 쉽게 처리할 수 있게 도와주는 Express.js의 기본 기능

router.METHOD(PATH, HANDLER);
  • router: Express.js의 라우터를 정의한다.
  • METHOD: HTTP Method를 나타낸다. (get, post, put, patch, delete...)
  • PATH: 실제 서버에서 API를 사용하기 위한 경로
  • HANDLER: 라우트가 일치할 때 실행될 함수

3. API Client 학습

1) API Client란?

개발 단계에서 작성한 API의 요청을 확인하거나 테스팅 할 때 도움을 주는 툴

  • 대표적인 API Client는 Postman, Insomnia가 있다.

1. Request와 Response

1) Request, Response

  • Request란 클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체 (URL, HTTP method, 헤더, 쿼리 파라미터, 바디 데이터 등)
  • Response란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체 (응답 데이터, 응답 헤더 등)

2) Express.js의 흐름 파악하기

  1. 클라이언트는 특정 URL과 데이터를 담은 요청을 서버에 전송
  2. 서버는 받은 데이터에 따라 필요한 비즈니스 로직 수행
  3. 서버는 처리된 결과를 클라이언트에게 응답
profile
안녕하세요

0개의 댓글