Object-Relational Mapping
What ?
ORM컴
Why ?
Programming오
ORM이란?
먼저, ORM에 대해 알아보자. 앞서 ORM은 SQL을 사용하지 않고 데이터베이스를 관리할 수 있는 도구라고 설명했다. ORM은 데이터베이스의 테이블을 자바 클래스로 만들어 관리할 수 있다. SQL의 쿼리(query)문과 ORM 코드(즉, 자바로 작성된 코드)를 비교하며 ORM을 좀 더 이해해 보자. 다음과 같은 'question'이란 이름의 테이블에 데이터를 입력한다고 가정해 보자. 그리고 question 테이블에는 id, subject, content라는 열이 있다고 가정하자.
idsubjectcontent
1 | 안녕하세요 | 가입 인사드립니다 ^^ |
2 | 질문 있습니다 | ORM이 궁금합니다 |
... | ... | ... |
이렇게 question 테이블에 데이터를 저장하려면 SQL 쿼리문을 다음과 같이 작성한다.
SQL 쿼리문이란 데이터베이스에 데이터를 저장, 조회, 수정, 삭제 등을 하기 위해 작성하는 명령문이다.
insert into question (id, subject, content) values (1, '안녕하세요', '가입 인사드립니다 ^^');
insert into question (id, subject, content) values (2, '질문 있습니다', 'ORM이 궁금합니다');
하지만 ORM을 사용하면 이러한 쿼리문 대신 자바 코드로 다음처럼 작성할 수 있다.
Question q1 = new Question();
q1.setId(1);
q1.setSubject("안녕하세요");
q1.setContent("가입 인사드립니다 ^^");
this.questionRepository.save(q1);
Question q2 = new Question();
q2.setId(2);
q2.setSubject("질문 있습니다");
q2.setContent("ORM이 궁금합니다");
this.questionRepository.save(q2);
이와 같이 SQL의 쿼리문과 ORM 코드를 단순히 비교해 보면 ORM 코드의 양이 더 많아 보이지만 별도의 SQL 문법을 배우지 않아도 데이터베이스를 사용할 수 있기 때문에 매우 편리하다. ORM 코드를 간단히 살펴보면 Question은 자바 클래스이며, 이처럼 데이터를 관리하는 데 사용하는 ORM의 자바 클래스를 엔티티(entity)라고 한다. 엔티티는 데이터베이스의 테이블과 매핑되는 자바 클래스를 말한다.
엔티티는 2-04절에서 더 자세히 살펴보자.
점프 투 스프링부트ORM의 장점을 더 알아보자
ORM을 이용하면 MySQL, 오라클 DB, MS SQL과 같은 DBMS의 종류에 관계 없이 일관된 자바 코드를 사용할 수 있어서 프로그램을 유지·보수하기가 편리하다. 또한 코드 내부에서 안정적인 SQL 쿼리문을 자동으로 생성해 주므로, 개발자가 달라도 통일된 쿼리문을 작성할 수 있고, 오류 발생률도 줄일 수 있다.
DBMS란?
DBMS(database management system)란 데이터베이스를 관리하는 소프트웨어이다. DB와 DBMS를 구분하지 않고 사용하는 경우가 많은데, 엄밀히 말해 DB는 데이터를 담은 통이라 할 수 있고, DBMS는 이 통을 관리하는 소프트웨어이다.
'Other > Programming' 카테고리의 다른 글
버전 관리 시스템 (VCS) (0) | 2024.09.20 |
---|---|
최대공약수 ( gcd ) & 최소공배수 ( lcm ) (0) | 2024.08.02 |
imos 법 (0) | 2024.03.25 |
while 문 (0) | 2024.02.23 |
메서드 (0) | 2024.02.02 |