목록분류 전체보기 (49)
장난감 연구소
본 후기의 경우 문제를 포함한 코딩테스트 관련 내용을 외부로 자유롭게 공유할 수 있음을 메일로 안내 받고 회고 차원에서 작성하였습니다. MUSINSA AI Native Engineer 2차 코딩테스트는 Codex와 같은 AI 에이전트를 활용해 주어진 애플리케이션을 개발하는 방식으로 진행되었습니다. 단순한 알고리즘 풀이를 넘어 AI 활용 능력 자체를 평가한다는 점에서, 현 시대에 걸맞은 새로운 유형의 코딩테스트라는 느낌을 받았습니다.시험에 앞서 크레딧 비용 걱정 없이 사용할 수 있도록 기업용 Codex 계정이 제공되었습니다. 평소 Claude Code를 주력으로 사용하고 있었기에, Session Limit에 도달할 경우를 대비해 Codex를 예비 수단으로 활용하는 전략으로 임하였습니다. 과제 요구사항전체 ..
더미데이터 수정지난 글에서 가까운 순 가게 목록 조회시 MySQL의 공간 인덱스 사용이 충분히 빠르지 않다는 걸 확인하였습니다. 그래서 공간 인덱스 스캔에 너무 오랜 시간이 걸리는 걸 해결하기 위해 H3를 이용하여 쿼리 실행시간을 개선해보기로 하였습니다.H3 인덱스 추가우선 기존 더미데이터에 H3 인덱스를 추가하였습니다. 이를 위해 store 테이블에 h3_cell 컬럼을 varchar(16) 타입으로 추가하였습니다. 다음으로 H3 인덱스를 전체 가게에 대해 업데이트하기 위해 오른쪽 이미지와 같이 코드를 작성한 후 CommandLineRunner로 실행하였습니다.h3_cell 컬럼 인덱스 추가CREATE INDEX idx_h3_cell ON store(h3_cell)h3_cell 컬럼 스캔시 인덱스를 사..
배경지난 글에서 가까운 순 가게 목록 조회 기능을 개발하면서 공간 인덱스를 적용했었습니다. 그 결과 기존에 약 80%의 요청이 실패하였으나, 100% 요청이 성공하도록 개선된 결과를 확인하였습니다.그러나 이는 청주의 한 지점을 기준으로 가까운 가게 목록을 조회한 것으로, 거리 순으로 정렬할 가게의 수가 적은 편일 때의 결과였습니다. 실제 음식점 공공 데이터를 사용하여 더미 데이터를 생성하였기에 전국적으로 보았을 때 청주보다 더 많은 음식점이 밀집된 지역이 다수 존재할 것입니다. 따라서 해당테스트는 이상적인 환경에서의 결과로, 최악의 케이스를 검증했다고 보기는 어렵습니다.그래서 비교적 많은 음식점이 밀집되어 있을 것으로 예상되는 강남역 인근을 중심으로 K6를 이용한 성능 테스트를 다시 진행하였습니다. 더미..
구름톤 딥다이브 백엔드 개발자 과정에서 팀 프로젝트를 진행하면서 고민한 문제를 정리해 보았습니다. OpenAI API 분당 토큰 사용량 제한 문제ResuMate라는 이름으로 개인의 경험을 쉽게 기록·관리하는 회고 작성 서비스를 개발하였습니다. 해당 서비스는 OpenAI API를 이용하여 회고 내용을 요약하고, 핵심 요소를 뽑아주는 기능을 포함하고 있었습니다.이때 기능 특성상 회고 내용이 모두 입력으로 들어가기 때문에 각 요청마다 입력 토큰으로 4000~6000 토큰 또는 그 이상을 사용하였습니다.OpenAI API는 각 계정의 티어(Tier)에 따라 사용량 제한이 달랐습니다. 크레딧을 많이 지불할수록 티어가 올라가 제한량도 올라가나, 무작정 비용을 늘리기보다 한도 내에서 방법을 찾고 싶었습니다. 문제 배..
캐시 관련 문제 방지 방법이런 문제가 있는지 알게 되어 나중에 알아보기 위해 저장해놓습니다. 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁대용량 트래픽 환경에서 캐시를 사용할 때 주의해야할 위험 상황과 예방법을 소개합니다.toss.tech GPT 응답더보기캐시 스탬피드(Cache Stampede)란?캐시 스탬피드는 특정 캐시 키가 만료되었을 때 다수의 클라이언트 요청이 동시에 원본 데이터 소스(DB 등)에 몰리며 과부하가 발생하는 현상을 말합니다.예시 상황:인기 있는 데이터(예: 실시간 뉴스 헤드라인)가 캐시에 저장됨.캐시 만료 시간(TTL)이 되어 해당 키가 캐시에서 사라짐.동시에 수천, 수만 개의 요청이 들어오면, 전부 DB로 향하게 됨.DB 과부하 → 응답 지연 또는 장애 발생.이게 바로 캐..
배달 서비스에 대한 클론코딩 프로젝트를 진행하면서, 음식점을 가까운 순으로 조회하는 기능을 개발하였습니다. 해당 과정에서 공간 인덱스를 사용하기 전후의 부하 테스트 결과를 정리하였습니다.배경프로젝트에서, 가게 목록 조회 기능을 개발하면서 나와 가까운 순으로 정렬하는 기능을 제공하였습니다. 나와 가게의 거리는 요청하는 회원에 따라 달라지기에 캐싱에 어려움이 있었습니다. 따라서 부하테스트의 대상으로 결정하고 테스트를 진행하였습니다.실제 AWS 배포한 서버의 경우 4만 개 정도의 가게를 등록하였는데, 부하테스트 중에는 공공 데이터인 전국음식점일반데이터를 이용하여 약 66만 행으로 데이터를 늘려 테스트를 진행하였습니다. 검색으로 나오기론 배달의 민족에 등록된 가맹점 수가 30만 개 이상이라는데 그 두 배 정도라..