EP11. Supabase Edge Functions Architecture

서비스가 성장하면서 코드가 많아지더라도 코드의 복잡도를 낮춰 유지보수 가능한 서비스가 될 수 있도록 구조를 설계합니다.

디자인패턴, 아키텍처는 취향이며 정답은 없습니다. 더 옳다고 판단되는 설계가 있다면 다른 설계로 적용하셔도 됩니다.

강의에서는 ‘레이어드 아키텍처’를 적용합니다.

추후 Push Notification기능 구현을 위해 Push Token을 관리하는 API를 설계해보면서 어떻게 구조를 가져가야 하는지 살펴봅니다.

1. 레이어드 아키텍처(Layered Architecture)

Untitled

  1. Router: 요청을 수신하고 적절한 컨트롤러로 라우팅합니다.
  2. Controller: 사용자 입력을 처리하고 서비스 계층을 호출하여 비즈니스 로직을 실행합니다.
  3. Service: 비즈니스 로직을 구현합니다. 이 계층에서는 주로 애플리케이션의 핵심 기능이 구현됩니다.
  4. Repository: 데이터베이스와의 상호작용을 처리합니다. 데이터 저장소와 관련된 작업을 캡슐화합니다.

2. 디렉토리 구조

FCM Token은 유저 정보의 하나이므로 유저 정보를 다루는 Router, Controller, Service, Repository를 추가합니다.

Untitled

3. 코드 구현

하위 Repository 부터 상위 Controller, 그리고 index 순으로 코드를 구현합니다.