[코드스테이츠] S3.Unit5 회고

JinYoung Choi·2023년 6월 4일
0

우리가 프로젝트에서 사용하게 될 ORM JPA에 대해 배웠다!

기존에 SQL 쿼리를 직접 작성하며 데이터베이스를 다루던 방식에서 벗어나,
객체 지향적으로 데이터를 관리할 수 있다는 점에서 많은 편의성을 느꼈다!!!

더욱 효과적이고 효율적인 개발이 가능하게 될 것 같다!

JPA(Java Persistence API)란?

JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스.
이는 자바 플랫폼, Standard Edition 및 Java 플랫폼, Enterprise Edition에서 사용되며, 자바 개발자들이 데이터베이스와 통신하는데 있어서의 표준이 된다.

JPA는 ORM(Object-Relational Mapping) 기법을 사용한다.
ORM은 객체와 관계형 데이터베이스의 테이블 사이의 매핑을 말한다.
이는 객체 지향 프로그래밍과 관계형 데이터베이스 사이의 차이를 해결하고, 간단한 API를 통해 데이터베이스 CRUD(Create, Read, Update, Delete) 연산을 할 수 있게 해준다.

JPA는 개발자가 SQL 쿼리 없이도 데이터베이스 데이터를 접근하고 조작할 수 있게 해주는 프레임워크.
이러한 작업은 JPA가 제공하는 메서드를 통해 수행할 수 있다.

그러나 JPA는 단지 인터페이스일 뿐이므로, JPA를 직접 사용하기 위해서는 Hibernate, EclipseLink 등과 같은 JPA 구현체가 필요하다.
이들 구현체는 JPA가 정의한 인터페이스를 구현하며, 실제로 데이터베이스와의 작업을 처리한다.

JPA를 사용하면 데이터베이스 액세스 코드를 크게 줄일 수 있으며, 객체 지향적인 코드를 작성할 수 있다는 장점이 있다. 이는 개발 생산성을 향상시키며, 코드의 가독성과 유지 관리성을 높여준다.

연관 관계 매핑이란?

연관 관계 매핑은 객체 지향 프로그래밍과 관계형 데이터베이스 사이의 패러다임 불일치를 해결하는 방법 중 하나.

객체 지향 프로그래밍에서는 객체들 간에 연관 관계가 있을 수 있다. 예를 들어, '학생' 객체와 '과목' 객체 사이에는 '수강'이라는 연관 관계가 있을 수 있다. 하지만 이러한 연관 관계는 관계형 데이터베이스에서는 외래 키를 통한 연결로만 표현될 수 있다.

따라서 이 두 가지 접근 방식 사이의 차이를 해결하기 위해, ORM(Object-Relational Mapping) 툴에서 제공하는 연관 관계 매핑 기능을 사용하여 객체의 연관 관계를 관계형 데이터베이스의 테이블 구조로 효과적으로 변환할 수 있다. 이 과정에서 주요한 연관 관계 매핑 유형은 일대일(One-to-One), 일대다(One-to-Many), 다대일(Many-to-One), 다대다(Many-to-Many) 등이 있다.

이렇게 연관 관계 매핑을 통해 개발자는 데이터베이스 스키마 설계와 동시에 비즈니스 로직에 대한 코드를 보다 직관적으로 작성할 수 있다. 이는 객체 지향 프로그래밍의 이점을 최대한 활용하면서도, 관계형 데이터베이스의 기능을 효율적으로 이용할 수 있게 돕는다.

일대일 (One-to-One)

일대일 관계는 한 개체가 다른 한 개체와만 관계를 가질 때를 나타낸다.
예를 들어, 한 사람이 가진 주민등록번호와 그 사람은 일대일 관계에 있다.
각각의 주민등록번호는 한 명의 사람에게만 속하며, 각각의 사람도 하나의 주민등록번호만을 가진다.

일대다 (One-to-Many)

일대다 관계는 한 개체가 여러 개체와 관계를 가질 때를 나타낸다.
예를 들어, 하나의 부모는 여러 명의 아이를 가질 수 있다. 이 경우, '부모' 개체와 '아이' 개체 사이에 일대다 관계가 형성된다.

다대일 (Many-to-One)

다대일 관계는 여러 개체가 한 개체와 관계를 가질 때를 나타낸다. 일대다 관계의 반대.
위에서 언급한 부모와 아이의 관계를 보면, 여러 명의 아이가 하나의 부모에게 속하는 다대일 관계다.

다대다 (Many-to-Many)

다대다 관계는 여러 개체가 여러 개체와 관계를 가질 때를 나타낸다.
예를 들어, 학생과 수업 사이의 관계는 다대다 관계.
하나의 학생은 여러 개의 수업을 듣고, 하나의 수업은 여러 명의 학생이 들을 수 있다.

profile
백엔드 취준생

0개의 댓글