클린 아키텍처

    [Clean Code] 만들면서 배우는 클린 아키텍처 후기

    프로젝트에 헥사고날 아키텍처를 도입하면서 접하게 된 책이다. 첫 장부터 마지막 장까지 빠트릴 내용없이 굉장히 흥미롭게 읽었다. 책을 읽기 전, 읽은 후를 되새김질하며 계층형 아키텍처에서 헥사고날 아키텍처로 변환하면서 느낀점들을 서술하고자 한다. 계층형 아키텍처의 문제점 프로그램의 아키텍처가 데이터베이스에 의존하게 된다 당연히 어플리케이션 데이터의 기반은 데이터베이스가 아닌가? 라고 생각할 수 있다. 물론 어느정도 맞는 말이다. 모놀로틱 서비스에선 하나의 데이터베이스 모델만을 기반으로 아키텍처를 설계했고, 외부에서 데이터를 가져오는 일이 드물었다. 하지만 서비스는 점점 거대해지고 MSA 로의 변환이 필수가 되어버린다. 이렇게 되면 도메인 모델은 web에서 뿐만 아니라 gRPC, kafka 등등 다양한 인프..

    [Spring] Spring Batch에 Hexagonal Architecture를 적용해보자

    팀에서 클린 아키텍처와 유지보수를 위해 전반적으로 헥사고날 아키텍처를 적용하기로 했다. 이는 Spring Batch가 포함된 프로젝트도 포함이 되었는데, 헥사고날 아키텍처가 제대로 적용된 것 같지 않아서 내가 다시 설계해보자는 의미로 구현했다. 구글에 검색해도 Spring MVC 예시는 많이 나오는데, Spring Batch에 헥사고날 아키텍처를 적용한 예시는 잘 찾아볼 수 없는 것 같다. 마침 "직접 구현하며 배우는 클린 아키텍처"를 읽어서 바로 적용할 수 있었다. 책에 대한 후기는 다른 게시글에 남길 것 이다. 그래서 이번 포스팅은 batch 자체의 성능 개선, 기능 구현, 인프라 구성보다는 아키텍처 구성에 초점을 맞출 것이다. 또한 헥사고날 아키텍처의 기본적인 개념은 다루지 않으므로 기본 개념은 다..