[SIDE] 아키텍처 설계

danbi lee·2024년 10월 24일

시스템 구조를 정의하자.

아키텍처 계층

Controler Layer

프레젠테이션 계층
클라이언트의 요청을 받아 Service로 전달 및 응답 처리!

  • AuthController, OrderController, MenuController

Service Layer

비즈니스 로직 계층
비즈니스 로직을 처리하는 계층으로, DB와 상호작용하며 트랜잭션을 처리.

  • AuthService, OrderService, MenuService

Repository Layer

데이터 접근 계층
데이터베이스와의 직접적인 통신을 담당하며, JPA 같은 ORM을 사용해 데이터를 저장, 수정, 조회.

  • UserRepository, OrderRepository, MenuRepository

Security Layer

인증 및 인가
JWT를 이용해 사용자의 인증을 처리하며, 권한 부여 및 검증을 담당.

  • JwtTokenProvider, SecurityConfig

Messaging Layer

실시간 처리
Redis Pub/Sub을 통해 실시간 주문 상태 업데이트를 처리.

기술 스택

  • 언어 및 프레임워크: Kotlin + Spring Boot
  • 데이터베이스: PostgreSQL
    • 안정적인 관계형 데이터베이스로, JPA/Hibernate를 사용해 ORM 매핑을 처리.
  • 인증: JWT (JSON Web Token)
    • 클라이언트와 서버 간에 인증을 위해 사용.
    • JWT는 보안성이 높고 stateless 환경에서 적합.
  • 실시간 처리: Redis Pub/Sub
    • 주문 상태의 실시간 업데이트를 위해 Redis Pub/Sub을 사용.
  • 테스트: Kotest
    • Kotlin 친화적인 테스트 프레임워크.
    • 직관적인 DSL(Domain-Specific Language)을 제공해 깔끔하고 간결한 테스트 코드 작성 가능.
  • CI/CD: AWS CodePipeline
    • AWS CodePipeline을 사용해 빌드, 테스트, 배포 과정을 자동화할 계획.
profile
계속해서 보완중

0개의 댓글