| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 쿠버네티스
- @Transactional
- Web
- DLQ
- 스프링 부트
- AWS
- 페이징
- JdbcTemplate
- 지연 로딩
- JWT
- JPA
- docker
- Spring Container
- 컨테이너
- @ComponentScan
- docker compose
- 서블릿 컨테이너
- mybatis
- CORS
- dockerhub
- Routing Key
- redis
- securitycontextholderfilter
- Spring Data JPA
- MSA
- DI
- kafka
- Dead Letter Queue
- JPQL
- Spring
- Today
- Total
목록JdbcTemplate (5)
look-forest
추상화 비용Spring Data Jpa를 적용해서 리포지토리를 아래와 같이 구성한 경우,중간에서 JpaItemRepositoryV2 가 어댑터 역할을 해준 덕분에 ItemService 가 사용하는 ItemRepository 인터페이스를 그대로 유지할 수 있고 클라이언트인 ItemService 의 코드를 변경하지 않아도 되는 장점이 있다. 그런데, 구조를 맞추기 위해서 중간에 어댑터가 들어가면서 전체 구조가 너무 복잡해지고 사용하는 클래스도 많아지는 단 점이 생겼다. 추상화도 비용이 든다. 이 추상화 비용을 넘어설 만큼 효과가 있을 때 추상화를 도입하는 것이 실용적이다. 실용적인 구조DI, OCP 원칙을 지키지 못하더라도, 상황에 따라 단순하고 빠르게 구현하고 추후 필요시 추상화로 리팩토링 할 수 있다. ..
JdbcTemplate의 장점설정의 편리함JdbcTemplate은 spring-jdbc 라이브러리에 포함되어 있는데, 이 라이브러리는 스프링으로 JDBC를 사용할 때 기본으로 사용되는 라이브러리이다. 그리고 별도의 복잡한 설정없이 바로 사용할 수 있다.반복 문제 해결JdbcTemplate은 템플릿 콜백 패턴을 사용해서, JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다. 개발자는 SQL을 작성하고, 전달할 파리미터를 정의하고, 응답 값을 매핑하기만 하면 된다.그 외 대부분의 반복 작업을 대신 처리해준다.- 커넥션 획득 - statement 를 준비하고 실행 - 결과를 반복하도록 루프를 실행 - 커넥션 종료, statement , resultset 종료 - 트랜잭션 다루기 위한 커넥..
예외 처리 이슈 해결리포지토리가 던지는 SQLException 체크 예외를 런타임 예외로 전환해서 서비스 계층에 던지면 서비스 계층이 해당 예외를 무시할 수 있기 때문에, 특정 구현 기술에 의존하는 부분을 제거하고 서비스 계층을 순수하게 유지할 수 있다. 이로써 throws SQLException가 제거되어 서비스 계층의 순수성을 유지할 수 있게 되었다.덕분에 향후 JDBC에서 다른 구현 기술로 변경하더라도 서비스 계층의 코드를 변경하지 않고 유지할 수 있다. 예외 처리를 하고 싶다면리포지토리에서 넘어오는 특정한 예외의 경우 복구를 시도할 수도 있다. 그런데 위 방식은 항상 MyDbException 이라는 예외만 넘어오기 때문에 예외를 구분할 수 없는 단점이 있다. 만약 특정 상황에는 예외를 잡아서 복구..
애플리케이션에서 데이터베이스에 접근할 때 사용하는 JDBC라는 기술에 대하여 알아보자. JDBC 등장 이유일반적으로 애플리케이션 서버에서 데이터베이스를 사용할 때는 아래 과정을 거친다. 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결SQL 전달: 애플리케이션 서버는 SQL을 연결된 커넥션을 통해 DB에 전달결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답. 애플리케이션 서버는 응답 결과를 활용 문제는,각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다르다는 것이다.-> 데이터베이스를 변경하면 애플리케이션 서버에 개발된 DB 사용 코드도 함께 변경해야 하며, 각각 학습해야 한다. 이런 문제를 해결하기 위해 JDBC라는 자바 ..
개요 H2 데이터베이스: 개발이나 테스트 용도로 가볍고 편리한 DB. (웹 화면 제공) 순수 JDBC: DB와 애플리케이션 서버를 연결할 때 필요한 기술. (복잡..) 스프링 JdbcTemplate: JDBC를 편리하게 쓸 수 있도록 감싼 기술. (JDBC 사용 과정 중 중복 제거) JPA: 쿼리없이! '객체' 저장 및 조회. SQL을 자동 생성. 스프링 데이터 JPA: JPA를 편리하게 쓸 수 있도록 감싼 기술. (구현없이 인터페이스 만으로!) 순수 JDBC로 DB 연결 DB와 애플리케이션 서버를 연결할 때 필요한 기술이다. 그러나 너무 복잡해서 거의 쓰지 않는다. 그냥 기본 용어 정도만 참고하자. - JDBC 드라이버 Java는 DB와 연결할 때 JDBC 드라이버가 필요하다 - DataSource 데..