웹 브라우저
<->
스프링 부트 애플리케이션 {
Controller 클래스: 외부 요청을 분기하여 적절한 서비스 클래스와 연결하여 작업을 처리하고 반환,
Service 클래스: 데이터베이스 조작이나 비즈니스 로직을 메서드 기반으로 처리,
Member클래스 - MemberRepository: Memeber 클래스로 구현한 클래스를 Repository 인터페이스가 실제 테이블과 매핑(JPA, Hibernate),
실질적인 데이터는 DB에 저장
}
<-
JPA: 데이터베이스 연결 및 구현
lombok: 클래스 메서드 구현 도우미
h2: 인메모리 데이터베이스
Spring Boot의 세가지 계층
프레젠테이션 계층 - Controller : 외부에서 HTTP 요청을 받아 비즈니스 계층으로 전송
비즈니스 계층 - Service : 비즈니스 로직을 처리하는 계층으로 웹 사이트에서 작동하는 모든 작업들을 처리한다.
퍼시스턴스 계층 - Repository : DB관련 로직을 처리. DAO 객체(DB계층과 상호작용하는 객체)를 사용할 수 있다.
계층은 개념이고 실제 구현은 Controller, Service, Repository로 한다.
build.gradle에서 사용되는 dependency 키워드
implementation : 프로젝트 코드가 컴파일 시점과 런타임에 모두 해당 라이브러리를 필요로 할 때 사용한다
testImplementation : 프로젝트의 테스트 코드를 컴파일하고 실행할 때만 필요한 의존성을 설정, 테스트 코드에서만 사용,
메인 애플리케이션 코드에서는 사용하지 않는다
runtimeOnly : 런타임에만 필요한 의존성을 지정한다. 컴파일 시에는 필요하지 않지만, 애플리케이션을 실행할 때
필요한 라이브러리 설정이다
compileOnly : 컴파일 시에만 필요로하며, 런타임에는 포함되지 않아야 하는 의존성 지정
annotationProcessor : 컴파일 시에 애노테이션을 처리할 때 사용하는 도구의 의존성 지정이다
'Back End > Spring Boot' 카테고리의 다른 글
테스트 코드 개념 (0) | 2024.07.09 |
---|---|
SpringBoot의 세가지 Annotation(@SpringBootConfiguration, @ComponentScan, @EnableAutoConfiguration) (0) | 2024.06.24 |
Querydsl 조회 (0) | 2024.04.15 |
JPQL 검색조건 (0) | 2024.04.15 |
Querydsl dependency 추가방법 (0) | 2024.04.09 |