◇ PART · MVC

Service 계층

Spring MVC — 읽기 자료

📍 지금 어디를 만지고 있나요?
브라우저
Spring MVC
DB

핵심 용어

Service비즈니스 로직을 담당하는 계층.
@Transactional여러 DB 작업이 하나의 단위로 동작하게 해줌. 하나라도 실패하면 모두 롤백.

1. 문제

전 차시까지의 답답함

컨트롤러에 SQL 을 직접 쓰면 안 되는 이유 — 책임 분리.

2. 새 도구

Service — 메인 셰프

주문(Controller 호출)을 받아 실제 요리(비즈니스 로직)를 책임지는 계층. 트랜잭션도 여기.

3. 코드

@Service
public class BoardService {

    @Autowired
    private BoardMapper mapper;     // DAO 주입

    @Transactional
    public void writeWithFile(Board b, MultipartFile file) {
        mapper.insert(b);            // 글 저장
        fileService.save(file);      // 파일 저장
        // 둘 중 하나 실패하면 롤백
    }
}

4. 정리

5. Before / After

전 차시 끝

컨트롤러에 SQL 을 직접 쓰면 안 되는 이유 — 책임 분리.

이번 차시 끝

비즈니스 로직이 어느 계층에 살아야 하는지 안다.