대량 엑셀 다운로드를 메시지 큐와 S3 사전 생성으로 개선한 이야기 Notes 대량 엑셀 다운로드를 메시지 큐와 S3 사전 생성으로 개선한 구조 대량 데이터 엑셀 다운로드는 흔한 요구지만, 요청을 받은 API 서버가 조회와 파일 생성까지 직접 하면 그 서버가 병목이 됩니다. 운영 환경에서 전체 데이터를 조건 없이 반복 다운로드하는 요청 때문에 API 서버 CPU 사용률이 85%까지 올라갔습니다. 그래서 생성 작업을 메시지 큐 ... 2025/05/22 Notes, Common
대용량 엑셀 다운로드 요청을 안정적으로 처리하는 방법 Notes 대용량 엑셀 다운로드 기능은 처음에는 단순해 보인다. 조회 쿼리를 실행하고, 결과를 엑셀 파일로 만든 뒤, 응답으로 내려주면 끝이기 때문이다. 하지만 사용자 수가 늘고 다운로드 대상 건수가 커지면 이 기능은 API 서버, DB, 스토리지 모두를 압박하는 고비용 작업으로 바뀐다. 특히 다음 조건이 겹치면 문제가 빠르게 드러난다. 같은 사용자가 ... 2025/05/22 Notes, Programming
무거운 엑셀 다운로드 요청을 사전에 판별하는 방법 Notes 엑셀 다운로드 기능을 운영하다 보면 모든 요청을 같은 방식으로 처리하기 어렵다는 사실을 금방 체감하게 된다. 어떤 요청은 수백 건 수준이라 즉시 응답해도 무리가 없지만, 어떤 요청은 수십만 건을 읽어야 해서 비동기 처리로 넘겨야 한다. 그런데 요청을 실제로 실행하기 전까지는 그 비용이 겉으로 드러나지 않는다. 그래서 실행 전에 비용을 가늠하는 사전 ... 2025/05/22 Notes, Programming
[3주차] 속도를 지배하는 DB 인덱스 Lecture 03. 인덱스란? 인덱스는 책갈피를 끼워 두고 필요할 때 바로 해당 페이지를 펴는 것과 같다. DB에서 자주 조회하는 필드 값의 위치를 따로 저장해 두므로 데이터를 빠르게 찾을 수 있다. 대신 데이터가 추가될 때마다 책갈피도 새로 꽂아야 한다(인덱스 갱신). 그래서 조회는 빨라지지만 쓰기는 느려질 수 있다. 인덱스의 적용 원리 서점에서 사람들은 ... 2025/05/21 Lecture, 6주 완성! 백엔드 이력서 차별화 전략 4가지
2025-05-19-TIL TIL Today I Learned 주말간의 바쁜 시간들을 보내고 드디어 다시 평일이 되었다. 공부를 하고자하는 의지가 강할때 하필이면 더 바쁜 상황이 생기는 것 같다. 아니면 반대로 바쁘고 공부하기 어려운 환경이라서 더욱 의지가 생기는 것일수도 있다. Today I Interview 단일 장애 지점(SPOF)이란 무엇인가요? 단일 장애 지점(Sing... 2025/05/19 TIL, 2025-TIL
Load Balancing Algorithms Notes 로드 밸런싱 알고리즘의 종류 로드밸런싱 알고리즘은 클라이언트 요청을 여러 서버로 효율적으로 분산시켜 시스템의 부하를 줄이고, 성능과 가용성을 높이기 위한 방식이다. 다음은 대표적인 로드밸런싱 알고리즘의 종류와 특징이다. 1. 라운드 로빈 (Round Robin) 요청: R1 R2 R3 R4 R5 R6 ↓ ... 2025/05/19 Notes, Network
이력서 기반의 면접 예상질문 자문자답 2 Recruit 🧠 전반적 기술 및 아키텍처 관련 질문 MCP 전면 개편 프로젝트에서 Java 21을 선택한 이유는 무엇인가요? Virtual Thread, Record 등 어떤 기능을 활용했는지 예시와 함께 설명해주세요. Spring Boot 프로젝트에서 Package by Component를 선택하신 이유와 장... 2025/05/15 Recruit, Interview
2025-05-14-TIL TIL Today I Learned Today I Interview Q. CSRF 공격에 대해서 설명해주세요. 사이트 간 요청 위조(Cross-Site Request Forgery, CSRF) 공격은 웹 애플리케익션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하도록 하는 공격이다. CSRF 공격을 실행하려면 3가지 조건을... 2025/05/14 TIL, 2025-TIL
Chapter 2. Architectural Thinking Book 책(Mark Richards, Neal Ford, 『Fundamentals of Software Architecture』 2장)은 아키텍처 사고를 단순히 ‘아키텍처를 생각하는 것’이 아니라 아키텍처 관점에서 사물을 바라보는 것으로 정의한다. 책이 드는 구성 요소는 네 가지다. 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하려면 개발팀과 ... 2025/05/13 Book, Fundamentals of Software Architecture
@TransactionalEventListener 빠른 체크 노트 Notes @TransactionalEventListener를 쓸 때 가장 먼저 확인할 것은 두 가지다. 이벤트가 실제로 트랜잭션 안에서 발행되는가 내가 원하는 실행 시점이 커밋 이후인가, 즉시 실행인가 핵심 요약 기본 @EventListener는 발행 즉시 실행된다. @TransactionalEventListener는 트랜잭션 phas... 2025/05/13 Notes, Spring