-SKplanet Tacademy의 스프링 프레임워크 강의를 듣고 정리한 내용입니다-
사용자 관리 프로젝트 아키텍처
각 계층 사이에서는 인터페이스를 이용해서 통신
서비스 계층
- 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증
- 트랜잭션 처리
트랜잭션 처리
- 프리젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 하여 애플리케이션의 유연성을 증가
- 다른 계층들과 통신을 위한 인터페이스 제공
- @Service 사용해서 구현
데이터 액세스 계층
- 데이터 액세스 로직 객체화
- 영구 저장소의 데이터를 조회, 등록, 수정, 삭제함
- ORM 프레임워크 주로 사용하는 계층
- DAO 인터페이스와 @Repository 사용
도메인 모델 클래스
- 3개의 계층 전체에 걸쳐 사용
- VO, DTO
- 멤버 변수, getter, setter
<데이터 액세스 공통 개념>
DAO 패턴
- 데이터 액세스 계층은 DAO 패턴을 적용하여 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙
- 서비스계층에 영향을 주지 않고 데이터 액세스 기술을 변경할 수 있는 장점을 가지고 있다.
JDBC란?
- 모든 자바의 데이터 액세스 기술의 근간이 된다.
- 엔티티 클래스와 어노테이션을 이용하는 ORM 기술(MyBatis, Hibernate 등) 기술도 내부적으로는 DB와의 연동을 위해 JDBC를 이용
<Spring JDBC가 해주는 작업>
1. Connection 열기와 닫기
- 필요한 시점에서Spring JDBC가 알아서 모든 작업을 진행한다.
- 알아서 리소스 반납해준다.
2. Statement 준비와 닫기
- SQL 정보가 담긴 Statement 또는 PreparedStatement를 생성하고 필요한 준비 작업을 해준다.
- 사용이 끝나고 나면 알아서 객체를 닫아준다.
3. Statement 실행
- SQL 담긴 Statement 실행시킨다.
4. ResultSet Loop 처리
- ResultSet에 담긴 쿼리 실행 결과가 한 건 이상이면 ResultSet 루프를 만들어서 반복
5. Exception 처리와 반환
- JDBC 작업 중 발생하는 모든 예외는 Spring JDBC 예외 변환기가 처리한다.
- Checked Exception(try catch문 사용)인 SQLException을 런타임 예외인 DataAccessException 타입으로 변환 => 개발자가 예외처리 비교적 편하게 할 수 있음
6. Transaction 처리
- commit, rollback 등의 transaction 처리를 해줌
JdbcTemplate 클래스에서 SELECT SQL 실행해서 row 가져오는 메서드에는 queryForObject(), query()로 2가지가 있다.
queryForObject()
- 여러 개의 칼럼
- 한 개의 row
query()
- 여러 개의 칼럼
- 여러 개의 row
'웹 > Spring' 카테고리의 다른 글
[Spring]No tests found for given includes: (0) | 2021.05.31 |
---|---|
[Spring]Spring Framework Basic Framework 개념_REST | T아카데미 (0) | 2021.05.29 |
[Spring]Spring Framework Basic Framework 개념_어노테이션 | T아카데미 (0) | 2021.05.25 |
[Spring]JUnit_java.lang.Exception: No runnable methods (0) | 2021.05.18 |
[Spring]Spring Framework Basic Framework 개념_IoC, DI | T아카데미 (0) | 2021.05.18 |