본문 바로가기
BE/Spring Boot

비즈니스 로직(Buisness Logic)

by 이건 뭐야 2024. 2. 29.

스프링부트 블로그 개발 프로젝트를 진행하면서 비즈니스 로직을 Controller와 Service 중 어디에 작성해야 할지 고민이 되었다.

그래서 구글링을 하면서 알게 된 것과 내 생각을 적어본다.

 

 

비즈니스 로직이란?

어떤 프로그램에서 request의 처리나 특정한 기능 수행을 위해 데이터를 처리하는 실질적인 로직을 뜻한다.

쉽게 말해, 사용자의 요구사항을 해결하기 위한 실질적인 코드이다.

실제 MVC 패턴에서는 비즈니스 로직이 Service Layer로 제한되어 담겨있고 실질적인 데이터 처리는 모두 Service Layer에서 일어난다.

 

 

기본 웹 어플리케이션 계층 구조

Controller : 웹 MVC의 컨트롤러 역할

Service : 핵심 비즈니스 로직 구현

Repository : DB에 접근, 도메인 객체를 DB에 저장, 관리(save, delete, find 등 수행)

Domain : 비즈니스 도메인 객체  ex) 회원, 주문, 쿠폰 등 주로 DB에 저장하고 관리

 

 

비즈니스 로직을 Service에 작성해야 하는 이유!

1. 비즈니스 로직 재사용

2. 유지보수

3. 단위 테스트시 유용

 

사실 컨트롤러에 비즈니스 로직을 작성해도 프로그램은 동작한다.

하지만 재사용과 유지보수를 위해 분리하는 습관을 들이는 것이 좋다.

 

Controller에서는 Service의 객체를 주입받아서 사용하는데 비즈니스 로직은 데이터를 저장, 수정, 삭제 등 일련의 동작들을 여러 Controller에서 사용하기 때문에 Controller에서 처리하지 않고 Service객체에서 데이터를 가공한 후 Controller는 처리된 결과를 받는 것이 좋다. 만약 비즈니스 로직에 문제가 발생했을 때, 모든 컨트롤러의 비즈니스 로직을 변경하는 것보다 해당되는 비즈니스 로직을 갖는 Service 객체만 수정하면 된다.

또한, Service에서 비즈니스 로직을 작성하면 View에 종속되지 않으므로 웹에서 모바일 앱으로 변경될 때 비즈니스 로직을 그대로 가지고 갈 수 있다.

 

 

내가 이해한대로 말하면 Service에서 할 기능들을 Controller가 대신 할 수 있다.

하지만 기능들에서 오류가 나거나 재사용할 때 Controller마다 바꾸면 매우매우 복잡해진다.

따라서 Service에 비즈니스 로직을 작성하면 관리가 매우 편해진다!

 

 

 

 

 

참조

회원 관리 예제 - I-one 님

Controller 가 아닌 Service 에서 비즈니스 로직을 작성하는 이유? - okky.kr

비즈니스 로직이란? - 유원준의 개발로그 님

'BE > Spring Boot' 카테고리의 다른 글

RequiredArgsConstructor  (0) 2024.02.28
Spring Boot 2.7 -> 3.2 변경사항  (0) 2024.02.02