SQL중심 개발의 문제점이 무엇인지 내 나름대로 이해하기 쉽게 풀어보고자 한다.
JAVA를 공부하면서 한번쯤은 JDBC 프로그래밍을 해봤을 거라고 생각한다.
Connection 객체를 만들고 getConnection 해준다음에
Preparestatement 생성하고 연결해줄 SQL 문 선언해주고..
결과값을 ResultSet을 통해 연결 받고.. close를 해주기까지..
그렇다.. 번거롭다..
DB에 접근해서 조금더 편하게 사용하기 위해서 Spring MVC에서 ibatis/mybatis라는 개념이 등장한다.
Connection과 Preparestatement 등의 역할을 이녀석들이 대신해주는 것으로 개발자 입장에서는 더 편해졌다.
위 두가지 방식에는 큰 공통점이 있다.
바로... SQL SQL SQL 이다..
개발자 = SQL 매퍼인 샘이 되는것이다.
아래와 같은 코드가 있다고 가정하자.
public class Member {
private String memberId;
private String name;
...
}
INSERT INTO MEMBER(MEMBER_ID, NAME) VALUES
SELECT MEMBER_ID, NAME FROM MEMBER M
UPDATE MEMBER SET ...
다음과같이 멤버변수 tel의 정보가 추가된다면??
public class Member {
private String memberId;
private String name;
private String tel;
...
}
INSERT INTO MEMBER(MEMBER_ID, NAME, TEL) VALUES
SELECT MEMBER_ID, NAME, TEL FROM MEMBER M
UPDATE MEMBER SET ... TEL = ?
tel이라는 멤버변수가 추가되는 순간
아래에 있는 INSERT, SELECT, UPDATE 를 모두 수정해 줘야하는 번거로움이 생기게 된다.
또한 수정하는 과정에서 실수하여 빼먹는 경우도 있다.
물론 이 과정을 모두 개발자가 수정을 해줘야하고 개발자는 여기에 시간을 투자해야한다는 단점이 생긴다.
'Dev > JPA' 카테고리의 다른 글
다양한 연관관계 매핑 (0) | 2020.07.28 |
---|---|
연관관계 매핑 기초 (0) | 2020.07.15 |
엔티티 매핑 (0) | 2020.07.12 |
JPA내부 구조(영속성 관리) (0) | 2020.07.06 |
JPA의 등장 (0) | 2020.06.30 |