일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

database 5

JPA / Hibernate / Spring Data JPA

사용하는 기술에 대한 정확한 개념을 가지고 있는 것이 좋은 코드의 시작점이라고 생각한다. 그래서 나는 내가 사용하는 기술들 중에 여태까지 헷갈렸던? 기술들 세가지(JPA / Hibernate / Spring Data JPA)의 차이점을 정리해보았다. 1. JPA JPA는 기술명세이다. JPA는 Java Persistence API의 약자로, 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. 여기서 중요한 것은 말 그대로 인터페이스라는 점이고, 특정 기능을 하는 라이브러리가 아니라는 점이다. 2. Hibernate Hibernate는 JPA라는 명세의 구현체이다. 즉, 위에서 언급한 JPA의 인터페이스를 직접 구현한 라이브러리이다. "Hibernate는 JPA의 구현체이다"..

Programing/Jpa 2022.05.30

Elastic Search 데이터 필드타입 변경하기 (Re-Index)

회사에서 사용 중인 Elastic Search 일정 Template의 데이터 필드 타입이 무언가의 이슈로 인해서 수정해야 할 일이 생겼다. 데이터 필드 타입 바꾸는 걸로 포스팅을 쓸게 있다니? 사실, 결론부터 말하면 한번 지정하여 Template를 등록한 후에는 데이터 필드 타입을 변경할 수 없다! 오마이갓 아니 그러면 어떻게 해야 할까? 기존 Template를 Delete 하고 새로 만들면 된다! 이상. 장난이었다. (진짜 이 방식으로 했다가 지운 데이터를 필요로 하는 개발자분에게 저 이모티콘 처럼 사과를 해야 하기도 했다.) 개발환경이거나 데이터가 수집되기 전이라면 위의 방식처럼 삭제하고 새로 만들어도 무방하지만, 운영환경이거나 수집되고 있는 데이터를 지워서는 안 되는 경우에는 그저 지우고 새로 만드..