본문 바로가기

면접준비

ORM이 무엇인지 설명해주세요

ORM은 Object-Relational Mapping의 약자로, 객체 지향 프로그래밍 언어와 관계형 데이터베이스 사이의 불일치를 해결하기 위한 기술입니다.

주요 목적은 개발자가 객체 지향적으로 프로그래밍을 할 수 있게 하면서, 데이터베이스와의 상호작용을 자동화하는 것입니다. 이를 통해 SQL 쿼리를 직접 작성하는 대신, 객체를 통해 데이터베이스를 조작할 수 있습니다.

ORM의 주요 장점으로는 생산성 향상, 유지보수성 증가, 데이터베이스 독립성 등이 있습니다. 객체와 테이블을 매핑함으로써 복잡한 SQL을 직접 작성할 필요가 줄어들고, 데이터베이스 변경 시 코드 수정을 최소화할 수 있습니다.

하지만 ORM도 단점이 있습니다. 복잡한 쿼리의 경우 성능 이슈가 발생할 수 있으며, 학습 곡선이 높을 수 있습니다. 또한 완벽한 데이터베이스 추상화는 어렵기 때문에, 때로는 직접 SQL을 작성해야 할 때도 있습니다.

Java에서 가장 널리 사용되는 ORM 프레임워크는 Hibernate이며, 이는 JPA(Java Persistence API)의 구현체입니다. Spring에서는 Spring Data JPA를 통해 JPA를 더욱 쉽게 사용할 수 있도록 지원하고 있습니다.

결론적으로, ORM은 객체 지향 패러다임과 관계형 데이터베이스 사이의 간극을 효과적으로 메워주는 중요한 기술이지만, 적절한 사용과 이해가 필요합니다.