본문 바로가기
728x90

전체 글57

Spring Boot + STOMP를 활용한 실시간 양방향 채팅 시스템 구축기 🎯 개요최근 프로젝트에서 모바일 앱(React Native)과 웹(React) 간 실시간 채팅 기능을 구현했습니다. WebSocket과 STOMP 프로토콜을 활용하여 실제 프로덕션 환경에서 안정적으로 동작하는 양방향 채팅 시스템을 완성했고, 그 과정에서 얻은 인사이트를 공유하고자 합니다.주요 성과✅ 앱↔웹 크로스 플랫폼 실시간 채팅 구현✅ JWT 기반 보안 인증 시스템✅ 메시지 읽음 처리 및 상태 동기화✅ 에러 핸들링 및 사용자별 알림✅ 500-800명 동시 접속 처리 가능한 스레드 풀 설정🏗️ 아키텍처 설계기술 스택Backend: Spring Boot 3.xWebSocket: STOMP over SockJSSecurity: JWT Token AuthenticationMessage Broker: Sp.. 2025. 12. 31.
Spring Boot -> 새 EC2 서버로 성공적 마이그레이션 가이드 안녕하세요!오늘은 기존에 겪었던 심각한 리소스 문제를 해결하고, Spring Boot 애플리케이션을 새로운 전용 EC2 인스턴스로 마이그레이션한 경험과 상세 가이드를 공유합니다. 성능 문제로 고통받고 계신다면 이 가이드가 큰 도움이 될 것입니다.📋 마이그레이션 배경: 왜 옮겨야 했을까?기존 환경은 여러 개의 애플리케이션이 하나의 작은 인스턴스에 몰려 있어 심각한 성능 저하를 겪고 있었습니다.구분 기존 환경 (마이그레이션 전) 문제점인스턴스t2.micro (1GB RAM)리소스 부족애플리케이션3개의 Java 애플리케이션 실행과부하 유발메모리 사용률90% 이상상시 메모리 부족 경고스왑 메모리과도하게 사용 (740MB+)성능 저하의 주범CPU빈번한 스파이크잦은 서비스 지연/장애💡 해결 방법:t2.small.. 2025. 10. 13.
Spring JPA 대용량 데이터 조회 최적화: 15,000건을 5초에서 0.5초로 문제 상황실무에서 Spring Boot + JPA로 리스트 조회 API를 개발하다 보면, 초반에는 잘 작동하던 기능이 데이터가 쌓이면서 점점 느려지는 경험을 하게 됩니다.# 초기 개발 시 (데이터 100개)GET /api/items?sort=priority→ 응답 시간: 0.2초 ✅# 3개월 후 (데이터 15,000개)GET /api/items?sort=priority→ 응답 시간: 5.3초 ❌저희 팀도 똑같은 문제를 겪었고, 이를 해결하는 과정에서 배운 교훈을 공유합니다.초기 구현: "일단 돌아가게"처음 구현한 코드는 매우 단순했습니다.@GetMapping("/api/items")public Page getItems( @RequestParam(required = false) String keywo.. 2025. 10. 13.
🏠 SeedAuction – 경매 입찰 전에, 내 대출 가능 금액 미리 확인하세요! ❓ 경매 입찰, 자금 계획은 되어 있으신가요?경매로 내 집 마련, 투자 시작하려는 분들 많죠.그런데 입찰 전에 가장 헷갈리는 건 바로 ‘내가 얼마나 대출받을 수 있을까’입니다.LTV? DSR? 은행마다 기준이 다르고…계산도 복잡하고, 정보도 부족하고…🙋‍♂️ 이런 고민, SeedAuction이 해결해드립니다.🚀 SeedAuction은 이런 서비스입니다사건번호만 입력하면, 해당 물건 정보 자동 분석내 조건만 입력하면, 예상 대출 가능 금액까지 바로 확인✔️ 주요 기능 요약:경매 사건번호 기반 정보 조회 (시세, 감정가, 낙찰가 등)LTV, DSR 계산 반영한 대출 가능 금액 예측소득, 주택 수, 사업자 여부 등 내 조건 입력 가능간단한 UI로 누구나 쉽게 사용🛠 사용 방법은 매우 간단합니다1️⃣ 사건.. 2025. 7. 7.
💾 AWS EC2 EBS 루트 볼륨 크기 확장하는 방법 (Ubuntu 기준) 이번에 AWS EC2 인스턴스의 루트 디스크(EBS 볼륨)를 확장한 경험을 공유합니다.📌 1. 현재 디스크 상태 확인우선 디스크 사용량 확인:df -hFilesystem Size Used Avail Use% Mounted on/dev/root 6.8G 6.4G 323M 96% /...v디스크 용량이 거의 다 찬 것을 확인했습니다.📌 2. EC2 콘솔에서 EBS 볼륨 크기 확장AWS 콘솔 → EC2 → 인스턴스 선택하단에서 "루트 디바이스" 항목 클릭EBS 볼륨 ID 클릭 (ex. vol-xxxx)"작업" > "볼륨 수정"새 크기 입력 (예: 기존 8GB → 12GB)"수정" 클릭💡 비용 참고: 12GB 기준 월 1,000원 이하 (서울 리전 gp2)📌 3. SSH 접속 .. 2025. 6. 23.
🧑🏻‍💻 플러터 웹 프로젝트의 파이어베이스 호스팅 배포 과정 안녕하세요! 이번 포스트에서는 Flutter 웹 프로젝트를 Firebase Hosting으로 배포한 전체 과정을 단계별로 정리해보려고 합니다. 특히 Google OAuth 인증과 검색 엔진 최적화(SEO) 설정에 중점을 두어 설명드리겠습니다.목차프로젝트 준비 및 Firebase 초기화Google OAuth 인증 설정 및 문제 해결검색 엔진 최적화(SEO) 설정Firebase 배포 프로세스마무리 및 추가 팁1. 프로젝트 준비 및 Firebase 초기화필요한 패키지 설치우선 플러터 프로젝트에 Firebase 관련 패키지를 설치합니다:dependencies: firebase_core: ^x.x.x firebase_auth: ^x.x.x # 기타 필요한 패키지들main.dart에 Firebase 초기화 코.. 2025. 6. 17.
728x90