profile
라곰
post-thumbnail

메일이 왜 이렇게 느려? - @Async로 비동기 처리하기

비슷한 고민을 한 사람들이 이미 많았다.How To Do @Async in Spring - Baeldung — Spring @Async 적용 방법 전반을 잘 정리해놓은 글. SMTP 같은 네트워크 I/O 작업에 적용하는 게 대표적인 사례로 나온다.장시간 비동기 작업,

4일 전
·
0개의 댓글
·
post-thumbnail

PDF 서버를 Node.js로 분리한 이유

Virgin Road는 결혼식 당일 하객들이 쓴 편지를 PDF로 만들어 신랑/신부에게 이메일로 보낸다. 스케줄러가 매일 19시에 그날 결혼식인 방을 조회해서 PDF를 생성하고 발송한다.PDF 생성은 처음부터 Java 안에서 구현하려고 했다. Spring Boot 안에서

6일 전
·
0개의 댓글
·
post-thumbnail

방 생성 플로우 설계 - INACTIVE → ACTIVE

Virgin Road는 신랑/신부가 방을 만들면 하객들이 편지를 남기는 서비스다. 방을 만들 때 이름, 결혼 날짜, 이메일을 입력한다. 이 이메일이 나중에 PDF 발송 대상이 된다.초기 구현은 단순했다. 방 생성 요청이 오면 바로 DB에 INSERT하고 완료. 그런데

6일 전
·
0개의 댓글
·
post-thumbnail

이메일 인증을 DB에서 Redis로 바꾼 이유

Virgin Road는 신랑/신부가 방을 만들 때 이메일 인증을 거친다. 인증 코드를 이메일로 보내고, 5분 안에 입력하면 방이 활성화되는 구조다.처음 구현할 때 인증 코드를 어디에 저장할지 고민했다. 가장 빠른 선택은 DB 테이블이었다. 이미 MySQL을 쓰고 있으니

6일 전
·
0개의 댓글
·
post-thumbnail

Virgin Road - 결혼식 축하 편지 타임캡슐 서비스를 만들었다

Virgin Road는 결혼식 축하 편지 타임캡슐 서비스다.신랑/신부가 링크를 만들어 지인들에게 공유하면, 하객들이 편지를 남긴다. 편지는 결혼식 당일 밤까지 잠겨 있다가 그날 한꺼번에 공개된다. 편지들은 PDF 레터북으로도 받을 수 있다.서비스 주소: https&#x

6일 전
·
0개의 댓글
·
post-thumbnail

Caddy 리로드 실패 - inode 교체 문제 분석

헬스체크는 통과Caddy 리로드에서 실패롤백에서는 동일한 명령이 성공백엔드 배포는 됐는데 프론트엔드 배포는 안 됨증상이 일관성이 없어서 처음엔 원인을 찾기 어려웠다.GitHub Actions의 Sync server 단계에서 시작된다.git reset --hard는 파일

2026년 3월 20일
·
0개의 댓글
·

홈 서버 구축 일지 (5) - Cloudflare 보안 규칙 설정

도메인 연결, 자동 배포까지 다 됐으니 마지막으로 보안을 잡았다.Cloudflare Free 플랜에서 설정할 수 있는 규칙들로 충분히 기본적인 방어가 가능하다.오늘 적용한 건 세 가지다.악성 봇 / 스캐너 차단XSS 방어한국 외 API 요청 차단스팸 방지 Rate Li

2026년 3월 20일
·
0개의 댓글
·

홈 서버 구축 일지 (4) - SSH 키 인증 & 배포 디버깅

3편에서 Cloudflare Tunnel 연결과 GitHub Actions 자동 배포 기반을 만들었다.오늘은 실제로 배포를 돌려보면서 만난 문제들을 하나씩 해결한 과정을 정리한다.SSH 키 인증 설정부터, docker 명령어 못 찾는 문제, Caddy 리로드 실패까지

2026년 3월 20일
·
0개의 댓글
·
post-thumbnail

홈 서버 구축 일지 (3) - Cloudflare 도메인 연결 & 자동 배포

2편에서 서버 환경 세팅과 프로젝트 배포까지 마쳤다.오늘은 두 가지를 한 번에 끝냈다.가비아 도메인을 Cloudflare에 연결해서 외부에서 접근 가능하게 만들기GitHub Actions로 main 브랜치 push 시 자동 배포 연결일반 방식과 Cloudflare Tu

2026년 3월 20일
·
0개의 댓글
·

홈 서버 구축 일지 (2) - 서버 기본 설정 및 프로젝트 구축

1편에서 Mac Mini 기본 세팅과 Tailscale로 원격 접속까지 마쳤다.오늘은 본격적으로 서버 환경을 갖추고, 실제 프로젝트까지 올려보려 한다.세팅을 시작하기 전에 전체 구조를 먼저 그려봤다.외부 사용자는 Cloudflare를 통해 들어오고,나는 Tailscal

2026년 3월 20일
·
0개의 댓글
·
post-thumbnail

홈 서버 구축 일지 (1) - Mac Mini 첫 세팅

Mac Mini M4를 구매했다.회사 서버도 아니고, 클라우드도 아닌, 내 손 안의 서버 !홈 서버를 구축해보고 싶다는 생각은 오래전부터 했는데, 이번에 Mac Mini M4가 나오면서 결심했다.시작이 반이라고, 일단 사고 봤다.오늘은 Mac Mini를 받아서 기본 세

2026년 3월 19일
·
0개의 댓글
·

동시성 직접 쿼리

이전 포스팅 이전에 공유 자원에 대한 동시성을 처리하며, 기존의 값을 조회해온뒤 + 5 해서 Update 플로우를 진행했었다. 최근 한 블로그를 보면서 내가 생각하지 못했던 로직에 대해서 직접 다뤄보려고 한다. 조회수 기능 구현 (동시성 이슈) 공유자원의 문제를 생

2024년 12월 15일
·
0개의 댓글
·
post-thumbnail

NginX 502

엔진엑스의 default.conf 파일에 리버스 프록시 설정을 추가했지만, proxy_pass 가 적용되지 않는 문제점이 존재했다.api/health url 검색해도 502 에러가 나왔다.nginx.viraptor.info이렇게 변경하니 정상적으로 돌아갔다 ! prox

2024년 8월 13일
·
0개의 댓글
·

Redis 동시성

이전 포스팅 DB 단계에서 Lock 설정을 통한 비관적락을 통해 병렬 요청으로 인한 동시성을 처리했다. Lock을 확인하러 가는 과정에 DB에 접근이 불가피하다. 복잡한 서비스에서 컬럼들에 무자비하게 Lock을 건다면 데드락 상황이 발생할수 있다. 컬럼이 아닌 로

2024년 8월 13일
·
0개의 댓글
·
post-thumbnail

DB 동시성

DB - mysqlORM - JPA이전 포스팅이전 포스팅에서 코드 레벨에서의 동시성 처리에 대해서 학습했다.각 서버에서가 아닌? 하나의 DB에 동시에 접근해서 CRUD 한다면? 앞선 동시성 이슈가 DB에서 발생하게 되고, 이는 데이터의 정합성을 보장해줄수 없게된다.un

2024년 8월 12일
·
0개의 댓글
·
post-thumbnail

동시성

이전 포스팅 JAVA 멀티 스레드 환경에서 공유 자원에 대한 궁금증을 해결해보자 이전 포스팅에서 JVM을 공부하며, 공유자원의 중요성을 느꼈고, 예제와 test를 통해서 학습을 진행해보려 합니다. 만약 선착순 100명에게 커피 쿠폰을 제공하는 이벤트가 있다고 가정

2024년 8월 9일
·
0개의 댓글
·
post-thumbnail

JVM이란 무엇일까?

JAVA 언어와 Spring Boot FrameWork를 사용한지 2년이 다되갈 무렵 문득 내부 원리에 대한 기억이 희미해져간다...컴파일 원리와 JVM의 내부 저장소와 동작 원리를 다시 한번 학습하고 넘어가자 !우선 컴파일 원리를 위한 기본 지식으로.java 원시코드

2024년 8월 8일
·
0개의 댓글
·
post-thumbnail

jQuery

순수 JS를 jQuery로 변경하기

2024년 7월 15일
·
0개의 댓글
·
post-thumbnail

Vanila JS

JS의 학습을 하게되어 학습 과정을 남겨 보려고 합니다. 노마드 강의 "바닐라JS 챌린지" 강의로 노마드의 니콜라스 선생님의 강의입니다. JS로 사용하는 front중 가장 기본인 vanila JS를 활용한 간단한 웹사이트 제작입니다. 아래와 같이 로그인(te

2024년 7월 15일
·
0개의 댓글
·

Dangil project(20)

이제 기존의 Server(Spring) To Server(FastAPI) 소켓 통신을 Kafka 통신으로 변경하려고 한다. 기존 Socket 통신 Socker 을 활용한 Server To Server를 구성할때는 한쪽이 서버 한쪽이 클라이언트로 구성되어 연동을 시도

2024년 5월 28일
·
0개의 댓글
·