본문 바로가기
programming/SpringBoot

스프링부트3 서비스 역할 springboot3 @service 비즈니스 로직을 구현한다.

by 개코 - 개발과 코딩 2024. 7. 31.

스프링부트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 ) 에서 로직을 구성해 결과값을 구성하고 도출한다는 점에 있다.

 

반응형

댓글