ORM
ORM.. OMR은 아는디... 이게 대체 몬?디

이게 뭐냐면.. Object Relational Mapping의 약자로, 그냥 쉽게 말해서 객체(Object)를 테이블(Relation)에 매핑(Mapping) 해주는 것을 말한다.
좀 더 직관적으로, SQL 없이 코드를 쓰면 그 코드를 자동으로 알맞은 SQL로 변환해서 DB에 적용해주는 친구라고 보면 된다.
자바에서 쓰이는 대표적인 프레임워크는 hibernate다. 이름만 알아두자. JPA 쓰다보면 자주 보게되는 단어다.
그러면 여기서 의문이 들 수 있다. ORM을 왜 굳이 쓰나요? 말이다. 궁금한 김에 ORM의 장단점을 좀 알아보자.
장점
1. 빠르다. 코딩이. : SQL문을 짜는건 생각보다 복잡하고 머리아픈 일이다. 사사로운 일에까지 머리 싸매가며 SQL문을 구성하고, 이걸 코드에 적용시키다보면 내가 지금 비즈니스로직을 수행하는 프로그램을 개발하고 있는건지 DB와 씨름하고 있는건지 혼란스러울 때가 많다. 이런 문제들을 최소화시켜주고, 프로그램 개발의 편리성을 더해준다.
2. DBMS 가리지 않고 문법이 똑같다 : 이건 꽤나 큰 큰 장점인 것 같다. SQL이 불만스러운게 기업마다 문법이 묘하게 달라서 새로운 DBMS를 쓰려면 시간을 들여 다시 문법을 배워야 한다는 점인데, ORM은 코드를 자동으로 DBMS에 맞는 SQL로 변환시켜주기 때문에 갑자기 체제가 전환되더라도 SQL을 다시 학습할 시간을 벌 수 있다.
그렇다고 ORM이 SQL을 대체할 수 있는것은 아니다.
단점
1. 느리다. 속도가. : 항상 느린 것은 아니다. 언제 느리냐면 복잡한 SQL 로직을 수행해야 할 때이다. DB는 속도가 정말 중요하기 때문에 결국 복잡하거나 기민한 쿼리가 필요할 때는 사람이 짜는게 훨씬 빠를 수밖에 없다. 자동 번역기의 한계인 셈이다.
2. 어쨌든 SQL은 배워야 한다 : 결국 SQL을 직접 작성하는것이 더 빠를 수밖에 없는 현실이기 때문에 ORM이 SQL의 대체재는 될 수 없다. 부분부분에서의 편의성은 보증해주지만, 어찌 되었든 SQL은 배워야한다. 언젠가 나중에 이상적인 ORM 프레임워크가 등장한다면 이야기가 달라질 수도 있겠다.
이 외에도 다양한 장점과 단점이 있지만 대표적인 것 두 가지씩을 꼽아보았다. 단점을 보면 왜 굳이 ORM을 써야하나 싶겠지만, 코드가 정말 직관적으로 바뀌고 DBMS 전환시 이식성이 크게 향상되기 때문에 취할 수 있는 장점이 있는 셈이다. 괜히 JPA의 인기가 상승하고 있는것이 아닌 것이다.
'내가 배운 것들 > 기타' 카테고리의 다른 글
| Youtube Data API v3의 검색 기능 매개변수들 (0) | 2021.12.17 |
|---|---|
| 변수는 반복문 안에서 선언하는게 좋을까? 밖에서 하는게 좋을까? (0) | 2021.12.10 |
| DB에서 쓰는 관계(Relation)가 뭘까? (0) | 2021.12.03 |
| REST API가 뭘까? (0) | 2021.11.29 |
| WAS가 뭘까? (0) | 2021.11.29 |
댓글