-
5. Spring Boot : Service란개발/Spring Boot 2024. 7. 30. 16:50
* 본 글은 벡엔드 부트캠프를 진행하며 작성했습니다.
# Controller - Repository 사용
@RequiredArgsConstructor @Controller public class QuestionController { private final QuestionRepository questionRepository; @GetMapping("/question/list") public String list(Model model) { List<Question> questionList = this.questionRepository.findAll(); model.addAttribute("questionList", questionList); return "question_list"; } }
Controller에서는 Repository를 직접적으로 바로 사용할 수 있다. 복잡한 쿼리 없이 CRUD 작업를 간결하게 작성할 수 있다.
# Service란
서비스란 스프링에서 데이터 처리를 위해 작성하는 클래스를 말한다. 데이터베이스 작업 뿐만 아니라 데이터 처리, 검증, 트랜잭션 관리 등의 비즈니스 로직을 수행한다.
# Service를 사용하는 이유
코드의 유지보수성과 재사용성, 테스트 용이성을 높이기 위해 서비스를 사용한다.
# 로직 분리
로직을 분리하기 위해 서비스를 사용할 수 있다. 컨트롤러, 서비스, 리포지토리는 모두 각기 다른 목적을 가지고 있다. 컨트롤러는 HTTP 응답 반환에, 서비스는 비즈니스 로직을 처리하기 위해, 리포지토리는 CRUD 작업을 담당하고 있다.
# 캡슐화
캡슐화의 일종으로써, 각각의 로직은 다른 로직의 세부적인 내용을 파악할 필요가 없다. 이는 코드의 재사용성, 유지보수성을 높여준다.
이런 변경은 향후 서비스의 확장시에 유용하다.
'개발 > Spring Boot' 카테고리의 다른 글
7. Spring Boot : @Service와 @Controller (0) 2024.07.30 6. Spring Boot : 의존성 주입 (0) 2024.07.30 4. Spring Boot : H2 데이터베이스 (0) 2024.07.29 3. Spring Boot : ORM과 JPA (0) 2024.07.29 2. Spring Boot Controller (0) 2024.07.29