mybatis4 [JPA] - 자바 진영의 데이터베이스 처리 기술 발전 1. JPA와 Mybatis의 차이 1) JDBC의 문제는 무엇인가 우선 자바 애플리케이션이 내부적으로 데이터베이스와 상호 작용이 필요할 때, 사용할 수 있는 기술은 크게 보면 JDBC, MyBatis, JPA(with QueryDSL) 등이 있다는 점을 기억하자. 그리고 MyBatis와 JPA는 모두 JDBC의 단점을 해소하기 위해 사용되는 기술이라는 점도! 결국 JPA와 MyBatis를 이해하기 위해서는 JDBC의 단점이 무엇인지 아는 것으로 시작해야 한다. 자바 애플리케이션은, 특히 백엔드라면, 애플리케이션 로직에 따라 DB를 활용해야 하는 순간이 반드시 오기 마련이다. 그때 데이터베이스 상호작용의 상세 사항을 숨기고(정보 은닉), 적절한 캡슐화를 통해 자바 애플리케이션 입장에서는 자바 인터페이스에.. 2024. 1. 9. [자바] - JDBC 드라이버 표준 타입 매핑 1. java의 데이터 타입과 DB의 데이터 타입 변환 문제 개발을 하면서 데이터를 영구 처리하고 싶을 때는 데이터베이스를 활용한다. 이때 데이터베이스는 종류가 굉장히 많은데, 관계형 데이터베이스만 해도 MySQL, Oracle, Postgre 등이 있다. 데이터베이스를 클라이언트 프로그램으로 서버와 직접 통신해서 사용할 수도 있다. 그러나 자바 애플리케이션 개발을 할 때는 자바 애플리케이션이 데이터베이스 서버와 연결을 시도하고 쿼리를 날려야 한다. 이 사이를 매개하는 기술이 JDBC이며, JDBC는 JavaSE 표준이다. 물론 MyBatis, JPA 같은 기술이 많다. 하지만 그 모든 기술도 내부적으로는 JDBC를 사용한다. 그런데 각 데이터베이스는 각자의 데이터 타입을 구현해 사용한다. 대부분 큰 그.. 2024. 1. 8. [마이바티스] - 마이바티스 스프링 빌드 방법 마이바티스는 단독으로도 라이브러리를 사용할 수 있지만(링크를 클릭하면 방법이 나온다), 친절하게도 스프링 프로젝트에서는 마이바티스를 함께 사용하는 라이브러리를 제공해준다. 이를 이용하면 아주 쉽게 스프링 프로젝트에서 마이바티스를 이용할 수 있다. 실제로 스프링 프로젝트 시 마이바티스를 단독으로 사용하진 않는다고 들었다. 내가 따로 마이바티스 단독 설정을 정리하고 포스팅한 이유는 스프링에서 마이바티스 설정 시, 단독 과정과 비교하면 설정을 이해하기가 수월하기 때문이었다. 그 내용을 간략하게 요약하면, 1) SessionFactory에게 파일로 데이터베이스 드라이버와 Datasource, 그리고 매퍼 xml을 알려준다. 2) SqlSessionFactory가 xml 정보를 토대로 session을 생성하고, .. 2024. 1. 7. [MyBatis] - 마이바티스를 단독으로 빌드하고 사용하는 방법 1. MyBatis 단독 설정 방법 마이바티스란 SQL 문법을 xml 파일로 따로 분리하기 위해 사용되는 라이브러리다. 기본 목표는 Mapper라 불리는 자바 인터페이스에 SQL 문법을 매핑시키는 것이 목표다. 이렇게 하면 일일이 JDBC에서 코드로 SQL 문법을 사용할 필요가 없다. xml 파일만 수정하면 되는 것이다. 그래도 최고의 이점은 이렇게 SQL 문법을 코드로부터 분리시키면 자바 애플리케이션 개발자는 매퍼 인터페이스만으로도 개발을 할 수 있다는 점이다. 굳이 복잡한 구현 상세 사항에 대해 몰라도 된다. (만약 JDBC를 사용했다면 일일이 상세 사항을 구현해야 했을 것이다.) 아래의 코드의 구현체가 적당히 만들어진다고 가정하고 자유롭게 매퍼 인터페이스를 사용하기만 하면 된다. 사실 마이바티스는 .. 2024. 1. 6. 이전 1 다음