개발자
자바에서는 객체를 다루고 관계형 데이터베이스는 테이블을 다루게 된다. 객체를 SQL로 변환해서 RDB에 데이터를 관리한다.
그럼, 데이터베이스 연동을 위해 JDBC나 MyBatis를 사용하는 데, 이 두 가지 모두 SQL query를 직접 작성해서 데이터베이스에 넘겨줘야 한다. 이런 경우 어떤 불편한 점들이 있는지 확인해 보자.
클래스에 새 필드 변수가 추가 또는 삭제 되는 경우
회원 클래스에 memberId, name 두 필드 변수가 있다. 여기서 다른 필드 변수 email이 추가되거나, 변수 name이 삭제되는 경우 아래 query가 수정이 필요해진다. 수정 횟수도 많겠지만, Mybatis는 XML 파일에서 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 ..;
반복되는 CRUD query 작업
엔티티에 따라서 CRUD 작업이 필요할 텐데 query의 특정 부분을 제외한 나머지는 동일한 코드로 구성되어 동일한 작업을 하여 지루한 코드 -> 지루한 작업이 되어버린다. 다른 부분을 고려해야 할 것도 많은데 단순 작업에 시간 소요하게 된다.
제목처럼 SQL 문을 잘 작성하는 것도 필요한 능력이다. 하지만 이 작업으로 많은 시간을 할애하는 것이 불편으로 다가오는 개발자분들이나 개발해 보신 분들에게 있을 것이다. 이 불편을 해소해 줄 수 있는 API는 JPA이다. 다음에는 JPA가 왜 등장하게 되었는지 이 글 외에 패러다임의 불일치를 정리 할 것이다.
'Programming > Java' 카테고리의 다른 글
[JPA] 값 타입(Value Type) (0) | 2024.02.27 |
---|---|
[JPA] 패러다임 불일치 - 우린 달라 달라 (0) | 2024.02.19 |
[Java] 패키지 구조 (0) | 2023.12.20 |
[JAVA] LocalDateTime 년월일 값만 출력 (0) | 2023.11.11 |
[Servlet / JSP] JSP 출력 버퍼 (0) | 2023.08.22 |