프로그래머스 데브코스TIL

[week2] 백엔드 기초 : Node.js + Express 기본 (1)

이규현2026-01-15
[week2] 백엔드 기초 : Node.js + Express 기본 (1)

API란?

  • Application Programming Interface
  • 서로 다른 소프트웨어가 데이터를 주고받거나 기능을 호출할 수 있도록 규격화된 소통 방식(인터페이스)이다.

REST API란?

  • Representational State Transfer API
  • 웹(HTTP)의 기본 원칙을 잘 지켜서 API를 만들자는 일종의 가이드라인
    • REST란?
      • 아키텍쳐 스타일의 제약 조건을 준수하여 만든 프로그래밍 인터페이스
        • 6가지의 설계 원칙이 있음
  • RESTful API는 REST의 규칙을 더 엄격하게 지키는 것을 의미

REST API 작성 규칙

  1. 소문자 사용

    • URL 경로에는 대문자를 사용하지 않고 모두 소문자로 작성
      • 예: /User-Profiles (X) → /user-profiles (O)
  2. 하이픈 사용

    • 가독성을 위해 단어 사이에는 언더바(_) 대신 하이픈(-)을 사용
      • 예: /user_orders (X) → /user-orders (O)
  3. 슬래시(/)와 계층 구조

    • 슬래시는 자원 간의 계층 관계를 나타낼 때만 사용하며, URL 마지막에는 붙이지 않음
      • 예: /users/1/ (X) → /users/1 (O)
  4. 행위 포함 금지

    • URL에 get, delete, update 같은 동사나 함수명을 넣지 않음
    • 행위는 HTTP Method(GET, POST 등)로 표현
      • 예: /get-products (X) → GET /products (O)
  5. 파일 확장자 사용 금지

    • URL 끝에 .json, .xml, .jpg 같은 확장자를 표시하지 않음
      • 예: /products/1.json (X) → /products/1 (O)
  6. 명사는 복수형 사용

    • 자원을 나타내는 명사는 가급적 복수형으로 통일하여 일관성 유지
      • 예: /user/1 (X) → /users/1 (O)

URL

  • Uniform Resource Locator
  • 네트워크 상에서 **'자원(Resource)이 어디에 있는지'**를 나타내는 유일한 주소
  • 웹 브라우저가 특정 페이지나 이미지, 데이터를 찾기 위해 사용하는 이정표와 같음
//URL 간단 예시
https://velog.io/leekh010502`

// 1. **Protocol (https://):** 통신 규약
// 2. **Domain (velog.io):** 서버의 주소
// 3. **Path (/@leekh010502):** 서버 내 유저 정보가 저장된 위치

HTTP Method

각 Method는 자원(Resource)에 대해 수행하는 '행위'를 나타냄

  1. GET (조회)

    • 역할
      • 특정 리소스의 상세 정보나 목록을 불러올 때 사용
    • 특징
      • 서버의 데이터를 변경하지 않으며, 필요한 데이터는 URL의 쿼리 스트링을 통해 전달
  2. POST (생성)

    • 역할
      • 서버에 새로운 리소스를 만들 때 사용
    • 특징
      • 주로 게시글 작성, 회원가입 등에 쓰이며, 데이터는 URL이 아닌 본문(Body)에 담아 보냄
  3. PUT (전체 수정)

    • 역할
      • 리소스를 통째로 갈아 끼울 때 사용
    • 특징
      • 해당 주소에 데이터가 있으면 덮어쓰고, 없으면 새로 생성
  4. DELETE (삭제)

    • 역할
      • 특정 리소스를 삭제할 때 사용
    • 특징
      • 삭제하고자 하는 자원의 ID를 주소에 담아 요청하며, 성공 시 해당 데이터가 제거

API 설계 (쇼핑몰 페이지 API 설계 실습)

  • 상품 목록 "조회"
    • GET /products
  • 상품 개별 "조회"
    • GET /products/id
  • 상품 id 개별 "수정"
    • PUT /products/{id}

오늘 배운 점

  • REST API 작성 규칙
    • 주소창에는 소문자 명사만 사용하고, 계층 구조와 하이픈을 지켜 직관적인 '데이터 이름표'를 만드는 법을 배웠다.
  • HTTP Method
    • 데이터 조회는 GET, 생성은 POST처럼 기능마다 정해진 '동사'를 사용해 서버에 명령을 내리는 법을 배웠다.