SpringBoot의 계층별 역할 분리 : 전체보기

Eojin·2023년 7월 10일
0

작성일
20230703
20230710


➡️ SpringBoot의 역할 분리

Spring은 계층으로 이루어져 있다. 여기서 계층이라는 것은 소프트웨어의 구성 요소를 역할별로 구별한 것을 말하며, 각 계층은 데이터를 통해 소통은 한다.


✅ 컨트롤러(Controller) : 프레젠테이션 계층의 역할

클라이언트 즉, HTTP Request를 받고 이 요청을 비즈니스 계층으로 전송하는 역할

이 컨트롤러는 스프링 부트 프로젝트 내에 여러 개 있을 수 있다.

@RestController
public class TestController {
	@Autowired
    TestService testService;
    
    @GetMapping("/test")
    public List<Member> getAllMembers() {
    	//
    }
}

✅ 서비스(Service) : 비즈니스 계층의 역할

모든 백엔드 즉, 비즈니스 로직을 통해 하나의 서비스를 만들어 내는 역할

EX. 데이터, 예외처리 로직, etc.


✅ 레포지터리(Repository) : 퍼시스턴스 계층의 역할

모든 데이터베이스 관련 로직을 처리하는 역할

데이터베이스의 테이블과 대응하는 자바소스 파일의 클래스를 실제로 매핑하는 코드가 여기에 포함된다.


@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
}

매핑 작업을 위해, JpaRepository 인터페이스 파일이 필요하므로 상속받은 인터페이스를 작성한다.

위 코드 즉, 인터페이스가 데이터베이스에서 데이터를 가져오는 퍼시프턴스 계층 역할을 수행하는 것이다.


CF. Model 객체
: https://velog.io/@song-eojin/SpringBoot%EC%9D%98-Controller-Model-%EA%B0%9D%EC%B2%B4


✅ 실제 데이터베이스(Database) : 데이터베이스 계층의 역할



➡️ Spring Boot의 요청-응답 과정


1) 웹 브라우저나 포스트맨에서 URL 입력 : Spring Boot에 내장되어 있는 WAS인 톰캣에 요청

2) 요청한 URL을 처리할 수 있는 Controller 찾기

3) Dispatcher Servlet이 해당되는 Controller에게 요청을 전달

4) Controller는 비지니스 계층과 퍼시스턴스 계층을 통해 필요한 데이터를 가져와 전달

5) 뷰 리졸버가 템플릿 엔진을 사용해서 HTML 문서를 만들거나 JSON, XML 등의 데이터를 생성하여 전달

6) 웹 브라우저나 포스트맨 등에서 데이터를 받아 사용자가 볼 수 있게 된다.



➡️ 참고자료

[블로그]
https://dmsvk01.tistory.com/30


profile
'함께'가 즐거운 개발 공부하는 사람입니다.

0개의 댓글

관련 채용 정보