본문 바로가기

IT 공부/자바와 웹 애플리케이션37

[JPA] - Querydsl 스프링부트3.x 설정 방법 그레이들에 위와 같이 의존성을 추가해준다. 버전은 하드코딩해도 되지만 아래처럼 사용한다. def queryDslVersion = '5.0.0' Querydsl은 어노테이션 프로세서가 엔티티(Entity) 코드를 토대로 Q도메인 클래스를 생성해주는 방식이다. 따라서 컴파일을 해야만 Q도메인 객체를 얻어 사용할 수 있다. compileJava 태스크를 수행하면 소스코드가 [build] - [classes] 디렉토리에 생성된다. 이렇게 생성시키고 나야만 비로소 Q도메인 객체를 사용할 수 있게 된다. 자신의 src 디렉토리 내에 Q도메인 객체 코드를 가져올 수도 있는데, 난 그렇게 해야 하는 이유를 잘 모르겠다. 그래서 어노테이션 프로세서에 등록하여 Q도메인 객체를 import 할 수 있는 정도로 만족하며, 이.. 2024. 1. 20.
[Log4j2] - MyBatis 데이터베이스 관련 팁 (feat. slf4j Binding) [Log4j2] - Log4j2 개념과 작동 원리 및 사용법 총 정리 1. 로깅 시스템과 Log4j2 라이브러리 로그(log)란 소프트웨어 개발 과정, 혹은 프로그램 작동 시 발생하는 이벤트에 대한 기록을 말한다. 블랙박스로 주행 중, 주차 중에서 발생하는 이벤트를 기록 linocraft.tistory.com 이전 포스팅에서 Log4j2 라이브러리는 xml 파일을 이용해 레벨(Level)을 조정하는 방식으로 로그 수준을 조절할 수 있다고 포스팅했다. 그리고 자바의 여러 단독 라이브러리들 중 꽤 많은 라이브러리들이 Log4j2를 내부적으로 사용하고 있고, 이것이 slf4j Binding 기술을 이용해 개발자가 설정한 로깅을 자동으로 따른다. 마이바티스(MyBatis) 또한 내가 설정한 Log4j2를 그대로.. 2024. 1. 20.
[마이바티스] - 동적 쿼리 아주 간단한 예시 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.