꾸준한 개발일기

@Service 안 "비즈니스 로직"이란? 본문

Programing/스프링

@Service 안 "비즈니스 로직"이란?

꾸개일 2025. 3. 22. 08:28
반응형

 

비즈니스 로직(Business Logic)
👉 애플리케이션이 수행해야 하는 핵심 기능이나 규칙을 처리하는 코드

예를 들어,

  • 사용자가 회원가입하면 중복 검사를 해야 한다
  • 주문하면 할인 정책을 적용해야 한다
  • 결제할 때 포인트 적립 규칙이 있어야 한다

이런 업무 로직(비즈니스 요구사항) 을 처리하는 코드가 비즈니스 로직


📌 @Service란?

  • @Service는 스프링에서 "서비스 계층"을 나타내는 애노테이션
  • 비즈니스 로직을 담당하는 클래스에 붙임
  • 자동으로 스프링 빈으로 등록되어 DI(의존성 주입)를 받을 수 있음

비즈니스 로직이 포함된 @Service 예제

@Service
public class MemberService {
    private final MemberRepository memberRepository;

    @Autowired
    public MemberService(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

    // 회원 가입 (비즈니스 로직)
    public Long join(Member member) {
        validateDuplicateMember(member); // 중복 검사
        memberRepository.save(member);
        return member.getId();
    }

    // 중복 회원 검사 (비즈니스 로직)
    private void validateDuplicateMember(Member member) {
        Optional<Member> findMember = memberRepository.findByName(member.getName());
        if (findMember.isPresent()) {
            throw new IllegalStateException("이미 존재하는 회원입니다.");
        }
    }

    // 회원 조회 (비즈니스 로직)
    public Optional<Member> findOne(Long memberId) {
        return memberRepository.findById(memberId);
    }
}

🚀 비즈니스 로직의 핵심 역할

1️⃣ 사용자의 요청을 처리하는 핵심 로직
2️⃣ 데이터베이스와 직접 연결되지 않음 (DAO, Repository와 분리됨)
3️⃣ 컨트롤러(@Controller)와 데이터 저장소(@Repository) 사이에서 중간 역할

💡 즉, 비즈니스 로직이란 애플리케이션의 핵심 규칙을 처리하는 코드이며,
이를 담당하는 @Service 클래스가 애플리케이션의 중심

 

반응형
Comments