SW 아키텍처 - 헥사고날

jjin·2024년 3월 25일
0

애플리케이션 중심으로 보는 아키텍처

헥사고날 / 클린 아키텍처

애플리케이션은 DB의 데이터를 그저 옮기는 수동적인 sw를 넘어 여러 일을 할 수 있어야 한다.

DB나 웹 프레임워크 같은 외부 시스템이 애플리케이션의 중심이 아니라, 애플리케이션이 '사용하는' 일부가 되어야 한다.
상황에 따라 RDBMS에서 NoSQL을 쓸 수도 있고, API서버와의 통신 방식을 Rest에서 GraphQL로 바꿀 수 있어야 한다.

헥사고날(포트 앤 어댑터)

포트만 맞으면 갈아끼울 수 있다.

  • 도메인
  • 애플리케이션(서비스)
  • 어댑터

의존성은 어댑터 -> 애플리케이션 -> 도메인으로 흐름

src/
	adapter/
    	inbound/
        	api/
            	product_controller.py
                user_controller.py
                ...
        outbound/
        	repositories/
            	product_repository.py
                user_repository.py
    application/
    	service/
        	product_service.py
            user_service.py
        port/
        	inbound/
            	product_port.py
                user_port.py
            outbound/
            	product_repository.py
                user_repository.py
    domain/
    	product.py
        user.py
profile
진짜

0개의 댓글

관련 채용 정보