반응형

JPA 4

[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

[Book] 자바 ORM 표준 JPA 프로그래밍 과 인연

JPA를 처음 알게 된 건 회사에서 업무 외에 진행하고 있는 토이 프로젝트에서 Spring Security를 쓰면서 우연히 알게 되었습니다. 그때 그 멍~했던 기분을 아직도 잊을수 없어요! Spring Security의 동작 원리를 파악하기 위해서 브레이크 포인트를 찍고 디버깅을 하는데 쿼리가 없다?! 어 내가 F8(다음 중단점으로 이동 단축키)를 눌렀나?라고 생각해서 4~5번은 돌려본 것 같아요 내 눈에 보이는 건 몇개의 어노테이션과 CRUD로 추정되는 함수들이 전부 ㅋㅋㅋ 이게 머선 129?!?! 오늘도 또 물음표로 시작합니다 우연히 알게 된 JPA라는 녀석에 관심이 생겨서 이것~저것~ 알아보다 보니 굉장히 흥미롭다고 생각이 들어서 한번 배워보고 싶다!라는 생각에 이곳저곳 수소문을 하고 다녔어요 (J..

ETC/Books 2021.09.27
반응형