Intro.
굳이 알아야 할 필요는 없다.
하지만, 알고 있으면 내가 그만큼 이 기술에 관심이 많다는 뜻이다.
외국의 다양한 레퍼런스를 검색하는 도중 J2EE로 구현한 기술들을 발견하게 되었고, 그 기술에서 Jakarta Persistence를 발견하게 되었다.
결론부터 말하자면 둘의 차이는 없다.
없지만 왜 사용하는 것일까?
사실 주니어개발자로서, 그리고 자바를 혐오했던 사람으로서 가장 큰 이유는 자바개발자라면서 국내에서는 자바의 생태계를 잘 모르는 사람이 너무 많았다.
물론 건방지게 주니어가 그런이야기를 하는건 매우 주제가 넘지만, 개인적으로 더 큰 목표와 꿈을 그리는 개발자로서 생태계에 대해서 알아야 하는 것은 필수라고 여겨진다.
여기서 왜 생태계 이야기를 하는걸까? 라고 하는 사람들이 많을 것인데, Jakarta Persitence와 JPA(Javax.Persistence를 칭하는 말로 여기서 씀)은 둘 다 같지만 용어가 분화되는 이유를 알아야한다.
'스프링 입문을 위한 자바 객체지향의 원리와 이해' 라는 책과 그리고 실제 '경험'에 입각하여 봤을 때 Spring 이전 자바의 산업체계는 지금 기준에서 복잡한 것이지 스프링과 별 다를바가 없다.
자바EE는 WAS의 활용, 분산처리, 트랜잭션과 같은 부분들도 잘 되어 있기 때문에 상당히 많이 인기가 있지만, 현재 그 규모가 Spring에게 밀리는 이유는 비용적문제와 개발시간의 단축등등의 이유가 있다.
사실, 이렇게 간단하게 축약하는 이유는 글보다 실제로 경험해봐야 알 수 있다.
그리고 이러한 Spirng MVC도 결국 요즘은 Boot로 변하는 추세가 되니 결국 그 기술은 사람의 편의를 따라서 가기 마련이다.
즉, 스프링 부트가 유행이라 해서 JaveEE가 열등하다, SpirngMVC가 열등하다 라는 생각은... 좀...
Oracle에서 이클립스 재단으로 자바EE 오픈소스 프로젝트를 진행함으로서 JavaEE에서 JakartaEE로 이름이 변경되었다.
사실 나는 JakartaEE를 인텔리제이에서 프로젝트를 만들 때 마다 맨날 나와있길래 인도네시아의 수도인가? 도시인가? 였던걸로 기억하는데 왜 이름을 이렇게 짓지 하고 궁금해서 공부할때 검색하고 해본적이 있다...
여튼, 가장 중요한 것은 JakartaEE로 바뀌면서 JPA의 비즈니스 표준명도 Jakrata Persitence Application으로 혼용되고 둘은 결국 같은 의미이다.
둘은 같은 의미이고 자바EE는 현재 자카르타EE로 꾸준한 개발과 관심을 가지고 있다.
사실, 한국에서 자바일변도의 환경보다 더 안타까운건 스프링일변도의 환경이다... 개인적으로 자카르타EE도 역시 많이 불편하긴하다.
실제로, 자바에 대한 지식 동기화, 쓰레드등등에 대한 부분을 알고 있어야하니 말이다.
그렇지만, 결국 스프링에서도 알아야하고 그 둘은 역시 '자바'를 이용하여 편하게 상업용 어플리케이션을 개발하기 위한 것이다.
프로그래밍의 역사, 그리고 레거시를 알아야 지금 내가 쓰는 기술이 얼마나 편한지 알 수 있다고 개인적으로 생각한다.
참고자료
자바EE -> 자카르타EE 변천사와 그에 대한 과정 : https://www.samsungsds.com/kr/insights/java_jakarta.html
Spring은 왜 탄생하고, 자바는 어떻게 강자가 되었는가 : https://okky.kr/articles/415474