728x90
반응형

오랜만에 새벽 5시까지 컴퓨터와 한 몸이 되었다..
 
상쾌한 마음으로 도서관을 나서려는데
자동차 배터리가 완전 방전되어 버리는 바람에
1시간동안 시동 유지를 위해 도서관 지하 주차장에서
김영한 강사님의 인생에 대한 영상을 보게 되었다.
 
아직까지 국내에서는 마이바티스가 비중이 높지만
전세계적으로 트렌드는 JPA인 것은 들어본 적이 있다.
DB 연결을 위한 초기 세팅부터 직접 쿼리 작성이 필요한
고전적인 방식부터 JPA를 통한 개발을 해본 입장에서
JPA로 개발 할 경우 개발 생산성이 올라간다는 말씀이 와닿았다.
마이바티스는 초기 세팅이 처음엔 어려웠는데
사실 반복적으로 하다보면 익숙해졌던 것 같다.

영상 초반에 와이프분이 출산을 8개월 앞둔 그 시절을
회상하시면서 애기가 8개월 뒤 배포가 된다는 말에
혼자 웃음이 터졌다👶🏻
 
앞으로도 개발자의 길을 걸으면서

Why?


왜?
왜 이거를 사용하지?
왜 이렇게 동작하지?
..
항상 왜?라는 의문을 갖고 주어진 상황을 고민하고
해결해나는 습관을 들여야겠다.

구직활동에도 적용이 되는 부분이라고 생각한다.
기업에서 왜 나를 뽑아야하지?
주어진 이력서와 자기소개서, 포트폴리오만으로
나라는 사람을 전부 파악할 수 없지만
이 주어진 내용을 보고 나라는 사람에 대해서
궁금하게 만들어야겠다.
그러기 위해서는 여전히 공부가 많이 필요하겠다.

김영한 강사님의 인생 2부가 기다려진다 :)
 

한국 개발자 최고 1타 강사 김영한의 인생 [1부]

 

728x90
반응형
728x90
반응형

Spring Boot로 프로젝트를 진행하면서

JPA를 활용해 코드를 작성하다보면 코드가 간결해져서

효율적으로 시간 분배하며 프로젝트를 진행할 수 있었다.

가끔은 하드코딩으로 처음세팅과 DB 연결부터

쿼리 작성까지했던 MyBatis가 조금은 그립다는 생각을 했다.

JPA를 다룰줄은 아는데, 내가 알고 있는 개념이 모호한 것 같아서

정확한 이해도를 잡기 위해 JPA 연관 기능들의 개념과 차이점을 정리해본다.

 

JPA, Spring Data JPA, Hibernate

- 모두 자바에서 관계형 데이터베이스와 상호 작용하기 위한 기술이지만 서로 다른 개념과 역할을 갖고 있다.

 


JPA (Java Persistence API)
- Java에서 데이터베이스와 상호 작용하는 자바 표준 API
- 데이터베이스 테이블과 자바 객체 간의 매핑을 처리하며, 객체 지향 프로그래밍과 관계형 데이터베이스 간의 매핑을 담당
- 인터페이스와 추상 클래스로 이루어져 있으며, 구현체는 제공하지 않음.
  대표적인 JPA 구현체 : Hibernate, EclipseLink, Apache OpenJPA 등


Hibernate
- JPA 스펙을 구현한 JPA 구현체 중 하나
- JPA를 구현한 라이브러리로서, JPA 스펙을 준수하면서도 JPA 스펙 외의 기능과 확장성을 제공
- 영속성 관리, 객체와 테이블 간의 매핑, 데이터베이스 쿼리 작성 및 실행, 캐싱 등을 제공

 

Spring Data JPA
- Spring 프레임워크와 JPA를 결합하여 사용하기 쉽게 만든 프로젝트
- 개발자가 JPA를 더 쉽게 사용하고 반복적인 작업을 줄이도록 돕는 목적으로 만들어졌습니다.
- JPA 리포지토리를 생성하고, 쿼리 메소드를 정의하며, 데이터베이스 액세스 작업을 단순화합니다.

 

 

출처 : docs.jboss.org

요약
JPA  자바 표준 데이터베이스 액세스 API
Hibernate  JPA 구현체 중 하나
Spring Data JPA Spring 프레임워크와 JPA를 연동하여 JPA를 더 쉽게 사용할 수 있도록 돕는 프로젝트

개발 환경과 요구사항에 따라 이러한 기술을 선택하고 결합하여 사용하면 된다.

 

 

 

참고하면 좋을 레퍼런스

https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html

728x90
반응형

+ Recent posts