ORM이 뭔가요?

박재성·2025년 1월 6일
0

Spring

목록 보기
3/4

📌ORM(Object-Relational Mapping)이란?

ORM은 Object-Relational Mapping의 약자로, 객체와 관계형 데이터베이스를 연결해주는 도구 또는 기법입니다. 한마디로, 우리가 작성한 객체 지향 프로그래밍 언어의 코드와 데이터베이스의 데이터를 자동으로 매핑해 주는 역할을 이예요!

⭐간단히 예를 들어볼게요.

우리가 Java로 개발하면서 아래와 같은 클래스를 만들었다고 가정해 볼게요.

public class User {
    private Long id;
    private String name;
    private String email;

    // getters and setters
}

그리고 이 클래스와 연결된 데이터베이스 테이블이 아래와 같다면,

CREATE TABLE User (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    email VARCHAR(255)
);

ORM은 이 두 가지를 자동으로 연결해줘요. 개발자가 SQL 쿼리를 일일이 작성하지 않아도, 객체를 통해 데이터베이스 작업(CRUD: Create, Read, Update, Delete)을 수행할 수 있게 해준답니다!

⭐ORM의 장점

  • 생산성 향상: ORM을 사용하면 SQL 문을 작성하는 데 드는 시간을 줄일 수 있어요. 코드가 간결해지고 유지보수가 쉬워져요.

  • 객체 지향 프로그래밍과의 호환성: 체 지향 프로그래밍의 원칙을 따르면서 데이터베이스를 쉽게 다룰 수 있어요. 예를 들어, 클래스 간의 관계를 그대로 데이터베이스에 반영할 수 있어요!

  • 유지보수 용이: 코드와 데이터베이스 간의 매핑이 명확해지기 때문에, 데이터베이스 구조가 변경되더라도 쉽게 수정할 수 있어요.

⭐ORM의 단점

  • 학습 곡선 처음 접하는 사람에게는 이해하고 사용하는 데 시간이 걸릴 수 있어요. 특히 복잡한 쿼리가 필요한 경우 ORM 사용이 오히려 비효율적일 수 있어요.(Querydsl 사용)

  • 성능 문제 ORM이 자동으로 생성하는 쿼리가 항상 최적화되어 있지는 않습니다. 복잡한 작업에서는 직접 SQL을 작성하는 것이 더 효율적일 수 있어요.

❓배우며 궁금했던 것들

📚영속성 컨텍스트가 뭔가요?

📖https://velog.io/@lustella-123/%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80-%EB%AD%94%EA%B0%80%EC%9A%94

0개의 댓글