본문 바로가기

IT 공부104

[마이바티스] - 동적 쿼리 아주 간단한 예시 mybatis – 마이바티스 3 | 동적 SQL 동적 SQL 마이바티스의 가장 강력한 기능 중 하나는 동적 SQL을 처리하는 방법이다. JDBC나 다른 유사한 프레임워크를 사용해본 경험이 있다면 동적으로 SQL 을 구성하는 것이 얼마나 힘든 작업인지 mybatis.org 마이바티스의 장점 중 하나는 동적 쿼리를 작성할 수 있다는 점인데, 동적 쿼리란 조건에 따라 쿼리 자체를 뜯어 고치는 것을 말한다. 단순히 #{} 구문으로 데이터를 집어 넣는 개념과는 다르다. 예를 들어, 위와 같은 쿼리를 작성할 수 있을 것이다. 이 코드는 태그를 이용해 조건절을 동적으로 생성하고 있다. 예를 들어, finished의 값이 true라면 finished=1 조건을 넣고 싶고, false라면 조건을 넣고 싶지 않고 싶을 때.. 2024. 1. 20.
[Model Mapper] - Model Mapper 라이브러리 및 DTO, VO가 분리되는 이유 1. 웹 MVC 패턴 MVC 패턴은 웹에서 사용되는 기초적인 디자인 패턴으로, 사용자의 요청에 대해 컨트롤러가 주도적으로 요청을 받고, 그것을 해석해 모델에서 적절한 처리를 요청한뒤, 그 결과를 뷰에 전송하는 패턴을 말한다. 객체지향이 으레 그렇듯이, 이러한 분업의 원리는 각자 자신이 해야할 것을 독립적으로 분리하고 각자의 역할에 전담하기 위해서다. 뷰(view)는 데이터를 받아 적절한 데이터 구조 및 그래픽 모양에 알맞게 배치하는 역할을 담당하고, 컨트롤러(controller)는 사용자의 요청을 해석해 모델과 뷰를 이어주는 역할이다. 모델(model)은 다소 추상적인데, 컨트롤러와 뷰를 제외한 나머지가 모델로 불리는데다 내부적으로 다시 여러 계층의 합으로 구성되기 때문이다. 크게 보면 모델(Model).. 2024. 1. 16.
[자바] - 커넥션 풀(HikariCP)과 DataSource 스펙 1. JDBC 프로그래밍의 문제점 JDBC는 JavaSE의 표준 스펙 중 하나로, 데이터베이스 서버와 연결해 SQL 쿼리를 실행할 수 있게 만든 자바 표준 API다. API에 불과하므로 구체적인 데이터베이스와 연결해 사용하기 위해서는 데이터베이스 회사(MySQL, Oracle, MariaDB, ....)에서 만든 JDBC 드라이버가 필요하다. 이 드라이버 라이브러리는 maven repository에서 아주 쉽게 다운받을 수 있다. // 커넥션에 필요한 정보 String url = "jdbc:mariadb://localhost:3306/db"; String user = "user"; String password = "1234"; // JDBC 사용 코드 Class.forName("org.mariadb.jd.. 2024. 1. 11.
[JPA] - 자바 진영의 데이터베이스 처리 기술 발전 1. JPA와 Mybatis의 차이 1) JDBC의 문제는 무엇인가 우선 자바 애플리케이션이 내부적으로 데이터베이스와 상호 작용이 필요할 때, 사용할 수 있는 기술은 크게 보면 JDBC, MyBatis, JPA(with QueryDSL) 등이 있다는 점을 기억하자. 그리고 MyBatis와 JPA는 모두 JDBC의 단점을 해소하기 위해 사용되는 기술이라는 점도! 결국 JPA와 MyBatis를 이해하기 위해서는 JDBC의 단점이 무엇인지 아는 것으로 시작해야 한다. 자바 애플리케이션은, 특히 백엔드라면, 애플리케이션 로직에 따라 DB를 활용해야 하는 순간이 반드시 오기 마련이다. 그때 데이터베이스 상호작용의 상세 사항을 숨기고(정보 은닉), 적절한 캡슐화를 통해 자바 애플리케이션 입장에서는 자바 인터페이스에.. 2024. 1. 9.