본문 바로가기

Spring Boot/etc9

[SSE] 서버에서 클라이언트에 연결을 한다고?! (반대 아니야?!) 🚀 Spring Boot(Kotlin)로 구현하는 실시간 알림: SSE 기초실시간 알림 기능, 매번 웹소켓(WebSocket)으로 무겁게 구현하셨나요? 서버에서 클라이언트로 일방적인 알림만 보내면 된다면 **SSE(Server-Sent Events)**가 정답입니다.1. SSE란?SSE는 서버에서 웹 브라우저로 실시간 데이터를 푸시하는 HTTP 표준 기술입니다.특징설명통신 방향단방향 (서버 → 클라이언트)프로토콜일반 HTTP 사용 (text/event-stream)연결 유지한 번 연결하면 서버가 계속 데이터 전송 가능재연결네트워크 중단 시 브라우저가 자동으로 재연결 시도2. Backend: Kotlin 핵심 코드Spring에서 제공하는 SseEmitter를 사용하면 아주 짧은 코드로 구현이 가능합니다... 2026. 2. 4.
Spring 개발자의 FastAPI 찍먹기: URL 단축기 프로젝트 1. 프롤로그: 왜 FastAPI인가?평소 Java/Spring Boot로 개발하던 나에게 Python의 FastAPI는 신선한 충격이었다. "빠르다", "직관적이다"라는 소문만 듣다가, 실제로 URL 단축 서비스(Shorten URL Service)를 만들어보며 Spring의 아키텍처를 Python에 녹여내는 과정을 기록해 본다.특히 가장 고민했던 부분은 "자유분방한 파이썬 코드에 어떻게 견고한 구조(Architecture)를 입힐 것인가"였다.2. 프로젝트 세팅: Modern Python StackSpring에 Gradle과 application.yml이 있다면, 이번 프로젝트에선 다음과 같은 스택을 사용했다.패키지 관리: Poetry (Python의 Gradle 느낌. 의존성 관리가 아주 깔끔함)환.. 2026. 1. 7.
[Spring boot 3.x] Spring boot는 왜 자동 설정을 만들었나? Spring boot에서 Bean을 등록해서 사용하는 경우가 빈번하게 있지만 해당 등록하지도 않은 기본 라이브러리의 Bean들이 어떤 방식으로 등록 되는지 확인해 보았습니다. 상당히 많은 어노테이션들 이걸 어디다 쓰는지 확인해 보았습니다.1. Target해당 어노테이션을 적용 가능한 레벨을 정의 하기 위해 사용TYPE → 클래스, 인터페이스METHOD → 메서드FIELD → 필드 (변수)PARAMETER → 메서드 매개변수CONSTRUCTOR → 생성자LOCAL_VARIABLE → 지역 변수ANNOTATION_TYPE → 애노테이션 정의에만PACKAGE → 패키지 선언TYPE_PARAMETER → 제네릭 타입 매개변수TYPE_USE → 타입이 사용되는 모든 곳 (Java 8 이후)2. Retention해.. 2025. 12. 2.
Spring boot 3.0 Pre-Update 내용 정리 2018년 2월 28일 이후 4년만에 올해 2022년 11월 24일에 Release 버전이 출시될 예정이라고 합니다. 현재는 Spring boot 3.0-rc1 버전(Release Candidate) 베타 최종버전이 배포되어 사용이 가능합니다. RC 버전은 Release 이전에 최종버전을 테스트 및 베타 버전이라고 보시면 됩니다. 1. 자바 버전 업데이트 Spring boot 3.0 사용시에 java 버전을 17로 올려야된다고 합니다. Spring boot 3.0에 기반이 되는 코어 라이브러리들의 코드 베이스가 17버전으로 구현되어 있으며 이전 버전들(2.7.x 하위 버전) 또한 java 17에서 동작한다고 하지만 이부분은 각각의 버전마다 차이가 있을수 있고 "will work really well wi.. 2022. 11. 14.