[김영한 스프링 강의] JDBC, JPA, AOP 개념
by mini_min
난... 화석이었군... ^^
스프링 입문 강의 끝! 다음은
순수 JDBC (화석)
- 환경설정
build.gradle 파일에 jdbc, h2 관련 파일을 추가한다.
JPA
JPA 는 기존의 반복 코드는 물론이고, 기본적인 SQL 도 JPA 가 직접 만들어서 실행한다. JPA 를 사용하면, SQL 과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다. 즉, 개발 생산성을 크게 높일 수 있다.
build.gradle 파일에 JPA, H2 데이터베이스 관련 코드를 추가한다.
spring-boot-starter-data-jpa 는 내부에 jdbc 관련 라이브러리를 포함한다.
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
(jpa, hibernate 가 라이브러리로 들어와야한다.)
스프링 데이터 JPA
스프링 부트와 JPA 만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어든다. 스프링 데이터 JPA 를 사용하면 기존 한계를 넘어서 인터페이스 만으로 개발을 완료할 수 있다. 기본 CRUD 기능도 스프링 데이터 JPA 가 모두 제공한다.
* 스프링 데이터 JPA 는 JPA 를 편리하게 사용하도록 도와주는 기술이다. 따라서 JPA 를 먼저 학습 후에 스프링 데이터 JPA 를 학습해야한다.
* JpaRepository 에서 여러 메소드 제공
- 기본적인 CRUD 기능 제공
- 페이징 기능 자동 제공
복잡한 동적 쿼리는 Querydsl 이라는 라이브러리를 사용하며, 쿼리도 자바 코드로 안전하게 작성할 수 있고, 동적 쿼리도 편리하게 작성할 수 있다. 해결하기 어려운 쿼리는 JPA 가 제공하는 네이티브 쿼리를 사용하거나, 앞서 학습한 스프링 jdbcTemplate를 사용하면 된다.
AOP (Aspect Oriented Programming)
AOP 는 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 <핵심> 과 <부가>적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하는 것이다.
AOP 는 흩어진 관심사를 모듈화하는데, 모듈화 시켜놓은 블럭을 Aspect 이라고 한다.
스프링 AOP
스프링에서 제공하는 스프링 AOP 는 프락시 기반의 AOP 구현체다. 프록시를 사용해 접근 제어 및 부가 기능을 추가할 수 있는데, 스프링 AOP 는 스프링 Bean 에만 적용 가능하다. 스프링 AOP 는 순수 자바로 구현되었기 때문에 특별한 컴파일 과정은 필요하지 않는다.
'Spring' 카테고리의 다른 글
[Spring 핵심원리 기본편] 객체 지향 설계와 스프링 2 (0) | 2023.05.20 |
---|---|
[Spring 핵심원리 기본편] 객체 지향 설계와 스프링 (0) | 2023.05.16 |
[김영한 스프링 강의] H2 데이터베이스 설치 (0) | 2023.05.13 |
[김영한 스프링 강의] 스프링 빈과 의존관계 (0) | 2023.05.12 |
[김영한 스프링 강의] 회원 관리 예제 - 백엔드 개발 (0) | 2023.05.12 |
블로그의 정보
개발자 미니민의 개발로그
mini_min