Web/SrpingBoot

스프링부트3 백엔드 - 3. 스프링 부트 3 구조 이해하기

나는나는용 2023. 10. 8. 00:16
728x90

스프링 부트 3 구조 살펴보기

계층이 양 옆의 계층과 통신하는 구조.

 

계층 : 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성 요소.

서로 소통할 수 는 있지만, 다른 계층에 직접 간섭하거나 영향을 미치지 않음.

 

네가지 계층

프레젠테이션 계층 : HTTP 요청을 받고 이를 비즈니스 계층으로 전송.

컨트롤러가 맡는 역할. 컨트롤러는 스프링부트 내 여거래가 있을 수 있음.

 

비즈니스 계층 : 모든 '비즈니스 로직'(서비스를 만들기 위한 로직)을 처리함.

서비스가 맡는 역할.

 

퍼시스턴스 계층 : 모든 DB 관련 로직을 처리함.

DB에 접근하는 DAO객체( DB계층과 상호작용하기 위한 객체 )를 사용할 수도 있음.

리포지토리가 맡는 역할.

 

스프링부트 프로젝트 디렉터리 구조

main :

실제 코드를 작성하는 공간.

프로젝트 실행에 필요한 소스코드/리소스 파일 모두 이 폴더에 들어있음.

  • - java : 우리가 작성한 코드
  • - resources
    • templates : (HTML) 뷰
    • static :(JS, CSS, 이미지) 정적 파일
    • application.yml : 스프링부트 설정 자동으로 로딩됨. 데이터베이스의 설정 정보, 로깅 설정 정보 등 포함. 직접 설정 정의시에도 사용됨. 잊지 말고 만들 것.

test : 

프로젝트 소스코드를 테스트 할 목적의 코드/리소스 파일이 들어있음.

 

build.gradle : 

빌드를 설정하는 파일.

의존성/플러그인 설정 등과 같이 빌드에 필요한 설정을 할 때 사용.

 

settings.gradle

빌드할 프로젝트의 정보를 설정하는 파일.

 

 

스프링부트 요청 - 응답 과정

1의 요청이 스프링부트 내로 이동.

2에서 스프링부트의 디스패치 서블릿이 URL 분석하여 요청처리할 수 있는 컨트롤러 찾음

3의 과정에서 요청을 처리할 수 있는 메서드와 요청을 매치하고, 메서드는 비즈니스 계층과 퍼시스턴스 계층 통하면서 필요한 데이터를 가져옴.

4에서 뷰리졸버는 템플릿 엔진을 사용해 HTML 문서를 만들거나 JSON, XML 등이 데이터를 생성함.

5의 과정에서 결과로 members를 return(반환)하고 데이터를 포스트맨에서 볼 수 있게 됨.

728x90