티스토리 뷰
JDBC( Java DataBase Connectivity )
자바에서 데이터베이스에 접근할 수 있도록 하는 API ( DBMS와 애플리케이션의 매개체 )
이전의 인터페이스 구현 클래스를 기존 코드를 손대지 않고 스프링 DI를 통해 변경할 수 있다. ( Open-Closed Principle )
통합 테스트
테스트 시 @Transactional을 적용해보자
이전 테스트 시 메모리를 초기화 할 때 사용한 @AfterEach와 같은 맥락, DB를 커밋하기 전 삭제(롤백)하는 역할을 해준다.
스프링 JDBCTemplate
JDBC API에서 반복되는 코드를 제거해준다. 단, sql은 직접 작성해야 함
JPA( Java Persistance API )
ORM( Object-Relational Mapping ) 기술 표준으로 사용하는 인터페이스 모음
기존의 반복적인 코드를 줄여주고, 기본적인 sql도 작성준다.
JPA를 통한 모든 데이터 변경은 트랜잭션 안에서 실행되어야 한다.
스프링 데이터 JPA
반복적인 작업을 보다 더 줄여주고 효율적인 작업을 할 수 있게 도와준다.
인터페이스를 통한 기본적인 CRUD, 페이징 기능 자동 제공
+) 위의 자세한 내용들은 추후에 더 공부할 예정...
AOP ( Aspect Oriented Programming, 관점 지향 프로그래밍 )
시간 측정을 예로 들자면
회원 가입, 멤버 조회 등.. 이는 핵심 관심 사항( core concern )이며
위의 로직의 시간을 측정하는 기능은 공통 관심 사항( cross-cutting concern )이다. <- 이 내용은 반복되는 것
위와 같이 관심 사항을 분리하며 개발을 해야 유지보수가 쉬워지고, 공통 로직을 만들어 적용하여 시간을 줄일 수 있다.
본 포스팅은 인프런 강의 중 김영한님의
[ 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 을 수강하며 작성한 내용입니다.