Programmers

[17일차]Object.keys() , 모듈화, API 설계

PARKpatchnotes 2025. 9. 24. 17:05

1. Object의 빈 상태 확인 방법

JavaScript에서 객체가 비어있는지 확인하는 데에는 Object.keys()를 활용하면 된다.

1.1 Object.keys()

Object.keys() 메서드는 주어진 객체의 속성 이름들을 일반적인 반복문과 동일한 순서로 순회되는 열거할 수 있는 배열로 반환한다. 이 배열의 길이가 0인지 확인하여 객체가 비어있는지 판단할 수 있다.

const obj = {};

if (Object.keys(obj).length === 0) {
  console.log("객체는 비어있습니다.");
}

2. 함수로 만들어 빼두면 좋은 점 (모듈화란)

모듈화(Modularization)란, 소프트웨어의 복잡한 문제를 해결하기 위해 전체 시스템을 독립적인 기능을 수행하는 작은 단위인 모듈(Module)로 나누어 설계하는 기법이다. JavaScript에서는 함수나 별도의 파일로 모듈을 구성하는 것이 일반적이다.

모듈화의 장점

  1. 재사용성 (Reusability)
    • 특정 기능을 수행하는 코드를 함수(모듈)로 만들어두면, 동일한 기능이 필요할 때마다 해당 함수를 호출하여 코드를 재사용할 수 있다. 이는 코드의 중복을 줄여준다.
  2. 유지보수성 (Maintainability)
    • 기능별로 코드가 분리되어 있으므로, 특정 기능에 문제가 발생했을 때 해당 모듈만 수정하면 된다. 전체 코드에 미치는 영향이 적어 디버깅과 수정이 용이하다.
  3. 가독성 (Readability)
    • 각 모듈은 특정 기능에만 집중하므로 코드의 전체적인 구조를 이해하기 쉽다. 잘 정의된 함수 이름은 코드의 동작을 명확하게 설명하는 주석 역할을 하기도 한다.
  4. 독립성 및 협업 용이성 (Independence & Collaboration)
    • 모듈은 독립적으로 개발 및 테스트될 수 있다. 이로 인해 여러 개발자가 서로의 작업에 미치는 영향을 최소화하며 동시에 다른 모듈을 개발할 수 있어 협업 효율이 높아진다.

3. API 설계하는 법

API(Application Programming Interface)는 소프트웨어 컴포넌트들이 서로 상호작용하는 방식에 대한 명세이다. 잘 설계된 API는 개발 경험을 향상시키고 시스템의 확장성과 안정성을 보장한다.

API 설계 단계 및 원칙

  1. 요구사항 분석 및 목표 설정
    • API가 해결하고자 하는 문제가 무엇인지 명확히 정의한다.
    • API를 사용할 주체(클라이언트 개발자, 외부 파트너 등)를 파악하고 그들의 요구사항을 분석한다.
  2. 엔드포인트(Endpoint) 및 리소스(Resource) 정의
    • API가 제공할 기능을 기반으로 리소스를 정의한다. 리소스는 명사형으로 표현하는 것이 일반적이다. (예: users, products)
    • 각 리소스에 대해 수행할 수 있는 동작(CRUD: Create, Read, Update, Delete)을 HTTP 메서드(POST, GET, PUT/PATCH, DELETE)에 매핑하여 엔드포인트를 설계한다.
    • 예시:
      • GET /users: 모든 사용자 목록 조회
      • GET /users/{id}: 특정 사용자 정보 조회
      • POST /users: 새로운 사용자 생성
      • PUT /users/{id}: 특정 사용자 정보 전체 수정
  3. 데이터 모델 설계 (요청 및 응답 형식)
    • 클라이언트가 API에 보낼 요청(Request)과 API가 클라이언트에게 반환할 응답(Response)의 데이터 형식을 일관성 있게 설계한다. JSON 형식이 가장 널리 사용된다.
    • 성공 응답과 실패 응답의 구조를 명확히 정의한다.
  4. 일관성 있는 명명 규칙(Naming Convention) 사용
    • URL, 파라미터, JSON 필드명 등에 일관된 규칙을 적용한다. (예: camelCase 또는 snake_case)
    • URL 경로는 소문자를 사용하고, 단어 사이는 하이픈(-)으로 연결하는 것을 권장한다.
  5. 상태 코드(Status Code)의 명확한 사용
    • HTTP 상태 코드를 표준에 맞게 사용하여 API 요청의 결과를 명확하게 전달한다.
    • 예시:
      • 200 OK: 요청 성공
      • 201 Created: 리소스 생성 성공
      • 400 Bad Request: 클라이언트 요청 오류
      • 404 Not Found: 요청한 리소스 없음
      • 500 Internal Server Error: 서버 내부 오류
  6. 인증 및 인가(Authentication & Authorization) 설계
    • API를 보호하기 위해 누가 API를 사용할 수 있는지(인증)와 사용자가 어떤 데이터에 접근하고 어떤 작업을 수행할 수 있는지(인가)를 결정하는 방식을 설계한다. (예: OAuth 2.0, JWT)
  7. 문서화 (Documentation)
    • 개발자가 API를 쉽게 이해하고 사용할 수 있도록 상세한 문서를 작성한다.
    • 각 엔드포인트의 기능, 파라미터, 요청/응답 예시, 상태 코드 등을 포함한다.
    • Swagger/OpenAPI와 같은 도구를 사용하면 API 설계를 문서화하고 테스트까지 자동화할 수 있어 효율적이다.