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