| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- kafka
- 페이징
- JPA
- JWT
- Spring
- 지연 로딩
- @Transactional
- docker
- JPQL
- dockerhub
- 쿠버네티스
- DLQ
- 서블릿 컨테이너
- @ComponentScan
- JdbcTemplate
- DI
- docker compose
- MSA
- AWS
- Web
- Spring Data JPA
- 스프링 부트
- Routing Key
- 컨테이너
- Spring Container
- mybatis
- securitycontextholderfilter
- Dead Letter Queue
- redis
- CORS
- Today
- Total
목록JPA (5)
look-forest
JPA 설정하기 - persistence.xmlJPA 설정 파일/META-INF/persistence.xml 위치persistence-unit name으로 이름 지정javax.persistence로 시작: JPA 표준 속성hibernate로 시작: 하이버네이트 전용 속성 JPA 구동 방식엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유엔티티 매니저는 쓰레드간에 공유X (사용하고 버려야 한다).JPA의 모든 데이터 변경은 트랜잭션 안에서 실행JPQL 소개 - 객체 지향 SQLJPA를 사용하면 엔티티 객체를 중심으로 개발. 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색.but 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능. 애플리케이션이 필요한 데이터만 DB에서 불러오..
추상화 비용Spring Data Jpa를 적용해서 리포지토리를 아래와 같이 구성한 경우,중간에서 JpaItemRepositoryV2 가 어댑터 역할을 해준 덕분에 ItemService 가 사용하는 ItemRepository 인터페이스를 그대로 유지할 수 있고 클라이언트인 ItemService 의 코드를 변경하지 않아도 되는 장점이 있다. 그런데, 구조를 맞추기 위해서 중간에 어댑터가 들어가면서 전체 구조가 너무 복잡해지고 사용하는 클래스도 많아지는 단 점이 생겼다. 추상화도 비용이 든다. 이 추상화 비용을 넘어설 만큼 효과가 있을 때 추상화를 도입하는 것이 실용적이다. 실용적인 구조DI, OCP 원칙을 지키지 못하더라도, 상황에 따라 단순하고 빠르게 구현하고 추후 필요시 추상화로 리팩토링 할 수 있다. ..
JPA 설정build.gradle//JPA, 스프링 데이터 JPA 추가implementation 'org.springframework.boot:spring-boot-starter-data-jpa' -> spring-boot-starter-jdbc 도 함께 포함 application.properties #JPA loglogging.level.org.hibernate.SQL=DEBUG -> : 하이버네이트가 생성하고 실행하는 SQL을 확인할 수 있다logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE -> : SQL에 바인딩 되는 파라미터를 확인(JPA log springboot 3이상일 경우는 logging.level.org.hibernat..
애플리케이션에서 데이터베이스에 접근할 때 사용하는 JDBC라는 기술에 대하여 알아보자. JDBC 등장 이유일반적으로 애플리케이션 서버에서 데이터베이스를 사용할 때는 아래 과정을 거친다. 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결SQL 전달: 애플리케이션 서버는 SQL을 연결된 커넥션을 통해 DB에 전달결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답. 애플리케이션 서버는 응답 결과를 활용 문제는,각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다르다는 것이다.-> 데이터베이스를 변경하면 애플리케이션 서버에 개발된 DB 사용 코드도 함께 변경해야 하며, 각각 학습해야 한다. 이런 문제를 해결하기 위해 JDBC라는 자바 ..
지난번에 JDBC와 JdbcTemplate 기반의 DB 접근 방법을 알아보았다. 하지만 현업에서는 JPA를 사용한다. JPA를 사용하면 개발 생산성을 크게 높일 수 있기 때문이다. JPA (Java Persistence API) 객체를 JPA에 집어넣으면, 기존(jdbc)의 반복 코드를 줄여주는 것은 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. JDBC를 사용하면 쿼리 날리고 결과를 객체에 맵핑까지 했어야 했다. 그러나 JPA는 맵핑된 객체를 반환한다! JPA는 표준 인터페이스, Hibernate는 구현체 JPA 실행 시 쿼리문 로그를 보면 알 수 있다. JPA는 ORM 기술 Object Relational Mapping → 객체 중심의 설계로 패러다임을 전환 객체 중심으로 개발하니 ..