2024. 5. 20. 21:12ㆍTIL
✔오늘 배운 중요한 🔑 point
- 백엔드에서 API를 설계하여 데이터들을 DATABASE에 저장할때 따로 SQL쿼리문, SELECT나 INSERT등의 명령어를 사용하지 않았는데, 이러한 SQL쿼리를 작성하지 않아도 데이터베이스를 다룰 수 있게 해주는 것이 바로 ORM이고 그 ORM의 한 종류가 JPA이다 !!!!
- 간단한 CRUD의 경우 ORM을 사용하면 매우 편리하지만 WHERE절이나 서브쿼리 등등 복잡한 기능을 사용하는 경우에는 직접 SQL을 작성하는 것이 더 효율적이다
- JDBC는 SQL쿼리를 이용해서 데이터베이스와 통신을 하는 매우 낮은 수준의 API이기때문에 JPA와 Hibernate를 사용하는 것이며, JPA는 SQL쿼리를 직접적으로 사용하지 않고 데이터베이스 작업을 처리할 수 있게 하는 API이고, Hibernate는 그 JPA를 실질적으로 구현을 하는 역할이다
🎯 오늘 배운 내용
JPA
JPA는 ORM의 한종류로서 데이터베이스를 쉽게 조회할 수 있도록 한다
JDBC: (Java Database Connectivity): SQL을 작성하며 직접적으로 DB와 통신
spring:
datasource:
url: jdbc:postgresql://aws-0-ap-northeast-2.pooler.supabase.com:5432/postgres
application.yml에 작성한것을 보면 jdbc가 사용된것을 볼수 있는데 JDBC는 API와 그 API를 구현하는 Driver로 이루어져있다.
dependencies {
runtimeOnly("org.postgresql:postgresql") // postgresql드라이버 설치
}
build.gradle.kts에서 확인 할 수 있는 바로 이 부분이 데이터베이스에 대해 독립적이기 때문에 데이터베이스 자체를 변경하더라도 코드의 수정이 최소화 될수 있는것이다!! postgreSQL을 연결하고 싶으면 postgreSQL 드라이버를 설치하면 되고, MySQL을 사용하고 싶으면 MySQL 드라이버를 설치해서 사용하면 된다
자 그렇다면 JDBC만 사용하면 끝일까?
물론 JDBC만 사용해서도 개발이 가능하다! 하지만 JDBC는 너무 낮은 수준의 API이기 때문에
우리는 JPA(Java Persistence API)나 Hibernate를 그 위에 추가해서 사용한다
JPA는 데이터베이스 관련 코드를 객체지향적으로 작성할수 있도록 도와주는 API이고
실제 구현은 Hibernate가 담당한다!!!
그리고 그 JPA를 쓰기 편하게 만든것이 바로~ Spring Data JPA이다
🤔 어떻게 활용할까?
즉 우리가 JPA를 배우고 사용하는 이유는 JDBC를 이용해서 데이터베이스와 직접적으로 통신을 하게 되면 SQL쿼리를 직접 작성해줘야하는 번거로움이 있기도 하고 객체지향적으로 설계를 하기 위해서 JPA를 사용하게 되는것이다.
📓 오늘의 한줄
"Success is not something that happens to you, it's something that happens because of you and because of the actions you take."
- Grant Cardone -
'TIL' 카테고리의 다른 글
인증 (0) | 2024.05.22 |
---|---|
간단한 API를 직접 만들어보자(4) Status code 500 해결 (0) | 2024.05.21 |
(SQL) 식품 종류별 비싼 식품 정보 조회하기 (0) | 2024.05.19 |
(알고리즘) 과일장수 (0) | 2024.05.18 |
간단한 API를 직접 만들어보자 (3) (0) | 2024.05.17 |