12.1 서비스와 트랜잭션의 개념
- 서비스란?
- 컨트롤러와 리파지터리 사이에 위치하는 계층
- 서버의 핵심 기능(비즈니스 로직)을 처리하는 순서를 총괄
- 트랜잭션이란?
- 일반적으로 서비스 업무 처리는 트랜잭션 단위로 진행
- 모두 성공해야 하는 일련의 과정을 뜻
- 쪼갤 수 없는 업무의 최소 단위
- 롤백이란?
- 트랜잭션이 실패로 돌아갈 경우 초기 단계로 돌리는 것
12.2 서비스 계층 만들기
- 컨트롤러는 서비스에 무슨 지시를 하고 무슨 데이터를 받아 오는지만 알면 됨.
- 실제 작업은 서비스에 맡김
12.3 트랜잭션 맛보기
- @RequestBody 어노테이션은 POST 요청 시 본문에 실어 보내는 데이터를 transactionTest() 메서드의 매개변수로 받아 오는 역할을 함.
- 스트림 문법 1
- 스트림 문법은 리스트와 같은 자료구조에 저장된 요소를 하나씩 순회하면서 처리하는 코드
- orElseThrow(). 메서드란?
- IllegalArgumentException 발생 시킴
- 값이 존재하면 그 값을 반환하고 값이 존재하지 않으면 전달값으로 보낸 예외를 발생시킴
- 코드에 사용한 예외 클래스 IllegalArgumentException은 전달값이 없거나 유효하지 않은 경우를 뜻함
- 데이터 생성 실패 이전 상황으로 되돌리려면 트랜잭션을 선언해야 함
- 보통 트랜잭션은 서비스에서 관리
- 서비스의 메서드에 @Transactional을 붙이면 해당 메서드는 하나의 트랜잭션으로 묶임
'개인 공부 > BackEnd Study' 카테고리의 다른 글
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 3 - (0) | 2024.03.27 |
---|---|
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 13 - (0) | 2024.03.24 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 11 - (0) | 2024.03.22 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 7 - (0) | 2024.03.17 |
[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 6 - (0) | 2024.03.17 |