백엔드 개발 패턴
확장 가능한 서버 사이드 애플리케이션을 위한 백엔드 아키텍처 패턴과 모범 사례.
활성화 시점
- REST 또는 GraphQL API 엔드포인트를 설계할 때
- Repository, Service 또는 Controller 레이어를 구현할 때
- 데이터베이스 쿼리를 최적화할 때 (N+1, 인덱싱, 커넥션 풀링)
- 캐싱을 추가할 때 (Redis, 인메모리, HTTP 캐시 헤더)
- 백그라운드 작업이나 비동기 처리를 설정할 때
- API를 위한 에러 처리 및 유효성 검사를 구조화할 때
- 미들웨어를 구축할 때 (인증, 로깅, 요청 제한)
API 설계 패턴
RESTful API 구조
// PASS: Resource-based URLs
GET /api/markets # List resources
GET /api/markets/:id # Get single resource
POST /api/markets # Create resource
PUT /api/markets/:id # Replace resource
PATCH /api/markets/:id # Update resource
DELETE /api/markets/:id # Delete resource
// PASS: Query parameters for filtering, sorting, pagination
GET /api/markets?status=active&sort=volume&limit=20&offset=0
Repository 패턴
// Abstract data access logic
interface MarketRepository {
findAll(filters?: MarketFilters): Promise<Market[]>
findById(id: string): Promise<Market | null>
findByIds(ids: string[]): Promise<Market[]>
create(data: CreateMarketDto): Promise<Market>
update(id: string, data: UpdateMarketDto): Promise<Market…