728x90
728x90

SpringBoot 를 배워보자 68

두 테이블에 공통된 대조 필드가 있을 때, 사용자가 원하는 필드들만 출력되도록 동적 쿼리를 작성

MyBatis에서 동적으로 조인하는 예제를 작성하려면, 조건에 따라 두 테이블 a와 b를 조인하는 방식입니다. 각 테이블에서 어떤 출력 필드를 포함할지 동적으로 결정하도록 설정할 수 있습니다.여기서는 두 테이블에 공통된 대조 필드가 있을 때, 사용자가 원하는 필드들만 출력되도록 동적 쿼리를 작성합니다. 예를 들어, 테이블 a와 b에는 id라는 공통 대조 필드가 있고, 출력 필드는 각 테이블에서 특정 컬럼만 선택할 수 있습니다.1. SQL Mapper 파일 (XML) SELECT a.${field} b.${field} FROM a JOIN b ON..

쿼리의 페이징을 옵션에 따라 포함시키거나 제외하는 동적 SQL

오라클에서 쿼리의 페이징을 옵션에 따라 포함시키거나 제외하는 동적 SQL을 작성하는 예를 살펴보겠습니다. MyBatis에서는 태그를 사용하여 쿼리 내에서 페이징 여부를 조건에 따라 다르게 처리할 수 있습니다.예제: 페이징을 조건에 따라 포함하거나 제외하는 동적 쿼리이 예제에서는 pageNum과 pageSize라는 페이징 조건이 주어졌을 때, 페이징을 적용한 SQL과 페이징을 적용하지 않은 SQL을 동적으로 생성하는 방법을 설명합니다. 1. SQL Mapper 파일 (XML) SELECT * FROM users WHERE 1=1 AND name = #{name} AND age = #{age} -- 오라클..

오라클 환경에서 MyBatis를 사용하여 SQL을 기능적으로 쪼개어 동적으로 조합하는 예

MyBatis에서 SQL 문을 기능적으로 쪼개어 필요에 따라 조합하는 방법은 주로 동적 SQL을 활용하여 구현할 수 있습니다. MyBatis는 , , , , 등의 태그를 제공하여 조건에 맞는 SQL을 동적으로 생성할 수 있게 합니다. 이를 통해 SQL을 조합하거나 조건에 따라 쪼갠 후, 필요에 맞게 결합할 수 있습니다.아래는 오라클 환경에서 MyBatis를 사용하여 SQL을 기능적으로 쪼개어 동적으로 조합하는 예입니다.예제: 동적 검색 조건을 활용한 SQL 쪼개기1. SQL Mapper 파일 (XML) SELECT * FROM users WHERE 1=1 AND name = #{name} AND age = #{age} ..

Spring Boot 프로젝트에 Swagger UI 적용하여 API 문서 자동 생성하기: 상세 가이드

Spring Boot 프로젝트에서 RESTful API를 개발할 때, API 문서를 작성하는 것은 필수적인 작업입니다. 잘 정돈된 API 문서는 개발팀 간의 협업을 원활하게 하고, API를 사용하는 다른 개발자들에게 명확한 정보를 제공하여 개발 생산성을 향상시킵니다. Swagger UI는 이러한 API 문서를 자동으로 생성하고 시각적으로 제공하는 강력한 도구입니다. 이 글에서는 Spring Boot 프로젝트에 Swagger UI를 적용하는 방법과, 각 코드의 의미를 상세히 설명하며 실제 예제를 통해 이해를 돕겠습니다. 아래는 위 Swagger 주석과 API 구현을 Spring Boot로 변환한 예제입니다. Spring Boot에서는 주로 Springdoc OpenAPI를 사용하여 Swagger 문서를 생..

MyBatis를 활용한 유연하고 효율적인 동적 SQL(Json&Pageing) 전략

수백 개의 동적 SQL 조각을 효율적으로 관리하려면, 디렉토리 구조를 기능별로 구성하고, 공통 부분은 상위 디렉토리에 두는 방식이 적합합니다. 이를 MyBatis의 XML Mapper와 디렉토리 구조를 활용하여 설계하는 방안을 아래와 같이 제안드립니다. 2024.11.30 - [오라클 데이터베이스 강좌] - Oracle에서 JSON 형태로 데이터 생성하기 Oracle에서 JSON 형태로 데이터 생성하기Oracle은 JSON 처리를 위한 다양한 내장 함수와 기능을 제공합니다. 비슷한 결과를 얻으려면 JSON_OBJECT, JSON_ARRAYAGG, 그리고 ROWNUM, OVER() 같은 SQL 기능을 활용할 수 있습니다. Oracle에서는 아래와 같은notion4570.tistory.com 0. 디렉토리 ..

AspectJ Pointcut Expression Language

AspectJ Pointcut Expression Language는 AspectJ에서 사용되는 강력한 도구로, 특정 시점이나 조건을 기준으로 프로그램의 실행 흐름에 끼어들기 위한 규칙을 정의하는 데 사용됩니다. 이 표현식 언어는 AOP(Aspect-Oriented Programming)의 핵심 요소 중 하나로, 개발자가 코드의 특정 부분(예: 메서드 호출, 객체 초기화 등)을 선택적으로 가로채고 로직을 삽입할 수 있도록 합니다.주요 개념Join Point (조인 포인트)프로그램 실행 중의 특정 지점, 예를 들어 메서드 호출, 객체 생성, 예외 처리 등.AspectJ는 다양한 종류의 조인 포인트를 지원합니다.Pointcut (포인트컷)조인 포인트를 선택하는 규칙을 정의하는 표현식.포인트컷은 프로그램의 어떤..

스프링 부트 AOP(Aspect Oriented Programming) 심층 분석: 예제와 함께하는 상세 가이드

스프링 부트는 개발 생산성을 높여주는 강력한 프레임워크로, AOP(Aspect Oriented Programming)는 이러한 생산성을 더욱 향상시키는 중요한 기능 중 하나입니다. AOP는 객체 지향 프로그래밍(OOP)의 한계를 보완하여 공통 관심사(예: 로깅, 트랜잭션, 보안 등)를 핵심 관심사(비즈니스 로직)로부터 분리하여 모듈화하는 기법입니다.AOP의 핵심 개념관점(Aspect): 공통 관심사를 모듈화한 클래스입니다. 로깅, 트랜잭션, 보안 등의 기능을 담당합니다.조인 포인트(Join Point): 어드바이스가 적용될 수 있는 프로그램 실행 시점을 의미합니다. 메서드 호출, 예외 발생 등이 대표적인 조인 포인트입니다.포인트컷(Pointcut): 조인 포인트 중 어떤 조인 포인트에 어드바이스를 적용할..

Log4j2: 강력하고 유연한 자바 로깅 프레임워크 심층 분석

Log4j2는 높은 성능과 다양한 기능을 갖춘 자바 로깅 프레임워크로, 대규모 애플리케이션에서 발생하는 로그를 효과적으로 관리하고 분석하는 데 필수적인 도구입니다. Log4j2는 이전 버전인 Log4j 1.x의 단점을 보완하고 새로운 기능들을 추가하여 더욱 강력하고 유연해졌습니다.핵심 기능:높은 성능: Asynchronous Logger를 통해 동시성이 높은 환경에서도 뛰어난 성능을 보여줍니다.유연한 구성: XML, JSON, YAML 등 다양한 형식의 설정 파일을 지원하며, 프로그램 코드에서도 동적으로 설정을 변경할 수 있습니다.다양한 Appender: Console, File, Database, SMTP 등 다양한 Appender를 통해 로그를 다양한 형식으로 출력하고 저장할 수 있습니다.필터링: 로..

Log4j 설정을 재시작 없이 변경하며 SQL 쿼리 소스 생성 여부를 조절하는 방법: 심층 분석 및 실제 적용 가이드

Log4j는 자바 애플리케이션에서 로깅 기능을 구현하는 데 널리 사용되는 강력한 도구입니다. 하지만 기존 Log4j 설정 방식은 애플리케이션을 재시작해야 설정 변경 사항이 반영된다는 단점이 있었습니다. 이는 개발 및 운영 환경에서 유연성을 저해하고, 실시간으로 로그 설정을 조절해야 하는 경우에 어려움을 야기했습니다.본 글에서는 Log4j 설정을 재시작 없이 동적으로 변경하는 방법과 함께, SQL 쿼리 소스 생성 여부를 설정을 통해 조절하는 방법에 대해 자세히 알아보고, 실제 개발 환경에 적용할 수 있는 구체적인 가이드를 제공합니다.Log4j 동적 설정 변경의 필요성개발 환경: 디버깅 시 로그 레벨을 빠르게 변경하여 문제를 파악하고, 특정 로그만 출력하여 분석 효율을 높일 수 있습니다.운영 환경: 시스템 ..

application.properties 변경 후 재시작 없이 적용하는 방법: 개발 생산성 향상을 위한 핵심 가이드

스프링 부트 개발 시 application.properties 파일을 수정하고 매번 애플리케이션을 재시작하는 것은 시간 소모적이고 번거로운 작업입니다. 특히, 개발 단계에서는 설정 값을 자주 변경하며 테스트를 진행해야 하기 때문에, 재시작 없이 변경 사항을 바로 반영할 수 있는 방법이 절실히 필요합니다.이 글에서는 스프링 부트 애플리케이션에서 application.properties 파일을 수정한 후 재시작 없이 변경 사항을 적용하는 다양한 방법과 각 방법의 장단점, 그리고 실제 개발 환경에서 어떻게 활용할 수 있는지에 대해 자세히 알아보겠습니다. 1. Spring Boot DevTools: 개발 환경을 위한 강력한 도구Spring Boot DevTools는 개발 환경에서 생산성을 높이기 위해 제공되는 ..

728x90
728x90