반응형

Spring/JPA 4

[JPA] 점멸(Flash) 말고 Flush (feat. LoL)

지난 포스팅에서 잠깐 등장 했던 Flush 를 간략하게 정리하고자 합니다. https://itkevin.tistory.com/22 [JPA] JPA에서 가장 중요한 2가지 중에 첫 번째 (with. Persistence) JPA에서 가장 중요한 2가지가 있습니다. 1. 객체와 관계형 데이터베이스를 어떻게 매핑할 것인지 2. JPA의 매커니즘 (영속성 콘텍스트) 오늘은 위 2가지 중 JPA의 메커니즘에 대해서 간단하게 정리를 itkevin.tistory.com Flush 는 JPA 매커니즘에서 중요한 역할을 하고 있는데, 바로 동기화 입니다. 논리적인 개념인 영속성 컨텍스트를 비우지 않고 변경 내용을 데이터베이스에 동기화 해주는 아주아주 훌륭한 친구입니다. 영속성 컨텍스트를 플러시 하는 방법은 1. Ent..

Spring/JPA 2021.10.17

[JPA] 영속성(Persistence) JPA에서 가장 중요한 2가지 中 첫 번째 (feat. Flush)

JPA에서 가장 중요한 2가지가 있습니다. 1. 객체와 관계형 데이터베이스를 어떻게 매핑할 것인지 2. JPA의 매커니즘 (영속성 콘텍스트) 오늘은 위 2가지 중 JPA의 메커니즘에 대해서 간단하게 정리를 하고자 합니다. JPA의 메커니즘의 Key Point는 영속성(Persistence)입니다. 영속성이란? 영속성(Persistence)은 컴퓨터 공학에서 프로세스가 생성했지만 별개로 유지되는 상태의 특징 중 한 가지이며, 별도의 기억 장치에 데이터를 보존하는 것을 목적으로 한다. 출처 : 위키 (https://ko.wikipedia.org/wiki/%EC%A7%80%EC%86%8D%EC%84%B1) 영속성은 "데이터를 보존하는 것을 목적으로 한다."라고 되어 있습니다. JPA의 영속성은 단순히 저장의 ..

Spring/JPA 2021.10.17

[JPA] JPQL (Java Persistence Query Language) 객체 지향 쿼리

JPQL? 객체 지향 쿼리? JPA를 학습하던 중 조금 신선한(?) JPQL을 알게 됐습니다. 일반적으로 알고 있는 SQL는 데이터베이스의 테이블을 대상으로 한다면 JPQL은 객체를 대상으로 합니다. 객체를 대상으로 한다고? 위 코드의 결과물을 예상 해보세요 :) 네, 맞습니다. sout 으로 출력되는 결과물은 5개의 객체의 name값이 출력될 겁니다. 5개의 객체가 저장 되는 과정은 1. 엔티티매니저의 메서드를 활용하여 queryString과 객체 타입을 전달하고 2. 결과물의 1번 부터 5번까지의 객체가 3. List로 선언된 result 에 저장이 됩니다. 4. 끝 * SQL을 따로 작성 하지 않습니다. * JPQL의 특징 중 한가지가 SQL을 추상화하여 특정 Database에 의존적이지 않기 때문..

Spring/JPA 2021.10.12

[JPA] 패러다임의 불일치 와 해결책 (feat. JPA)

길지 않은 개발 경력이지만 한 가지 사실은 명확하게 알고 있습니다. 바로 그 명확한 사실은 "프로그램은 천년만년 그대로 있지 않는다."입니다. 프로그램 변화의 이유는 1) 요구 사항이 변경되어서 2) 기능을 추가하기 위해서 3) 보안을 강화하기 위해서... 등등 비슷한 듯 보이지만 조금씩 다른 이유가 있습니다. 제가 운영하고 있는 시스템에 수정 요청이 접수되었는데, 수정이 필요한 부분의 규모와 범위가 작다면 수정하는데 큰 무리가 없겠지만 수정 규모와 범위가 크고 넓다면 상당한 부담이 될 것입니다. 설상가상으로 수정에 필요한 적정 수준의 일정이 아닌 굉장히 타이트한 일정이라면 더 상황을 최악입니다. 위와 같은 상황이라면, 정말 뛰어난 개발자도 사람인지라 충분히 실수를 하지 않을까요? 실제로 주변에서 있을 ..

Spring/JPA 2021.10.07
반응형