스프링부트3의 서비스( Service )는 @service 어노테이션을 사용하여 클래스를 구현체로써 사용하며 비즈니스 로직을 구성하는데 사용한다. 컨트롤러에서 어떤 요청을 받았다면 요청에 대한 결과값을 만들기 위해 서비스에서 로직을 구성하고 구현체를 만들게 된다. 2가지 수의 덧셈이 있다고 가정했을 때 컨트롤러는 2가지 수를 받고 (요청), 서비스는 2가지 수를 덧셈하는 과정과 결과를 만드는 로직을 구성한다.
스프링부트3 Service 역할
비즈니스 로직을 구현한다.
SpringBoot3 @service
스프링부트3 ( SpringBoot3 ) 의 구조는 Controller, Service, Repository 로 되어 있다.
각자 하는 역할이 있고, 이 중 Service 는 비즈니스로직을 담당한다.
비즈니스로직은 요청에 대한 어떤 작업을 하거나 계산을 하고 데이터를 가공하는 등 프로그램의 구현을 하는데 목적이 있다.
어떤 사용자가 어떤 데이터를 요청했을 때 요청(입력)받은 데이터를 가공하고 조작하여 결과를 보내주는 역할을 한다.
화면에서 어떤 작업을 요청하고 화면에 보여주는 역할을 Controller ( 컨트롤러 ) 가 한다면 Service ( 서비스 ) 는 어떤 작업을 위한 로직을 구현하고 데이터를 도출하는 역할을 한다.
비즈니스 로직
객체지향프로그램이나 함수형프로그래밍 등 프로그램을 제작하는 방법론적인 내용들은 많지만, 비즈니스로직이란 단어를 봤다면 난해할 수도 있다.
비즈니스 로직이라니. 사업적 뭐 그런건가 ??
구체적인 영어단어는 사전을 찾아보기로 하고, IT적인 비즈니스 로직은 프로그래밍을 이용한 구현을 얘기한다.
어떤 숫자들을 덧셈한다고 했을 때 숫자를 더하고 결과값을 도출하는 과정을 코드로 만든 것이 비즈니스 로직이다.
단순히 구현하는 어떤 행위를 코드로 만드는 것이라 생각하자.
스프링부트3에서 서비스 ( Service ) 는 비즈니스 로직을 담당하고 요청에 대한 결과를 만들기 위한 프로그래밍 코드를 구현한 부분으로 볼 수 있다.
동작과 계산 그리고 결과 도출
스프링부트3에서 컨트롤러( Controller ) 는 어떠한 요청을 받고, 목적에 맞는 결과를 응답하는 역할을 한다.
어떤 목적에 맞게 요청을 한다는 것은 어떤 값이 필요할 수 있고, 없을 수도 있지만, 사용자는 어떤 결과를 원할 것이다.
그 어떤 결과를 위해 데이터를 가공할 수도 있고, 있는 그대로 보여줄 수도 있는데 이런 일련의 과정을 비즈니스라 하고, 결과값을 도출하는 방법론은 로직이라 할 수 있다.
스프링부트3의 서비스 ( Service ) 는 요청받은 어떤 작업을 위하고 결과값을 만들기 위한 구현체이다.
어떤 숫자에 대한 덧셈을 한다고 했을 때 덧셈을 하는 과정을 스프링부트3의 서비스에 작성하고 구현로직을 작성하면 된다.
코드로 보기
아래는 스프링부트3( SpringBoot3 ) 의 서비스를 구현하는 코드이다.
간단히 덧셈을 하는 서비스( Service ) 메서드를 구현했다.
스프링부트3에서 클래스에 서비스라는 것을 주입하기 위해 @Service 란 어노테이션을 사용했다.
@Service
public class TestService {
public int AddNumbers(int a, int b) {
return a + b;
}
}
정말 하찮은 코드이다.
컨트롤러에서 Service를 호출하면 그만이다.
위의 코드에서 리턴되는 데이터는 int 지만 보통의 책을 보면 Entity 클래스의 데이터 객체를 사용하게 될 것이다.
리턴되는 경우는 어떤 경우라도 상관없다.
중요한 것은 컨트롤러 ( Controller ) 에서 받은 요청을 서비스 ( Service ) 에서 로직을 구성해 결과값을 구성하고 도출한다는 점에 있다.
'programming > SpringBoot' 카테고리의 다른 글
스프링부트3 타임리프 사용이유 SpringBoot3 + thymeleaf (1) | 2024.08.25 |
---|---|
스프링부트3 리포지토리 역할 springboot3 @Repository SQL 쿼리는 익혀두자 (0) | 2024.08.12 |
스프링부트3 카페24 웹서비스 하기 개발보다 배포와 반영이 어렵다. (0) | 2024.07.29 |
스프링부트3 Controller 컨트롤러의 역할 사용 방법 요청에 대한 응답을 한다. (1) | 2024.07.21 |
스프링부트3 / start.spring.io 에서 프로젝트 생성하기 (0) | 2024.07.10 |
댓글