컴퓨터 프로그래밍 언어의 종류는 다양하다. 프로그래밍에는 프론트엔드, 백엔드, 데이터 등 다양한 분야가 있기 때문이다.본인의 분야가 아니면 아예 모를 정도로 다른 언어도 있고, 본인이 쓰는 언어와 유사하거나 거의 똑같은 언어도 있다. 한 분야의 프로그래밍 언어만 공부하더라도 평생을 해야될 수도 있을 정도로 정보가 방대한데 다른 분야의 언어까지 섭렵하려면 정말 힘들 것이다. 예를들어 자바를 쓰는 백엔드개발자가 데이터에 문제가 생겼을때 처리를 해야하는 경우, 어렵다고 생각할 수 있다. 그러나 이를 해결해주는 JPA를 활용하면 그 어려움은 조금씩 없어질 것이다.
JPA란??
JPA를 알기 위해서는 선행적으로 ORM에 대해 알아야 한다.
ORM은 Object-Relational Mapping의 약자로 객체와 관계형 데이터베이스를 매핑해주는 역할을 한다.
쉽게 말해 자바,파이썬과 같은 객체지향언어와 H2,MySQL과 같은 관계형 데이터베이스를 중간에서 이어주는 다리 역할을 한다고 생각하면 된다. 객체지향언어와 데이터베이스언어는 쓰는 문법이나 형식이 다른데 ORM이 중간에서 맞춰주고 서로 이어주기 때문에 프로그램을 돌릴 수 있다. ORM이 없어도 충분히 간단한 데이터베이스언어를 가지고도 웹서버를 만들 수 있지만 ORM을 사용함으로 인해 백엔드 개발자가 SQL작성을 하지 않아도 되어 비지니스 로직 개발에 쓸 시간이 많아지고 SQL작성시 발생하는 실수나 오류가 줄어들어 효율이 올라간다.
JPA는 Java Persistence API로 자바의 ORM 버전이다. 예전에는 SQL 매퍼(MyBatis, JdbcTemplate)를 위주로 개발했고, 옛날의 자바 표준이었던 EJB도 썼지만 API가 복잡해지고, 코드도 많아지고 따라서 속도도 느려서 점점 안쓰게 되었다. 현재에는 JPA의 편리함을 맛본 개발자들이 JPA의 사용량을 급격하게 늘리면서 지금은 JPA가 많이 쓰이고 있는 실정이다. JPA는 자바의 표준 명세인데 Hibernate라고 JPA를 가지고 만들어낸 구현체가 있다.
Hibernate는 시장에 공개된 프레임워크들 중에 개발자들에 의해 많이 쓰이면서 경쟁에서 이겨 살아남게된 사실상 표준이라고도 한다. JPA가 공식적으로 표준이라고 하지만 Hibernate가 더 많이 쓰여지면서 비공식적으로는 Hibernate를 표준이라고 봐도 무방하다. Hibernate는 SQL을 직접 쓰지 않고 메서드 호출로 쿼리를 수행시켜 반복적인 코드작업을 없애기 때문에 생산성이 좋다. 테이블 컬럼을 변경했을때 테이블 관련 작업을 대신 해주기 때문에 유지보수도 용이하다. 물론 단점도 있지만 위의 장점만 해도 Hibernate를 안 쓸 이유가 없다. 그렇기 때문에 spring boot에서는 Hibernate를 디폴트값으로 사용하고 있다.
'TIL' 카테고리의 다른 글
39_Step : 카카오 ID로 로그인 연동하기(2) (0) | 2022.09.07 |
---|---|
38_Step : 카카오 ID로 로그인 연동하기(1) (0) | 2022.09.06 |
37_Step : spring security로 로그인 기능 만들기(3) (0) | 2022.09.05 |
36_Step : spring security로 로그인 기능 만들기(2) (0) | 2022.09.01 |
35_Step : spring security로 로그인 기능 만들기(1) (0) | 2022.08.25 |