본문 바로가기

Dev/JPA

SQL중심개발의 문제점

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