웹/Spring

[Spring]Spring Framework Basic Framework 개념_아키텍처, JDBC | T아카데미

Ellie67 2021. 5. 25. 00:18

-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