[Spring] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 1

유시준·2022년 6월 16일
0

분량

1장 ~ 3.4장

새로 알게된점

@SpringBootApplication

@SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 항상 프로젝트의 최상단에 위치해야 한다.

자동생성 해줘서 몰랐음ㅎ

@WebMvcTest

  • @Controller, @ControllerAdvice를 사용할 수 있다.
  • @Service, @Component, @Repository를 사용할 수 없다.
  • JPA기능이 동작하지 않는다.
  • Controller를 테스트할 때 사용함

Setter

Entity의 무분별한 변화를 막기 위해 Entity에서는 절대 Setter를 만들지 않는다.

JpaRepository의 위치

EntityRepository와 Entity는 아주 밀접한 관계이고 Entity는 EntityRepository없이는 제 역할을 할 수 없다. 또한 프로젝트 규모가 커져 MSA를 적용한다면 도메인 별로 프로젝트를 분리해야 하기 때문에 Repository와 Entity는 같은 위치에 놔두는게 좋다.

비즈니스 로직

지금까지 서비스 레이어의 목적은 비즈니스 로직을 처리하는 계층이라 생각했다. 하지만 서비스 레이어는 트랜잭션, 도메인 간 순서 보장의 역할을 한다. 비즈니스 로직은 Domain에서 처리한다.
기존처럼 서비스 레이어에서 비즈니스 로직을 처리한다면 서비스 레이어가 무의미하며(? 이건 왜 인지 모르겠다.) 객체란 단순히 데이터 덩어리 역할(이건 알겠다)만 하게된다.
Domain에서 비즈니스 로직을 처리한다면 각자 해당하는 로직을 처리하고 서비스 레이어는 트랜잭션과 도메인 간의 순서만 보장한다.

profile
금꽁치's Blog

0개의 댓글