애플리케이션을 여러 레이어(예: controller, service, repository 등)로 나누고, 각 레이어에 해당하는 기능을 그룹화한다.
예를 들어, 모든 컨트롤러가 하나의 패키지에, 서비스는 다른 패키지에 위치한다.
분리와 추상화: 레이어간의 결합도가 낮다.
각 레이어는 독립적이며, 레이어 간의 상호 작용은 잘 정의된 인터페이스를 통해 이루어집니다.
재사용성: 특정 레이어의 로직(예: 서비스 레이어)을 다른 도메인에서 재사용하기 쉽습니다.
대체 용이성: 데이터베이스나 외부 서비스 같은 인프라스트럭처를 교체할 때 해당 레이어만 수정하면 되므로 유연성이 증가합니다.
애플리케이션의 기능이나 도메인(예: 사용자, 주문, 상품 등) 별로 구성.
각 도메인 폴더 내에는 해당 도메인과 관련된 컨트롤러, 서비스, 리포지토리 등이 함께 위치
사실 알지만
그렇다면?!
JPA 를 사용해서 어떻게 값을 update 하란말인가?!
그래서 우린 어쩔수없이 Setter 를 쓰게 되었다.