본문 바로가기
Backend - Java Spring/Spring Boot 입문(완)

[SpringBoot3] SpringBoot3 구조 살펴보기

by VictorMeredith 2023. 10. 20.

1. 구조 살펴보기

- 각 계층이 통신하는 구조를 따른다.

- 각 계층이 소통할 수는 있지만 직접 간섭하거나 영향을 미치지는 않는다.

 

2. 각 계층구조

1) Presentation 계층

- HTTP 요청을 받고 비즈니스계층으로 전송하는 역할.

- 컨트롤러가 역할을 한다.

 

2) Business 계층

- 모든 비즈니스로직을 처리한다.

- 프로세스를 구축하는 계층이다.

 

3) Persistence 계층

- 모든 DB 관련 로직을 처리한다.

- 이 과정에서 DB에 접근하는 DAO 객체를 사용할 수도 있다.

- DAO는 DB계층과 상호작용하기 위한 객체이다.

- Repository가 퍼시스턴스 계층의 역할을 한다.

 

3. SpringBoot의 디렉터리 구조 살펴보기

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

- test : 소스코드를 테스트할 목적의 코드.

- build.gradle : 빌드를 설정하는 파일. 의존성이나 플러그인 설정 등과 같이 빌드에 필요한 설정을 할 때 사용한다.

- setting.grade : 빌드할 프로젝트의 정보를 설정한다.

 

4. 디렉터리 구성하기

- resources 디렉터리에 HTML같은 view관련 파일을 넣을 templates 디렉터리를 만든다.

- static과 application.yml도 만든다. (스프링 부트가 실행되면 자동으로 로딩되는 파일이다.)

아 오타

- build.gralde에 의존성 추가하기

DB의 테이블을 객체로 바꿔서 가져오게 하는 도구들(Express의 ORM 같은거네)

- Gradle 탭에서 새로고침 버튼을 눌러 의존성을 설치한다.

 

5. Presentation, Service, Persistence 계층 만들기

- TestController.java : 프레젠테이션 계층. HTTP 요청을 받고 보내는 역할

 

- TestService.java : 비즈니스 계층. 비즈니스로직을 처리하는 계층

 

- Member.java : Member DAO를 생성하고 실제 DB에 접근하는 코드

 

- MemberRepository.java : member 테이블과 Member 클래스를 매핑하는 작업을 위한 인터페이스 파일

아직 덜쓴거겠지 ?

- resource/data.sql 에 테스트할 데이터 넣기

앱이 실행될 때마다 저장할 더미 데이터를 넣을 SQL 파일이다.

 

- application.yml 변경

 

- 실행 후 확인

콘솔에서 data가 생성된 것을 확인할 수 있다.
/test 로 get요청하면 데이터가 날아온다!

성공 !

 

- HTTP 요청 -> TestController.java -> TestService.java -> MemberRepository.java -> DB 

- 이런 식으로 작동한다.

 

- Express는 기본세팅만 하고 api 안에서 호출하고 DB 떼와다가 비즈니스하고 트랜잭션 잡고 다되면 send 해주면 땡이었는데.. 스프링은 복잡하다.

 

 

댓글