분류 전체보기 (6) 썸네일형 리스트형 [토스] 러너스하이 2기 & 1차 직무 인터뷰 후기 지난 2025년 12월 ~ 2026년 1월에 진행했던 토스 러너스하이에 대한 후기와 1차 직무 인터뷰 후기를 간단하게 남기는 글이다. 토스 러너스하이 & 신청 이유토스 러너스하이는 커리어 성장을 원하는 서버 개발자들을 위한 토스의 멘토링 프로그램이다. 흔히 생각하는 매주 강의를 해주거나 미션을 주고 리뷰해주는 멘토링이 아니다. 토스에서 지향하는 서버 개발자의 방향성을 스스로 학습한 뒤, 본인의 업무에 적용하며 개선해나가는 과정이다. 개인적으로 이 방식이 좋다고 생각하는 이유는, 참여자마다 처한 상황이 모두 다르기 때문이다. 기술 스택도, 개발 환경도, 팀과 회사 환경도, 참여한 프로젝트도 모두 다르다. 그래서 특정 기술을 가르쳐주는 것이 아니라, 방향성을 알려준 뒤 각자의 환경에서 어떻게 적용할 수 있는.. [2026] 독서 아카이브 : 읽고 기록하기 기록하면서 읽는게 스스로도 좋을꺼같아서 기록 남기기..📚 주니어 백엔드 개발자가 반드기 알아야 할 실무 지식카테고리: IT독서 기간: 2026.04.01 ~ 진행 중후기 : 링크 첨부 예정회고 : 작성 예정📚 가상 면접 사례로 배우는 대규모 시스템 설계 기초1카테고리: IT독서 기간: 2026.04.08 ~ 진행 중후기 : 링크 첨부 예정회고 : 작성 예정 [Feel-Archive] 스케줄러 블로킹을 해결하기 위한 비동기 처리 - 타임캡슐 알림 개발 (1) 배경Feel-Archive 프로젝트의 타임캡슐 기능을 개발하던 중 다음과 같은 플로우로 진행 중이었다.1. 스케줄러 실행 (매분 단위로 스케줄러 발생)2. 타임캡슐 조회3. 타임캡슐 오픈 4. 타임캡슐 알림(SSE, 이메일)이 4가지 작업이 동기로 진행되면 SMTP 외부 서버를 사용하는 이메일 알림에서 작업이 오래 걸릴 수 있다. 테스트로 이메일 알림을 보낼 때 SMTP 서버 장애 등의 이유로 30초 이상 걸렸다고 해보자. 또한 이메일 발송 실패 시에도 재발송을 위한 로그를 반드시 남겨야 하는데, 트랜잭션 롤백 문제도 함께 다뤄야 한다. 내용이 길어질 수 있어 2개 글로 나눠 작성하겠다. 스케줄러 코드@Slf4j@Component@RequiredArgsConstructorpublic class TimeC.. [Feel-Archive] 성능 테스트(1) - 1GB 메모리에서 모니터링 구축하기 배경Feel-Archive 프로젝트 성능 측정을 진행하기 전에 서버 자원 지표를 수집하기 위해 Prometheus 도입을 결정했다. Grafana까지 EC2에 올리면 메모리 부담이 크다고 판단해 Prometheus만 docker-compose에 추가했다. Spring Boot Actuator를 사용하였고Prometheus가 15초마다 수집하는 구조였다. 원인 & 문제 해결처음에 기존에 EC2에 Spring App, MySQL, Redis가 띄워져있는 상태로 Prometheus도 추가해줬는데 터미널이 아예 먹통이 되어서 메모리나 docker stats같은것도 확인할 수 없어서 재부팅 후 Spring App에 메모리를 할당해주고 재시작했다. 그제서야 이제 터미널 먹통이 조금 풀리고 명령어를 실행할 수 있어서.. [Feel-Archive] N+1 감지 시스템 구축기 배경MVP 개발 단계에서는 일단 돌아가게를 목표로 빠르게 개발을 진행했다. JPA의 유명한 N+1 문제가 있다는 걸 알면서도 의도적으로 미뤘다. 일단 빠르게 개발해서 기능이 돌아가는게 우선이라고 생각했다. 그런데 막상 N+1을 잡으려고 하니 문제가 생겼다. 어떤 API에서 발생하는지 알 수가 없었다. 코드를 하나하나 뜯어보자니 범위가 너무 넓었고, show_sql로 로그를 켜봐도 가독성이 그렇게 좋다고 생각하지 않았다. 요청 단위로 쿼리가 몇 번 나가는지 알 수 있다면? 그래서 직접 구현해보기로 했다.해결방법 총 3가지를 중심으로 개발했다. ThreadLocal - 스프링은 HTTP 요청당 스레드가 생성되고, 각 스레드의 임시 저장소 역할을 하는 저장소다.StatementInspector — Hibe.. [Feel-Archive] 타임캡슐 알림이 9시간 늦게 온다 배경Feel-Archive 프로젝트에서 타임캡슐 기능을 테스트하던 중, 설정한 시간이 되어도 메일 알림이 오지 않는 문제가 발생했다.오전 1시53분에 타임캡슐을 작성했고, 오전 2시에 열리도록 설정했는데 한참을 기다려도 안오길래 DB를 직접 확인해보니 open_at 컬럼에 오전 11시로 저장되어 있었다. 정확히 9시간 차이... 타임존 문제임을 확신했다.원인먼저 서버 환경을 확인했다.# EC2 서버 시간 확인date# Sat Mar 7 17:45:35 UTC 2026# Docker 컨테이너 내부 JVM 타임존 확인java -XshowSettings:property -version 2>&1 | grep timezone# default timezone = Etc/UTC JVM은 UTC로 동작 중이었다. A.. 이전 1 다음