![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoLA4o%2Fbtr91zZpY94%2FcfEYJzMiizQCm0JDnuHq31%2Fimg.png)
시작하기 전에 계층형 아키텍처에서 개발을 진행할 때 우리는 보통 Controller, Service, Repository 이렇게 3개의 계층의 구조로 짜게 된다. 이 3개의 계층은 Controller에서 Service로, Service에서 Repository로 의존성이 흐르는데, 이 중에서도 Repository 부분을 보통 JpaRepository나 Mybatis mapper 같은 클래스로 직접 의존성으로 사용하는 경우가 많다. 하지만 Service 계층에서 바로 이런 클래스들에 의존하게 될 경우 몇 가지 문제가 생기게 된다. 이 글에서는 쉬운 예제 작성을 위해 JpaRepository를 사용하겠다. Service에서 바로 JpaRepository를 의존할 때 생기는 문제 Service 계층이 세부 사항..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeMpky7%2Fbtr9Yme4hxf%2Fa1HhUzMUpYIT3d2KvUG3KK%2Fimg.png)
💡 소개 이 세션에서는 가장 먼저 아키텍처를 구성할 때 가장 중요한 것이 무엇인지 돌이켜봅니다. 그리고 대부분의 개발자들에게 익숙한 계층형 아키텍처가 갖는 문제점은 무엇인지 이야기해 보고, 조금이나마 유지 보수하기 쉬운 아키텍처를 구성할 수 있는 방법에 대해 소개합니다. 아키텍처에서 중요한 것은 무엇인가? 프레임워크, DB, 테이블 설계, 캐시 등은 세부 사항이다. 중요한 것은 핵심 비즈니스 로직과 유스케이스이다. 핵심 비즈니스 로직: 사업적으로 의미 있는 규칙 또는 절차로써, 시스템의 유무와 상관없이 존재하는 것. ex) 대출을 해주고 이자를 받는 것은 은행이 돈을 버는 업무 규칙 핵심 비즈니스 데이터: 핵심 비즈니스 로직을 처리하기 위한 데이터 이를 가지고 도메인 엔티티를 뽑아낼 수 있음. (핵심 비..