728x90
Service
Service는 일반적으로 비즈니스 로직, 데이터 처리 또는 특정 기능을 제공하는 모듈 또는 컴포넌트를 가리킵니다. 서비스는 주로 애플리케이션 내에서 재사용 가능한 기능을 캡슐화하고 외부 컴포넌트 또는 사용자 인터페이스와 상호 작용하는 데 사용됩니다. 예를 들어, 웹 애플리케이션에서 사용자 인증 서비스, 데이터베이스 액세스 서비스, 이메일 발송 서비스 등이 있을 수 있습니다.
ServiceImpl
Service Implement는 Service의 실제 구현을 가리키는 용어입니다. 서비스 인터페이스와는 달리 서비스 구현은 특정 기능을 구체적으로 실행하는 코드 또는 클래스입니다. 예를 들어, 사용자 인증 서비스의 인터페이스는 사용자 인증 메서드를 정의할 수 있지만, 실제 사용자 인증을 수행하는 코드는 서비스 구현에 포함됩니다.
서비스와 서비스 구현은 일반적으로 소프트웨어의 모듈화와 유지보수성을 향상시키기 위해 사용됩니다. 인터페이스와 구현을 분리함으로써 여러 구현을 쉽게 교체하거나 업그레이드할 수 있으며, 다른 부분에서 서비스를 사용하는 코드는 서비스 인터페이스에만 의존하므로 더 유연한 시스템을 만들 수 있습니다. 이러한 디자인 패턴은 주로 객체 지향 프로그래밍과 관련이 있으며, 다양한 언어와 프레임워크에서 적용됩니다.
실습
BoardService
package com.spring.biz.board;
import java.util.List;
public interface BoardService {
public BoardVO selectOne(BoardVO bVO);
public List<BoardVO> selectAll(BoardVO bVO);
public boolean insert(BoardVO bVO);
public boolean update(BoardVO bVO);
public boolean delete(BoardVO bVO);
}
BoardServiceImpl
package com.spring.biz.board;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("boardService")
public class BoardServiceImpl implements BoardService {
// Service 레이어가 관념적으로 존재하는데, 그것을 구현한 클래스
// Service 레이어에서는 DAO를 사용함
// == C 파트
// : DAO를 사용할것이기때문에
// DAO와 메서드 시그니처를 맞추면 유리함
// 메서드 시그니처를 강제하고싶다!
// => 인터페이스
@Autowired
private BoardDAO boardDAO;
// 의존관계 -> DI
@Override
public BoardVO selectOne(BoardVO bVO) {
return boardDAO.selectOne(bVO);
}
@Override
public List<BoardVO> selectAll(BoardVO bVO) {
return boardDAO.selectAll(bVO);
}
@Override
public boolean insert(BoardVO bVO) {
return boardDAO.insert(bVO);
}
@Override
public boolean update(BoardVO bVO) {
return boardDAO.update(bVO);
}
@Override
public boolean delete(BoardVO bVO) {
return boardDAO.delete(bVO);
}
}
GitHub
https://github.com/Qkrwnsgus0522/Spring
728x90