JPA는 ORM 기술이다 – 개념 잡기
이번 글에서는 JPA와 ORM(Object-Relational Mapping)의 개념을 쉽게 설명하고, 반복적인 CRUD 작업을 어떻게 자동화하는지 알아보겠습니다.
✅ JPA는 ORM 기술이다
"JPA는 객체(Object)와 데이터베이스(Relational DB)를 연결해주는 기술이다!"
ORM(Object-Relational Mapping) 은 객체와 관계형 데이터베이스 간의 데이터를 자동으로 변환하는 기술입니다.
즉, 자바 객체와 DB 테이블 간의 변환을 자동으로 처리해주는 것이 ORM이며, 이를 구현한 대표적인 기술이 JPA입니다.
📌 "ORM은 개발자의 하인이다! 즉, 개발자가 직접 SQL을 작성하지 않아도 자동으로 변환해준다!"
✅ 모델링(Modeling)이란?
"추상적인 개념을 현실 세계에서 사용할 수 있도록 변환하는 과정!"
🔹 2D 설계 → 3D 건축 (현실 적용)
- 건축 설계도(2D) → 실제 건물(3D)
- DB 테이블 → 자바 객체로 변환
🔹 테이블과 객체의 차이점
| DB 테이블 (RDB) | 자바 클래스 (Object) |
| id INT | int id; |
| name VARCHAR | String name; |
| year VARCHAR | String year; |
📌 "JPA는 자바 객체(Entity)를 통해 자동으로 DB 테이블을 생성하고, 데이터를 저장할 수 있도록 한다!"
✅ JPA와 ORM의 핵심 기능
"JPA는 ORM의 규칙을 따라 객체를 DB 테이블로 변환하고, CRUD 작업을 자동화해준다!"
🔹 JPA를 사용한 데이터 저장 과정
- 자바 프로그램 → DB 연결 요청 (Connection)
- DB에서 연결(Session) 확인 후 응답
- 자바에서 SQL(Query) 전송
- DB에서 SQL 실행 후 결과 반환
- DB 데이터 타입 → 자바 객체로 변환
- 변환된 데이터를 자바 코드에서 활용
📌 "JPA는 SQL 없이 자바 코드만으로 데이터베이스와 통신할 수 있도록 도와준다!"
✅ JPA가 CRUD를 자동화하는 방법
"반복적인 SQL 작성 없이, 단순한 함수 호출만으로 데이터를 관리할 수 있다!"
🔹 CRUD란?
| 연산 | 의미 | SQL |
| C(Create) | 데이터 삽입 | INSERT INTO ... |
| R(Read) | 데이터 조회 | SELECT ... |
| U(Update) | 데이터 수정 | UPDATE ... |
| D(Delete) | 데이터 삭제 | DELETE ... |
📌 "JPA를 사용하면 SQL을 직접 작성하지 않고, 함수 호출만으로 CRUD를 수행할 수 있다!"
✅ JPA를 사용한 CRUD 예제
📌 "SQL 없이 자바 코드만으로 데이터를 저장하고 조회할 수 있다!"
@Entity // JPA가 관리하는 엔티티 클래스
public class Team {
@Id @GeneratedValue
private Long id; // 기본키
private String name;
private String year;
}
@Repository
public interface TeamRepository extends JpaRepository<Team, Long> {
}
@Service
public class TeamService {
private final TeamRepository teamRepository;
@Autowired
public TeamService(TeamRepository teamRepository) {
this.teamRepository = teamRepository;
}
public void createTeam() {
Team team = new Team();
team.setName("Developers");
team.setYear("2024");
teamRepository.save(team); // SQL 없이 데이터 저장!
}
public List<Team> getTeams() {
return teamRepository.findAll(); // SQL 없이 데이터 조회!
}
}
📌 "JPA를 사용하면 SQL 없이 save(), findAll() 같은 간단한 메소드 호출만으로 데이터베이스를 다룰 수 있다!"
✅ JPA는 개발자의 하인이다!
"반복적인 CRUD 작업을 단순화하고, 자바 클래스를 통해 자동으로 테이블을 만들어준다!"
| 기능 | JPA의 역할 |
| DB 연결 | 자동으로 연결 관리 |
| CRUD 작업 | SQL 없이 함수 호출만으로 수행 |
| 데이터 변환 | DB 데이터 → 자바 객체 변환 자동 처리 |
| 테이블 생성 | 자바 클래스(Entity)를 기반으로 DB 테이블 자동 생성 |
📌 "JPA는 개발자가 해야 할 노가다(반복적인 SQL 작업)를 대신 처리해주는 강력한 도구이다!"
🔥 핵심 정리
| 개념 | 설명 |
| JPA | ORM 기술을 구현한 Java API |
| ORM | 객체와 DB를 자동으로 매핑하는 기술 |
| 모델링 | 추상적인 개념(설계도)을 현실화하는 과정 |
| CRUD | 데이터 저장(Create), 조회(Read), 수정(Update), 삭제(Delete) |
| JPA의 역할 | SQL 없이 데이터베이스를 쉽게 다룰 수 있도록 지원 |
📢 마무리
JPA는 객체와 데이터베이스를 자동으로 연결해주는 ORM 기술이며,
반복적인 CRUD 작업을 단순하게 처리해줍니다.
이제 JPA를 활용하면 SQL을 직접 작성하지 않아도 손쉽게 데이터를 관리할 수 있습니다!
https://getinthere.tistory.com/9
스프링부트 with JPA 1강 - 스프링이란!
1. 스프링이란? 스프링은 프레임워크이다. 스프링은 오픈소스이다. 스프링은 IoC 컨테이너를 가진다. 스프링은 DI 를 지원한다. 스프링은 엄청나게 많은 필터를 가지고 있다. 스프링은 엄청나게
getinthere.tistory.com
'스프링(Spring) 및 자바(JAVA)' 카테고리의 다른 글
| 스프링 부트 개념 정리 - 이론07 (0) | 2025.03.08 |
|---|---|
| 스프링 부트 개념 정리 - 이론06 (0) | 2025.03.08 |
| 스프링 부트 개념 정리 - 이론04 (1) | 2025.03.07 |
| 스프링 부트 개념 정리 - 이론03 (0) | 2025.03.07 |
| 스프링 부트 개념 정리 - 이론02 (0) | 2025.03.06 |