Spring Boot - Service

김명식·2023년 5월 17일
0

Spring Boot

목록 보기
8/11
post-thumbnail

Service

Srvice 계층비즈니스 로직을 수행하는 계층이다.
컨트롤러에서 요청을 받고

  • 데이터베이스에서 데이터를 조회
  • 도메인 모델을 생성
  • 트랜잭션을 관리

하는 등의 작업을 수행한다.


Service 계층@Service 어노테이션을 사용하여 생성할 수 있다.

@Service
public class UserService{

}

Service 계층은 Repository 계층을 @Autowired 어노테이션을 사용하여 의존성을 주입받아 사용한다.

@Service
@RequiredArgsConstructor
public class UserService{
	private final UserRepository userRepository;
}


Service 단의 주요 역할5가지이며, 특징은 다음과 같다.

  • 비즈니스 로직 구현
    • Service 계층은 비즈니스 로직을 구현하기 때문에 Entity, DTO를 가공 및 변환하여
      다양한 연산을 수행하여 비즈니스 규칙을 충족시키는 역할을 한다.
      예를 들어 사용자 등록, 주문 처리, 결제 처리 등과 같은 비즈니스의 기능을
      Service 계층에서 구현하는 것이다.
  • 트랜잭션 관리
    • Service 계층은 트랜잭션을 관리하는 책임을 가진다.
      여러개의 데이터 액세스 작업이 한 단위로 묶여야 하는 경우,
      Service 계층에서 트랜잭션을 시작하고 커밋 또는 롤백을 하는 작업을 수행한다.
      이를 통해 데이터 일관성안정성을 유지할 수 있다.
  • 외부 서비스 통합
    • Service 계층은 외부 서비스API와의 통합을 수행할 수 있다.
      다른 서비스와의 통신, 외부 데이터의 처리, 외부 시스템과의 연동 등을
      Service 단에서 처리할 수 있다. 이를 통해 모듈화와 결합도가 낮은 설계를 구현한다.
  • 비즈니스 예외 처리
    • Service 계층에서 비즈니스 규칙에 의한 예외를 처리할 수 있다.
      예를 들어 잘못된 입력 데이터, 중복된 데이터, 권한 오류 등에 대한 예외를
      적절하게 처리하고 컨트롤러로 전달할 수 있다.
  • 단위 테스트
    • Service 계층은 단위 테스트를 수행하기에 적합한 계층이다.
      비즈니스 로직이 복잡할 경우, Service 단에서 단위 테스트를 작성하여
      각 비즈니스의 기능이 정확하게 동작하고 있는지 확인할 수 있다.
profile
BackEnd & AWS Developer

0개의 댓글