기존에 FastAPI로 코드를 작성하다가, SpringBoot로 코드를 작성하면서 느낀점이 많았다
특히 SpringBoot는 FastAPI에 비해 기능이 복잡해짐에 따라 확장하는데 부담감을 못 느꼈는데, 아마도 잘 체계화된 아키텍처 덕분이지 않았나 싶다
이 글은 앱 개발로 넘어온 지금도 이때의 기억을 되살려서 유지보수, 확장, 테스트 등에 용이하도록 어떻게 구조를 잡아야 하는가 찾아보며 정리한 내용이다
https://blog.coderifleman.com/2017/12/18/the-clean-architecture/
헥사고날 아키텍쳐, 어니언 아키텍쳐, 스크리밍 아키텍쳐 등 세세한 부분은 다르지만 모두 “관심사의 분리”라는 목적을 가진다
이들은 소프트웨어를 계층으로 나누면서 관심사를 분리하고, 비즈니스 규칙을 위한 최소 하나 이상의 계층과 인터페이스를 위한 또 다른 계층을 둔다