Maven 플러그인을 활용한 SpringBoot 애플리케이션 Docker 이미지 구축

개요 본 문서에서는 Maven 플러그인을 활용하여 SpringBoot 애플리케이션을 Docker 이미지로 패키징하고, 사설 레지스트리에 업로드하는 과정을 상세히 설명합니다. Docker 명령어에 익숙하지 않은 개발자는 먼저 기본 Docker 명령어 관련 자료를 참고하시기 바랍니다. Docker Registry Docker Registry 2.0 설치 docker run -d -p 5000:5000 --restart=always --name my ...

7월 3일 03:39에 게시됨

Spring Boot에서 @Scheduled를 이용한 정기 작업 구현

Spring Boot의 @Scheduled 어노테이션을 사용하면 정기적으로 실행해야 하는 작업을 손쉽게 구현할 수 있습니다. import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; @Servic ...

7월 1일 18:23에 게시됨

supervisord를 활용한 다중 프로젝트 프로세스 통합 관리

여러 개의 서비스를 동시에 운영해야 하는 상황에서 개별 터미널로 일일이 실행하는 것은 비효율적입니다. 본 가이드에서는 Python 메인 서비스, 보조 모듈, Celery 스케줄러, 그리고 Spring Boot 애플리케이션을 supervisord 하나로 묶어 관리하는 방법을 살펴봅니다. 설치 및 환경 구성 가상 환경 내부에 supervisord를 설치하면 매번 환경을 활성화해야 하는 번거로움 ...

6월 30일 18:44에 게시됨

스프링 클라우드 게이트웨이 내장 필터의 다양한 활용 패턴

1. FallbackHeaders 를 활용한 에러 컨텍스트 전달 Circuit Breaker 기능으로 인해 특정 서비스 요청이 실패하여 폴백 (Fallback) 로직이 수행될 때, 해당 오류에 대한 상세 정보를 다음 처리 단계로 전달할 필요가 있는 경우가 많습니다. FallbackHeaders 필터는 이러한 시나리오에 적합합니다. 이 필터를 적용하면 서킷 브레이커가 활성화되어 외부 URI 로 포워딩되는 ...

6월 29일 20:53에 게시됨

Spring Boot 기반 EMQ X 4.0 연동 및 중규모 IoT 아키텍처 설계 방안

1. 기술적 배경 및 도입 효과 1.1 EMQ X 4.0 의 핵심 기능 EMQ X 4.0 은 Erlang/OTP 생태계 위에서 작동하는 MQTT 브로커로, 수천만 대의 동시 연결 처리와 초당 수백만 건의 메시지 전송 능력을 갖췄습니다. 이전 세대 대비 분산형 데이터베이스인 Mnesia 를 기반으로 하여 ACID 특성을 보장하며, 클러스터 간 노드들이 풀 메쉬(Pull-Mesh) 토폴로지로 통신하여 장애 허 ...

6월 27일 22:35에 게시됨

MyBatis-Plus 핵심 기능 및 실무 활용 가이드

1. 주요 어노테이션 MyBatis-Plus(이하 MP)는 개발 생산성 향상을 위해 다양한 매핑 어노테이션을 지원합니다. @TableName: 자바 객체와 실제 데이터베이스 테이블 간의 이름을 매핑합니다. @TableId: 테이블의 기본 키(PK)를 지정하며, 자동 증가 등 생성 전략을 설정할 수 있습니다. @TableField: 객체의 필드와 DB 컬럼명이 다를 경우 ...

6월 25일 22:46에 게시됨

Spring Security 설정 가이드

@EnableWebSecurity 어노테이션 @EnableWebSecurity 어노테이션은 WebSecurity 모드를 활성화하는 역할을 담당합니다. 이는 Spring Security에서 웹 보안을 설정하기 위해 반드시 필요한 어노테이션입니다. Spring Boot를 사용하지 않는 일반 Spring Web MVC 프로젝트에서는 해당 어노테이션을 명시적으로 추가해야 합니다. 반면, Spring Boot 기반의 Spring Web MVC 애플 ...

6월 24일 00:55에 게시됨

고유량 상황에서의 Nginx 성능 최적화 및 병목 현상 해결 방안

Nginx 의 잠재력을 극대화하는 운영 전략 Nginx 는 업계 표준처럼 자리 잡은 고성능 웹 서버입니다. 그러나 프로덕션 환경에서 트래픽이 증가하자마자 시스템이 마비되거나 SSH 접속 자체가 불가능해지는 경험을 한 개발자라면 드물지 않습니다. 이는 종종 서버 교체나 Envoy 와 같은 대안 도입을 고려하게 만들지만, 대부분의 경우 문제는 소프트웨어 자체보다 설정값의 ...

6월 22일 03:10에 게시됨

GRPC 연결 문제 해결: io.grpc.netty.shaded.io.netty.handler.ssl.NotSslRecordException: SSL/TLS 레코드가 아님

문제 상황 최근 회사의 마이크로서비스 프레임워크를 사용하여 백엔드를 개발하면서 파이썬으로 작성된 서비스 인터페이스를 호출해야 했습니다. 여기서는 다른 언어 간의 인터페이스 호출을 위해 GRPC를 사용했습니다. 파이썬 서비스가 실행 중임을 알고 있었지만, 테스트 과정에서 백엔드에서 오류가 발생했습니다. 오류 메시지는 다음과 같습니다: Caused by: io.grpc.S ...

6월 20일 23:37에 게시됨

Spring AI 시작하기

기술 스택 분석 핵심 기술 Java 17: 최신 LTS 버전으로 성능 및 보안 향상 Spring Boot 3.4.2: 현대적 애플리케이션 개발 지원 Spring AI 1.0.0-M5: 통합 AI 서비스 추상화 프레임워크 의존성 설정 <repositories> <repository> <id>spring-milestones</id> <url>https://repo.spring.io/milestone</url> ...

6월 20일 18:22에 게시됨