Springboot 로 Socket(STOMP) 개발하기
·
Programming/BackEnd
- 이번 포스팅으로는 Springboot 로 Socket 을 개발 할 때, STOMP 를 사용하도록 하겠습니다. - STOMP(Simple Text Oriented Messaging Protocol)STOMP 는 텍스트 기반의 메시징 프로토콜로, 텍스트 메시지 전송을 위해 설계된 간단한 프로토콜입니다.STOMP는 WebSocket 위에서 사용할 수 있으며, 다양한 메시징 시스템에 쉽게 적용할 수 있도록 만들어졌습니다. STOMP는 클라이언트와 메시지 브로커 사이에서 상호작용을 단순화하는 역할을 합니다. 브로커 기반 메시징 시스템에서 클라이언트가 메시지를 보내고 받고, 구독하고 브로커와 소통하는 방식의 규칙을 정의합니다. STOMP의 주요 특징은,1. 텍스트 기반 프로토콜:STOMP는 텍스트로 이루어진 프..
Springboot 로 Socket(SockJS) 개발하기
·
Programming/BackEnd
- 이번 포스팅에서는 Springboot 에서 Socket 을 사용한 개발 방식에 대해 알아볼 것입니다.Socket 은 아시다시피 실시간 양방향 통신 기술로, 연결이 끊기지 않고 상호간 데이터를 전송하고 수신할 수 있기에 채팅 등을 구현할 때 사용합니다. - 정식적으로 채팅 등의 서비스를 만들어보기 위해서는 클라이언트 개발의 수고나 접속자 연결 및 계정 관리, 채널 관리 등의 여러 요소들을 구현해야합니다.즉, 계정 시스템이나 채널 관련 데이터베이스 등의 구축이 필요한데, 저는 여기까지 구현하기보다는 Socket 자체에 대해 이해가 쉽도록 기능 중심의 구현을 하려고 합니다. 아래 실습에서는 단순하게 Springboot 에서의 Socket 기술 사용의 원형 및 클라이언트에서 메시지를 서버에 보내면 서버에서 ..
Springboot kotlin Excel 파일 읽기, 쓰기 기능 구현
·
Programming/BackEnd
- 이번 글에는 Springboot 로 Excel 파일을 읽고 쓰는 방식에 대해 알아볼 것입니다. - build.gradle사용라이브러리로, // (Excel File Read Write) // : 액셀 파일 입출력 라이브러리 implementation("org.apache.poi:poi:5.2.5") implementation("org.apache.poi:poi-ooxml:5.2.5") implementation("sax:sax:2.0.1")위와 같이 추가해주세요. - 다음으로 기능을 따로 나누어 보기 좋도록 모듈화를 할 것입니다.Excel 파일 관련 처리 기능들을 모아둔,ExcelFileUtil.kt 파일을 만들어서,import org.apache.poi.openxml4j...
Springboot Redis 설정 및 사용 (다중 데이터 소스, Redis Cluster 적용)
·
Programming/BackEnd
- 이번 포스팅에서는 Springboot 에서 Redis 와 연동하는 설정과 사용 방식에 대한 설명글을 작성하겠습니다. - 2025-05-09 수정사항아래 설명글에서 소개한 Redis 설정 방식에서 개선된 부분이 다수 존재합니다.java-springkotlin-spring위 github 레포지토리에서 module-sample-redis 에 있는 설정 코드가 최신 코드입니다.최신코드를 기반으로 하여 아래 설명글을 참고하시면 됩니다. - 설명글이번에도 먼저 build.gradle 에 라이브러리를 입력하세요. // (Redis) // : 메모리 키 값 데이터 구조 스토어 implementation("org.springframework.boot:spring-boot-starter-data-red..
Springboot JavaMailSender 로 이메일 보내기 (PlainText 발송, 첨부파일 발송, Thymeleaf HTML 이메일 발송)
·
Programming/BackEnd
- 이번 포스팅으론 Springboot 에서 JavaMailSender 를 사용하여 이메일을 보내는 예시를 정리할 것입니다.백엔드 서비스 개발시 의외로 수요가 많은 기술로,서비스 진행 상태 공유, 인증 관련 비밀 문서 제공, 광고성 정보제공 등의 용도로 사용되며,Springboot 에서는 JavaMailSender 를 사용하여 쉽게 이메일을 전송 가능합니다. - 진행하기 전에 필요한 사항이 있습니다.HTML 이메일 전송을 위한 준비사항으로,앞선 포스팅에서 작성했던 Thymeleaf HTML 을 HTML String 으로 변환해주는 함수를 준비해주셔야 합니다.Thymeleaf 설정은 이미 되어있다고 가정하겠습니다. - 먼저 build.gradle 안의 dependencies 에 // (Spring e..
Springboot MongoDB 설정하기 (멀티 소스 데이터베이스 접속, MongoDB ReplicaSet 접속 및 트랜젝션 Annotation 작성)
·
Programming/BackEnd
- 이번 포스팅으론 Springboot 로 MongoDB 에 접근하여 사용하는 방법을 설명드리겠습니다. - build.gradle.kts저는 코틀린 언어를 사용하기에 build.gradle.kts 를 사용하는데, java 를 사용하신다면 적절히 수정을 하시면 됩니다. 종속성으로, dependencies 태그 안에 // (MongoDB) implementation("org.springframework.boot:spring-boot-starter-data-mongodb:3.3.0") 위와 같이 추가하면 됩니다. - application.yml 파일 안에 데이터베이스 설정을 하겠습니다. 여기서는 하나의 프로젝트로 여러 데이터베이스에 접근이 가능하다는 것을 전제로 하기에 여러 데이터베이스에 대한 설정..
Springboot JPA 설정하기 (멀티 소스 데이터베이스 접속 및 트랜젝션 Annotation 작성)
·
Programming/BackEnd
- 이번 포스팅에서는 Springboot 에서 JPA 를 통해 Database 를 사용하도록 설정하는 방식을 정리하겠습니다. - 2025-05-09 수정사항현시점, 아래 설명글에서 개선된 몇가지 사항이 존재합니다.Transaction 처리 등의 방식이 변경되었으므로, 최신 코드는, java-githubkotlin-github 위의 링크에서 확인하실 수 있습니다.기본적인 설정 원리는 동일하므로, 아래 설명글을 한번 읽어보시고 위 최신 코드를 사용하시는 것을 추천드립니다. - build.gradle.kts저는 코틀린 언어를 사용하기에 build.gradle.kts 를 사용하는데, java 를 사용하신다면 적절히 수정을 하시면 됩니다.종속성으로, dependencies 태그 안에 implementatio..
Springboot JPA Timezone 설명 (데이터베이스와 Springboot 간의 타임존 처리 방식)
·
Programming/BackEnd
- JPA 에서 DATETIME 변수를 다룰 때는 자동으로 TimeZone 을 맞춰줍니다.    예를들어 JPA 가 돌아가는 Springboot 의 타임존 설정이 UTC,    데이터베이스가 KST 시간을 사용중이라고 했을 때,    JPA 에서 UTC 시간인 2024-05-02 03:38:46.026 를 데이터베이스에 입력하면,     데이터베이스에는 실제로는 KST 시간인 2024-05-02 12:38:46.026 가 저장이 되며,    데이터베이스에서 KST 시간인 2024-05-02 12:38:46.026 를 조회하면,     UTC 시간을 사용중인 스프링부트 시스템에 맞춰서 JPA 는,     2024-05-02 03:38:46.026 라고 데이터를 변환해줄 것입니다. - Springboot 에..