Spring Boot 기반 MQTT를 활용한 IoT 애플리케이션 구축
MQTT란?
MQTT(Message Queuing Telemetry Transport)는 경량의 발행/구독 기반 메시지 프로토콜로, 주로 IoT 장치 간의 통신에 사용됩니다. 저대역폭, 고지연 네트워크 환경에서도 안정적인 데이터 전송을 보장하며, TCP/IP 기반으로 동작합니다.
의존성 설정
Spring Boot 프로젝트에서 MQTT를 사용하기 위해선 Spring Integration과 Paho 클라이언트 라이브러리를 포함해 ...
7월 4일 01:08에 게시됨
Spring Boot 로그 설정 - Logback 활용 가이드
Spring Boot 로그 설정 - Logback 활용 가이드
Logback 사용의 이점
Logback은 Spring Boot의 기본 통합 로깅 프레임워크로, SLF4J를 기반으로 합니다.
Logback의 커널은 재설계되어 주요 경로에서 약 10배의 성능 향상과 메모리 사용량 감소를 달성했습니다.
Logback은 상세하고 지속적으로 업데이트되는 문서를 제공합니다.
Logback은 I/O 오류에서 자동으로 복구할 ...
7월 3일 18:42에 게시됨
Spring Boot 애플리케이션을 위한 쉘 스크립트 자동화
스크립트로 실행할 수 있는 작업은 수동으로 nohup java -jar 명령을 사용하지 않습니다.
1. 매개변수 설명
다음은 네 가지 매개변수를 지원하는 최종 코드 구현입니다:
작업(operation): new-새 패키지 시작 / replace-기존 패키지 교체
환경(env_para): 설정 파일 지정, 예: test / prod / dev 등
새_jar_파일명(new_jar_file_name): 새 JAR 파일의 이름, 이 스크립트 ...
7월 3일 00:54에 게시됨
jqGrid 기반 데이터 조회 구현 방법
이 문서는 기존의 jqGrid 테이블 구성 및 페이지네이션 설정을 바탕으로, 사용자 입력에 따라 동적 조건 검색을 수행하는 방법을 설명합니다. 앞선 글에서 정의한 엔티티 클래스와 테이블 구조는 동일하게 활용되며, 주요 변경점은 쿼리 기능 확장입니다.
HTML 구성
검색 버튼을 통해 조건 기반 조회를 실행할 수 있도록 다음과 같이 버튼을 추가합니다.
...
6월 30일 03:40에 게시됨
Spring Boot와 JWT를 활용한 보안 인증 구현
참고: Auth0 Java JWT
JWT를 사용하여 사용자 정의 매개변수와 타임스탬프로 토큰을 생성하고, 이를 통해 사용자 정보를 검증합니다. Auth0의 JWT 라이브러리는 자동으로 시간 만료 여부를 확인하며, 만료된 경우 TokenExpiredException 예외를 발생시킵니다.
1. 의존성 추가
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java- ...
6월 29일 22:10에 게시됨
대규모 데이터 엑셀 다운로드 시 서버 부하 방지를 위한 큐 기반 처리 최적화
최근 서비스 내 수십만 건 이상의 데이터를 일괄 다운로드하는 기능에 대한 요구가 증가하고 있으며, 특히 여러 사용자가 동시에 엑셀 추출을 요청할 경우 서버 리소스 과부하로 인한 장애 위험이 존재합니다. 이는 DB 조회 I/O와 파일 스트림 생성이라는 두 가지 무거운 작업이 병행되기 때문입니다. 이를 해결하기 위해 동시 처리량을 제어하고, 요청을 순차적으로 ...
6월 28일 23:10에 게시됨
Spring Boot에서 Log4j2 설정 방법
Log4j2는 Spring Boot 기본 로깅 프레임워크인 Logback을 대체하여 사용할 수 있는 고성능 로깅 라이브러리입니다. 기본적으로 Spring Boot는 spring-boot-starter-logging을 통해 Logback을 포함하고 있지만, 이를 제거하고 직접 Log4j2를 적용하면 더 유연한 로깅 구성이 가능합니다.
먼저 의존성을 조정하여 기존 로깅 프레임워크를 제거하고, 대신 Log4j2를 활성화해야 ...
6월 27일 06:16에 게시됨
Spring Boot와 Redis를 활용한 권한 시스템 구축: Ruoyi-React 기반 개발 가이드
Spring Boot와 Redis를 활용한 권한 시스템 구축: Ruoyi-React 기반 개발 가이드
최근 기존 프로젝트 리팩토링 작업을 진행하면서, 안전하고 유연하며 유지보수가 용이한 권한 관리 시스템 구축이 핵심 요구사항이었습니다. 오픈소스 스타터프레임워크는 많지만, 일부는 과도하게 무겁거나 기능이 부족하거나 문서가 부족한 문제가 있었습니다. 여러 솔루션을 비교한 결과, ...
6월 26일 17:51에 게시됨
【黑马点评-3초 특가 쿠폰】3. 비관적 락 synchronized로 한 사람 한 번 구매 보장 및 단일 서버 초과 주문 초기 로직
한 사람 한 번 구매 제약 조건 해결 방법
비관적 락 사용 이유
기존의 낙관적 락 방식은 데이터 변경 여부를 확인해야 하며, 현재는 존재 여부만 판단하는 상황이라 CAS 기법을 활용하기 어렵다. 버전 번호를 사용할 수도 있지만, 추가 필드가 필요하다. 따라서 간단한 구현을 위해 비관적 락을 적용한다.
비관적 락 적용 절차
MyBatis-Plus로 시작/종료 시간 검증
...
6월 26일 16:47에 게시됨
Spring Boot MQTT 연동 구현 가이드
개발 환경 및 사전 준비
해당 예제는 Spring Boot 2.7.18 버전을 기준으로 작성되었습니다. pom.xml에 아래 의존성을 추가해야 합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
</parent>
MQTT 의존성 설정 ...
6월 25일 16:48에 게시됨