MyBatis를 활용한 데이터베이스 CRUD 구현
MyBatis 개요MyBatis는 JDBC의 복잡한 과정을 추상화하여 데이터베이스 연동을 단순화하는 ORM 프레임워크입니다. @Mapper 어노테이션이 붙은 인터페이스는 SQL 매퍼로 인식되며, 애플리케이션과 데이터베이스 간의 원활한 통신을 담당합니다.프로젝트 환경 설정의존성 추가빌드 도구에 다음 의존성을 포함합니다:mybatis-spring-boot-startermysql-connector-java데이터소 ...
6월 24일 20:14에 게시됨
고등교육 기관 물품 기부 관리 시스템
1장 서론
1.1 연구 동기
현대의 네트워크 기술과 소프트웨어 개발 기술은 이미 성숙한 이론적 기반을 갖추었으며, 다양한 분야에서 활용 가능한 응용 프로그램이 지속적으로 등장하고 있다. 특히 컴퓨터와 노트북의 보급률이 높아지고 하드웨어의 성능이 향상되면서, 더 많은 소프트웨어를 실행할 수 있는 환경이 조성되었다. 이러한 변화에 따라 정보 처리 효율성을 극대 ...
6월 24일 19:39에 게시됨
Spring Boot 배너 커스터마이징 가이드
Spring Boot 애플리케이션을 실행하면 콘솔에 기본 ASCII 아트 배너가 출력됩니다. 이 배너는 단순한 장식 이상으로 애플리케이션의 브랜드 아이덴티티를 표현하는 역할을 합니다. Spring Boot는 개발자가 이 배너를 자유롭게 변경할 수 있는 기능을 제공합니다.
동작 원리
Spring Boot는 시작 과정에서 src/main/resources 디렉토리에서 banner.txt 파일을 자동으로 ...
6월 24일 03:21에 게시됨
Spring Boot에서 Druid 데이터소스 설정 시 'spring.datasource' 바인딩 실패 문제 해결
문제 상황
Spring Boot 프로젝트에서 Druid를 사용하여 데이터소스를 구성할 때, application.yml 파일에 정의된 설정이 javax.sql.DataSource에 바인딩되지 않으며, 다음과 같은 오류가 발생한다:
Failed to bind properties under 'spring.datasource' to javax.sql.DataSource
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Priority
이는 spring.data ...
6월 23일 23:50에 게시됨
VLAN별 MAC 주소 테이블 분석을 통한 네트워크 문제 진단 및 Spring Boot 기반 Docker 이미지 생성과 실행
VLAN 기반 MAC 주소 테이블 확인 방법
display mac-address vlan [vlan-id] 명령어는 스위치와 같은 네트워크 장비에서 특정 VLAN에 속한 디바이스들의 MAC 주소 정보를 조회할 때 사용됩니다. 이 테이블은 장비가 어떤 포트를 통해 어떤 MAC 주소를 학습했는지를 기록하며, 네트워크 연결 상태를 점검하거나 설정 오류를 추적하는 데 중요한 역할을 합니다.
주요 활용 사 ...
6월 23일 20:47에 게시됨
Spring Boot에서 Dynamic Datasource와 ShardingSphere JDBC를 통한 기존 데이터소스 주도적 사용 및 분할 테이블 구현
종속성 설정
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core ...
6월 23일 18:37에 게시됨
Spring Boot 자동 구성 및 빈 주입 메커니즘 심층 분석
Spring Boot의 자동 구성 작동 원리
Spring Boot 애플리케이션이 시작되면 @EnableAutoConfiguration 어노테이션이 핵심적인 역할을 수행한다. 이 어노테이션은 내부적으로 @Import(AutoConfigurationImportSelector.class)를 포함하고 있으며, 이를 통해 수많은 자동 구성 클래스들을 조건에 따라 선택적으로 로드하게 된다.
AutoConfigurationImportSelector는 ImportSe ...
6월 23일 17:59에 게시됨
LangChain4j를 활용한 Java AI 에이전트 구축 및 도구 연동 방법
AI 에이전트의 핵심 개념
AI 에이전트는 단순한 텍스트 생성을 넘어 스스로 판단하고 작업을 수행하는 자율형 시스템입니다. 자바 생태계에서 이러한 에이전트를 구축하기 위해 LangChain4j 프레임워크를 활용하면 LLM(거대언어모델)과의 상호작용, 도구 호출, 메모리 관리 등을 선언적이고 깔끔한 코드로 구현할 수 있습니다. 주요 핵심 기능은 다음과 같습니다.
의 ...
6월 23일 16:46에 게시됨
SpringBoot와 Redis를 활용한 중복 요청 방지 전략
대용량 트래픽 환경에서 동일한 요청이 여러 번 처리되는 문제는 시스템 안정성을 해치는 주요 원인 중 하나입니다. 이 글에서는 Redis를 활용해 효과적으로 중복 제출을 차단하는 방법을 살펴봅니다.
중복 요청이 발생하는 상황
사용자 경험 측면에서 중복 요청은 다음과 같은 경우에 발생합니다:
버튼을 빠르게 여러 번 클릭
네트워크 지연으로 인한 클라이언트 재시도 ...
6월 23일 16:41에 게시됨
프론트엔드 최적화를 위한 효율적인 리스트 조회 API 설계
최근 프론트엔드에서 다중 섹션을 가진 화면을 구현하던 중, 백엔드에서 단순히 전체 데이터를 한 번에 반환하는 방식으로 인해 성능 이슈와 유연성 부족 문제가 발생했다. 요구사항은 다음과 같다:
세로 방향으로 여러 섹션이 존재
각 섹션은 가로 스크롤이 가능하며, 아이템 목록과 "더 보기" 기능을 포함
처음에는 편의상 모든 데이터를 메모리에서 조합해 ...
6월 21일 22:36에 게시됨