Why we use SPRING / JPA
Backend 개발을 하면서 사내 사정으로 다소 늦게? 스프링부트 JPA를 사용하게 되었다.
스프링부트 JPA를 사용하는 것은 사실 개발하는 회사들에서는 너무나 당연한 것이지만, 당위성을 설명하기 위해서는 정리가 좀 필요했다.
그래서 미약하게나마 정리를 조금 해보았다.
우선, SQL 중심적인 개발의 문제점을 조금 살펴보면 -CRUD 무한 반복, 지루한 코드(sql)
-필드 추가 시 한땀 한땀 다 추가해야함(query에)
-객체와 관계형 데이터베이스의 차이에서 오는 문제점들(상속, 연관관계 등)->반복 늘어나고 번잡해짐(join하고 join하고 ….)
-자바 컬렉션에서 조회하면? 걍 .get 하면 됨. 부모타입으로 조회 후 다형성 활용 가능(sql 중심은 이게 안 됨)
-객체 연관관계는 한방향, 테이블 연관관계는 양방향.(포린 키로) <-객체지향스럽지 못 함.
-db에 넣는 순간 테이블 폼에 맞게 다 바꿔줘야 함.
-상황에 따라 동일한 회원 조회 여러벌 생성(Member만, member와 team까지 등)
SPRING /JPA (ORM)의 경우 -객체 관계 매핑. 객체는 객체대로, 관계형 db는 db대로. ORM프레임워크가 중간에서 매핑
-대중적 언어 모두 ORM기술 존재하며 사용되고 있음
정리를 하다보니 ORM 사용의 당위성을 설명하는 것이 된 것 같지만..
간략하게 이러한 이유들이 있음을 한번 포스팅 해보고 싶었다.
시간 날 때마다 업데이트할 예정