반응형

Service API 개발 할 때 고려할 사항

  1. 설계 및 요구사항 분석
    • API의 목적 정의: 어떤 문제를 해결하기 위한 API인지 명확히 정의.
    • 요구사항 명세: 클라이언트가 필요로 하는 데이터와 기능을 명확히 이해.
    • URI 설계: RESTful API라면 리소스 기반으로 직관적이고 일관된 URI 설계.
  2. 성능
    • 데이터 처리량 고려: 예상되는 트래픽과 데이터 양에 맞는 설계.
    • 캐싱 전략: 자주 요청되는 데이터를 캐싱하여 성능 최적화.
    • 효율적인 데이터베이스 쿼리: 데이터베이스 성능을 고려한 쿼리 작성과 인덱스 설계.
    • 비동기 처리: 대용량 데이터 처리를 위한 비동기 프로세스 도입.
  3. 확장성
    • 모듈화 설계: 변경 사항이 생겼을 때 최소한의 영향으로 수정 가능.
    • 수평적 확장 지원: 서버를 쉽게 추가하여 부하 분산 가능하도록 설계.
    • 버전 관리: API 버전 관리(V1, V2 등)를 통해 하위 호환성 유지.
  4. 보안
    • 인증 및 권한 부여: OAuth2, JWT 등 안전한 인증 방식 사용.
    • 입력 데이터 검증: SQL 인젝션, XSS 등 보안 취약점 방지를 위한 철저한 데이터 검증.
    • HTTPS 사용: 데이터 전송 과정에서 암호화.
    • Rate Limiting: 악성 트래픽이나 과도한 요청 방지를 위한 속도 제한.
  5. 개발 및 유지 보수
    • 코드 품질 관리: 일관된 코드 스타일, 주석, 문서화를 통해 유지보수 용이성 확보.
    • 테스트: 단위 테스트, 통합 테스트, 성능 테스트 등을 통한 품질 보증.
    • 로깅 및 모니터링: 장애 발생 시 신속히 대응할 수 있도록 로그와 모니터링 도입.
    • 자동화: CI/CD 파이프라인을 구축해 코드 배포 자동화.
  6. 사용자 경험
    • 응답 시간: 최소한의 딜레이로 빠른 응답 제공.
    • 일관된 에러 핸들링: 에러 코드와 메시지를 직관적이고 표준화된 방식으로 전달.
    • 문서화: Swagger 또는 Postman과 같은 도구를 이용해 사용하기 쉬운 API 문서 제공.
  7. 기술 스택 및 경험
    • 프레임워크: FastAPI, Express.js, Spring Boot 등 프로젝트에 적합한 프레임워크 선택.
    • 데이터베이스: MariaDB, MongoDB, Redis 등 요구사항에 맞는 데이터베이스 선택.
    • 클라우드 인프라: AWS, Azure, GCP 등 서비스 확장성과 안정성을 위한 클라우드 사용.
  8. 배포 환경
    • 컨테이너화: Docker와 Kubernetes를 이용한 이식성과 확장성 강화.
    • 부하 테스트: 실제 트래픽 상황에서의 성능을 사전에 확인.
    • 롤백 전략: 문제가 발생했을 때 빠르게 이전 상태로 복구할 수 있는 전략 마련.
반응형

+ Recent posts