본문 바로가기
스터디일지

[WIL] 한 주의 정리

by 똥쟁이핑크 2023. 9. 10.

숙련 4주차 강의에서 JPA, 객체간의 관계를 배우게 됬다.

객체간의 관계에서 객체와 DB이 테이블이 매핑을 이루는 것이 ORM - Object Relational Mapping 이라고 한다.

그리고 JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것인데 

인터페이스를 사용하기 위해서는 ORM 프레임워크를 사용해야한다.

 

 

ORM

ORM을 사용해보니 직접 쿼리를 짜지 않아도 직관적으로 코드를 짜서 조작할 수 있었다.

예전에는 자바코드를 이용해서 DB의 데이터를 가져올때는 SELECT * FROM 테이블 명 WHERE ID = ? 이런식으로 짜야 했었다. 

현재 게시글을 구현하는 코드 일부분을 예로 들면 postRepository.findAllByOrderByModifiedAtDesc() 이런식으로 코드를 짤 수 있다. 코드를 설명하자면 수정한 시간을 기준으로 전부 찾는데 정렬은 내림차순으로 한다. 라는 뜻이다.

알아보기도 쉽고 직관적이여서 편리하다고 생각했다.

Repository를 Interface로 만들어 JPA를 상속하면 바로 사용가능하니 이런 좋은 기능에 대해서는 잊지말아야 겠다고 생각했다.

 

Hibernate

JPA에 있는 프레임워크중 하나고 강의에서 언급됬다.

Hibernate를 사용해서 편한점은 SQL를 직접 사용안해도 메서드를 호출하면 쿼리가 수행이 된다는 것이다.

그런데 혹시라도 잘못된 값이 들어가게 되면 콘솔에 나오는 쿼리를 보면서 제대로 짜여져 있는지 확인해 봐야 한다.

그러니 SQL도 어느 정도는 알고 있어야 한다는 말이고 쿼리 공부도 소홀히 하면 안되다는 말이다.

두 번째로 편한점은 수정할 때 컬럼이 변경되도 JPA를 사용해서 한번에 처리 가능하다는 점이다.

Hibernate내에 JDBC API가 동작하고 있어서 가능한 일이라고 한다.

 

여러가지 유용한 기능도 많으니 잘 찾아보고 과제 열심히 해야겠다

 

'스터디일지' 카테고리의 다른 글

MSA란 무엇인가??  (0) 2023.10.05
[WIL] 팀프로젝트를 진행하며....  (0) 2023.09.24
[WIL] DI, IoC, Bean를 공부하며...  (0) 2023.09.03
[WIL] Java Spring 1 주차  (0) 2023.08.27
[WIL] 알고리즘 주차  (0) 2023.08.20