스프링(Spring) 및 자바(JAVA)

스프링 부트 개념 정리 - 이론05

Dev.99_tale 2025. 3. 8. 16:49

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를 사용한 데이터 저장 과정

  1. 자바 프로그램 → DB 연결 요청 (Connection)
  2. DB에서 연결(Session) 확인 후 응답
  3. 자바에서 SQL(Query) 전송
  4. DB에서 SQL 실행 후 결과 반환
  5. DB 데이터 타입 → 자바 객체로 변환
  6. 변환된 데이터를 자바 코드에서 활용

📌 "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