MyBatis의 다양한 설정 방식 분석
전통적인 XML 기반 설정
MyBatis 초기 설계에서 가장 기본적인 방식은 SQL을 별도의 XML 파일에 정의하고, 이를 구성 파일을 통해 로드하는 구조입니다. 이 방식은 명시적이고 직관적이지만, 설정 파일이 많아지면 관리가 어려워집니다.
public class XmlMain {
public static void main(String[] args) {
try (InputStream configStream = Resources.getRes ...
9월 29일 17:03에 게시됨
Spring Boot와 React를 활용한 기본 전자상거래 시스템 구축
시스템 아키텍처 및 기술 스택
이 전자상거래 시스템은 Spring Boot 백엔드와 React 프론트엔드로 구성된 모놀리식 아키텍처를 채택하였습니다. 데이터베이스는 MySQL을 사용하며, MyBatis-Plus를 ORM으로 활용합니다.
주요 기능 모듈 설계
사용자 관리 모듈
회원 가입, 로그인, 개인 정보 관리 기능을 제공합니다. Spring Security를 통한 인증 및 권한 관리가 구현됩니 ...
9월 27일 09:16에 게시됨
Spring Boot 힙 덤프 분석을 통한 민감 정보 유출 탐지 도구 활용
최근 보안 사고 중 하나로, Spring Boot 기반 애플리케이션의 /actuator/heapdump 엔드포인트를 통해 힙 메모리 덤프 파일이 무단 노출되는 문제가 자주 발생하고 있다. 이 덤프 파일에는 애플리케이션 실행 중 로드된 모든 객체가 포함되어 있어 데이터베이스 비밀번호, API 키, 시크릿 키 등 민감 정보가 추출될 수 있다.
이러한 위험성을 점검하거나 정당한 권한 ...
9월 25일 20:55에 게시됨
Spring Boot 기반 도서 전자상거래 시스템 구현
개요
이 문서는 Spring Boot 프레임워크를 활용하여 구축된 도서 전자상거래 웹사이트의 설계 및 구현 과정을 다룹니다. 현대 사회에서 온라인 쇼핑몰은 필수적인 서비스로 자리 잡았으며, 본 시스템은 사용자에게 편리한 도서 구매 경험을 제공하고 관리자에게는 효율적인 시스템 운영 기능을 제공하는 것을 목표로 합니다.
백엔드 개발에는 Java 언어와 Sprin ...
9월 16일 09:39에 게시됨
스프링부트와 Vue.js 기반 커뮤니티 쓰레기 분류 관리 시스템 구축
개요커뮤니티 단위의 쓰레기 분류 관리 플랫폼은 주거 지역 내 재활용 및 폐기물 처리 효율성을 극대화하는 것을 목표로 한다. 본 시스템은 백엔드에 스프링부트, 프론트엔드에 Vue.js를 적용하여 RESTful 아키텍처 기반의 웹 애플리케이션을 구현한다.
백엔드 아키텍처스프링부트 핵심 구성스프링부트는 자동 설정(Auto-configuration) 메커니즘을 통해 개발 환경 구성의 ...
9월 13일 04:06에 게시됨
Spring Boot에서 Swagger를 사용한 자동 API 문서 생성
Swagger는 RESTful API의 설계, 빌드, 문서화를 위한 오픈소스 프레임워크로, Spring Boot와 결합하면 개발 중인 API에 대한 실시간 문서를 자동으로 생성할 수 있다. 이를 통해 클라이언트 개발자나 테스트 엔지니어가 API 명세를 쉽게 확인할 수 있다.
Maven 의존성 추가
Spring Boot 2.6 이상에서는 springfox-boot-starter 대신 OpenAPI 3 기반의 springdoc-openapi-s ...
9월 10일 03:51에 게시됨
Jackson과 Fastjson JSON 응답 필드 매핑 및 널값 처리
REST API 개발 중 Jackson과 Fastjson을 혼용할 때 발생하는 필드명 변환 실패 및 null 필드 누락 문제를 해결한 경험을 정리합니다.
핵심 문제 상황
외부 시스템 연동 시 대문자 스네이크 케이스(EMPLOYEE_ID)로 응답해야 하는데, 기본 설정에서는 카멜 케이스(employeeId)로 변환되어 전송되었습니다. 또한 값이 null인 필드가 JSON 응답에서 완전히 제외되는 문제도 함 ...
9월 8일 02:04에 게시됨
Magnum 오픈소스 프로젝트 가이드
Magnum 프로젝트 구조 및 설정 방법
1. 프로젝트 디렉터리 구조 분석
Magnum 프로젝트의 파일 구조는 다음과 같습니다:
magnum/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── augustnagro/
│ │ │ │ │ ├── magnum/
│ │ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── model/
│ │ │ │ │ │ ...
9월 2일 22:08에 게시됨
Spring Boot에서 동적 오류 메시지를 효과적으로 처리하는 방법
웹 애플리케이션 개발 시 백엔드는 단순히 비즈니스 로직을 수행하는 것을 넘어, 전면 프론트엔드로 명확하고 구조화된 오류 정보를 전달해야 한다. 특히 사용자 인증과 같은 복잡한 시나리오에서는 정적 메시지로는 부족하며, 남은 시도 횟수나 잠금 시간과 같이 실시간으로 계산되는 동적 정보가 필요하다. 이러한 요구사항을 충족하면서도 코드의 유지보수성과 일관성을 ...
9월 2일 03:34에 게시됨
Spring Boot 3.2와 Vue 3로 구축한 고병렬성 블로그: Kubernetes 로그 모니터링 시스템을 통한 Prometheus에서 ELK까지의 전반적인 분석
*실제 수백만 PV 블로그 아키텍처 진화 경험 기반, 클라우드 네이티브 환경에서의 고병렬 설계 및 전면 관측 시스템 구현에 대한 상세 설명
1 고병렬 블로그 아키텍처 핵심 설계
(1) 기술 스택 선택 근거
그림1: 기술 스택 능력 토폴로지
각 기술 구성 요소들이 고병렬 시나리오에서 핵심 문제를 해결하는 방식을 보여줍니다: Spring Boot 3.2의 가상 스레드는 차단 I/O ...
8월 31일 13:07에 게시됨