- 강의
- 92강(스프링 부트 코드 구조 둘러보기) ~ 94강(스프링 부트 Data Access Layer 좀 더 살펴보기)
Spring 프로젝트 구조
- src 폴더 : 소스코드
- Spring Main 클래스
- 실행파일
- spring 실행 X, 내장 tomcat 서버 실행 O
- application.yml : spring 설정 파일
- .properties vs YAML
- yaml : 가독성과 profile 사용 용이
- profile 사용
- 개발단계에 따라서 여러 설정 파일 사용( application.yml, application-local.ym)
- Active profiles 에서 설정 관리(local)
- .properties vs YAML
- test 폴더 : test code 관리 폴더
- build.gradle, settings.gradle, HELP.md, gradlew : Gradle 설정 파일들
코드 아키텍처
- 코드를 효율적으로 관리하기 위한 소프트웨어 구조 및 구성 요소를 조직적으로 정리한 방식
- 코드 아키텐처 사용이유
- 유지 보수성
- 가독성
- 테스트 용이성
- 코드 재사용성
- 종류
- Clean Architecture
- Domain Driven Development
- 3 layer Architecture
3 layer Architecture
- 구조
- Web Layer
- = Presentation Layer
- 외부 요청 및 응답
- Service Layer
- 비즈니스 로직 처리
- Repository Layer
- = Data Access Layer
- 데이터베이스와 상호작용
- Web Layer
- 사용 이유
- 비즈니스 로직, 외부 요청, DB 관련 요청 수정 시 다른 코드들의 수정을 최소화하기 위해서
Web Layer
- 관련 클래스
- Controller
- DTO
- Exception Handler
- Filter
- DTO
- Data Transfer Object
- 데이터들의 집합
- 종류
- 외부 통신 DTO
- 직렬화와 역직렬화 가능
- 빈 생성자와 Getter 필요
- 내부 통신 DTO
- 외부 통신 DTO
- Jackson 라이브러리
- Json 과 DTO 객체를 직렬화, 역직렬화하는 라이브러리
- DTO의 getter 메서드 이용
Data Access Layer
- DAO
- Entity(= Model)
- Repository 인터페이스
- Repository 구현체
- Entity
- 데이터베이스 테이블과 1:1 매핑되는 자바 객체
- DTO와 다름
- DTO와 분리하는 이유
- 역할 분리 : DTO는 Client와 Java를 소통하는 클래스이고, DAO는 Java와 DB와 소통하는 클래스
- 보안 및 노출 제어
- 의존성 분리
- JDBC Template
- 간편하게 JDBC를 사용하여 DB와 상호작용할 수 있도록 스프링에서 제공하는 도구
- DataSource : 스프링에서 데이터베이스와의 커넥션을 관리하고 제공하는 빈
- Java의 결합
- 강한 결합 : 다른 클래스를 바로 사용한 결합 관계
- 느슨한 결헙 : 인터페이스와 결합 관계를 형성해서 구현 클래스의 변경이 용이
'슈퍼코딩 > 주특기(JAVA)' 카테고리의 다른 글
| 2024.05.31(금) 슈퍼코딩 신입연수원 9주차 Day 5 후기 - Lombok, Mapper, 로깅, 문서화 (0) | 2024.05.31 |
|---|---|
| 2024.05.30(목) 슈퍼코딩 신입연수원 9주차 Day 4 후기 - Service Layer, 트랜젝션 (0) | 2024.05.30 |
| 2024.05.28(화) 슈퍼코딩 신입연수원 9주차 Day 2 후기 - framework vs library, Springboot, WAS, MVC, DI/IoC (0) | 2024.05.28 |
| 2024.05.27(월) 슈퍼코딩 신입연수원 9주차 Day 1 후기 - 네트워크, 프로토콜, HTTP, Web API (0) | 2024.05.27 |
| 슈퍼코딩 신입연수원 8주차 후기 (0) | 2024.05.25 |