SSM 기반 애플리케이션에서 Kafka 메시지 큐 통합 가이드
Kafka를 활용한 고성능 SSM 아키텍처 설계
분산 마이크로서비스 환경에서 안정적인 비동기 처리를 구현하기 위해 메시지 큐는 필수 요소다. Spring + Spring MVC + MyBatis(SM)로 구성된 전통적인 웹 애플리케이션도 카프카와의 통합을 통해 초고속 트래픽 환경, 예를 들어 플래시 세일(초대박 할인)과 같은 시나리오에 대응할 수 있다. 본 문서에서는 SM 기반 프로젝트에 ...
6월 10일 21:30에 게시됨
Spring Boot와 MySQL을 이용한 간단한 데이터 조회 구현
프로젝트 아키텍처 구성
1. 컨트롤러 계층 (Controller)
package com.example.controller;
import com.example.model.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind. ...
6월 9일 19:05에 게시됨
Spring Boot 3.x 환경에서 MyBatis 코드 자동 생성 도구 활용하기
mybatis-generator-maven-plugin 소개
MyBatis Generator는 데이터베이스 스키마를 분석하여 엔티티 클래스, 매퍼 인터페이스, XML 매핑 파일 등을 자동으로 만들어주는 Maven 플러그인입니다. 공식 문서에서 상세한 정보를 확인할 수 있습니다. 이 도구를 활용하면 반복적인 CRUD 코드 작성에서 벗어나 비즈니스 로직 개발에 집중할 수 있습니다.
주요 장점은 다음과 같습 ...
6월 8일 02:03에 게시됨
MyBatis 분할 및 결과 병합 문제 해결
SQL 분할 쿼리 변환 지원 문제
문제는 페이지네이션 변경 과정에서 발생했습니다. 원래의 메서드에서 전체 결과를 가져온 후 수동으로 페이지네이션을 적용하던 로직을 startPage를 사용하여 데이터베이스에서 직접 페이지네이션된 결과를 가져오는 방식으로 수정했습니다. 아래는 간략한 코드 예시입니다:
public void foo(Entity entity){
startPage();
var list ...
6월 7일 21:34에 게시됨
마이바티스 프레임워크
마이바티스 개요
1.1简介
마이바티스(MyBatis)는 오픈소스 영속성(Persistence) 프레임워크로, JDBC 개발을 간소화하기 위해 설계되었습니다. 원래 Apache의 iBatis 프로젝트로 시작하여 2010년에 Google Code로 이전되면서 마이바티스로 이름을 변경했으며, 2013년 11월부터 GitHub에서 관리되고 있습니다.
마이바티스의 특징은 다음과 같습니다:
마이바티스는 일반 SQ ...
6월 5일 21:34에 게시됨
아치 음식거리 웹사이트의 SSM 기반 설계 및 구현
시스템 아키텍처 설계
본 시스템은 전통적인 음식 거리의 정보를 중심으로 운영되는 웹 플랫폼으로, 모듈 기반의 계층적 아키텍처를 채택하였다. 주요 구성 요소는 다음과 같다.
음식점 관리 모듈: 식당 등록, 정보 수정, 위치 및 메뉴 관리
사용자 인증/권한 모듈: RBAC 기반의 역할 기반 접근 제어 시스템
리뷰 및 평점 시스템: 사용자 리뷰 수집 및 평균 점수 산출 ...
6월 4일 22:41에 게시됨
MyBatis에서 일대일 및 일대다 관계 처리를 위한 `<association>` 설정 사용법
<association>는 MyBatis에서 일대일 또는 일대다 관계를 처리하는 매핑 요소로, 쿼리 결과의 중첩 데이터를 Java 객체의 속성에 매핑하는 데 사용됩니다. 복잡한 데이터베이스 쿼리 결과를 중첩 객체로 매핑해야 할 때 특히 유용합니다.
1. 기능과 용도
일대일 관계: 객체가 하나의 연결 객체를 포함할 때(예: Employee는 하나의 Department에만 속함) <associa ...
6월 4일 18:13에 게시됨
Oracle IN 절 1000개 초과 문제 해결 방법
개요:
문제 상황:
예제 쿼리:
select * from member where id in (1, 2, 3, ...)
**오류 메시지:**Cause: java.sql.SQLException: ORA-01795: 목록의 최대 표현식 수는 1000입니다
**설명:**Oracle 데이터베이스에서 IN (...) 절을 사용할 때 괄호 안의 값이 1000개를 초과하면 오류가 발생합니다.
해결 방안:
이 문제를 해결하기 위한 세 가지 방법을 소개합니다 ...
6월 3일 22:59에 게시됨
Spring Boot와 MyBatis로 기본 CRUD API 구현하기
이번 글에서는 Spring Boot와 MyBatis를 이용해 기본적인 데이터 CRUD 기능을 제공하는 REST API를 구현하는 방법을 정리한다. MySQL 데이터베이스에 user 테이블을 생성하고, MyBatis의 XML 매퍼와 어노테이션을 혼용하여 간단한 사용자 관리 API를 만든다.
1. 데이터베이스 테이블 준비
다음과 같은 user 테이블을 MySQL에 생성한다.
CREATE TABLE user (
id INT AU ...
5월 30일 21:16에 게시됨
MyBatis 활용 가이드
1. MyBatis 개요 및 기본 구성 요소
MyBatis는 JDBC를 간소화하고 SQL 쿼리와 자바 객체 간의 매핑을 용이하게 해주는 프레임워크입니다. 다음은 MyBatis를 사용하는 간단한 예제입니다.
1.1 JDBC 대신 MyBatis 사용하기
다음은 JDBC를 직접 사용하는 코드의 예시입니다:
Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatemen ...
5월 23일 14:27에 게시됨