[비즈니스 로직] Service 레이어로 분리

Halo·2025년 5월 20일
0

JAVA/Spring

목록 보기
7/15
post-thumbnail

🛠️ 환경

항목Env Info
🖥️ 서버Tomcat
🍭 프레임워크Spring Boot
📀 데이터베이스MySQL with Azure
📝 JPAHibernate
🙈 외부 라이브러리lombok, thymeleaf
📏 디자인 패턴MVC

👀 How

가. @Service 사용
이 어노테이션을 사용하게 되면 해당 클래스 오브젝트를 Spring이 관리해준다. 이 오브젝트는 Spring이 IOC 컨테이너에서 가져오고 Bean이라는 이름으로 관리한다.

선언만하고 객체 안만들어줘도 됨 개발자가.

  • 비즈니스 로직을 따로 빼서 관리하기 편하게 이렇게 하는 거임.
    즉, 코드의 재사용성과 유지보수성을 위해 서비스와 컨트롤러를 분리한다. 따라서 컨트롤러에는 클라이언트의 요청과 서버의 응답만 처리하게 만드는 것이다.

나. 사용 예시

public boolean saveItem(String title, Integer price , Model model){
        Item item = new Item();

        if (title.length()>=20){
            model.addAttribute("title_error", "글자가 20자가 넘었습니다.");
            return false;
        }
        else if (price <0){
            model.addAttribute("price_error", "음수는 안 됩니다.");
            return false;
        }
        else{
            item.setTitle(title);
            item.setPrice(price);
            itemRepository.save(item);
            return true;
        }
    }

위의 코드처럼 Item을 사용자가 서버에 저장할 때, 서버가 해당 Item이 정상적인 데이터인지 검사해주는 비즈니스 로직을 따로 구현해놓을 수 있다. 해당 클래스는 Service로 객체를 선언에 바인딩 시킬 필요 없이 그냥 선언된 채로 사용하면 Spring이 알아서 바인딩 해준다.


😏 느낀점

비즈니스 로직 모듈화를 통한 코드 재사용성 및 유지보수성 향상의 중요성 인지

profile
새끼 고양이 키우고 싶다

0개의 댓글