| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 몽고 인덱스
- AWS
- 누적합
- gRPC
- 결제서비스
- ALB 502 BadGateway
- JPA
- TLS협상오류
- 완전탐색
- 백준
- 베타적락
- 디버깅
- docker
- 프로그래머스
- 구현
- 쿠키
- dau 3만명
- 카카오
- 셀러리
- 관측가능성
- 추천 검색 기능
- 이분탐색
- 백그라운드시 연결안됨
- BFS
- 502오류
- 크롤링
- next-stock
- 아키텍쳐 개선
- ipo 매매자동화
- 알람시스템
- Today
- Total
목록전체 글 (192)
코딩관계론
최근 프로젝트에서 Kubernetes 환경에서 동시성을 극대화하기 위해 AWS Lambda를 도입했습니다. 하지만 Lambda로 분리된 워크로드 때문에 로그가 누락되면서 서버 전 구간의 추적성이 떨어지는 문제가 발생했습니다. 처음에는 오픈텔레메트리 프로토콜을 사용해서 간단히 traceparent 헤더만 전달하면 될 것으로 생각했지만, 실제로는 Lambda의 serverless-express에서는 AsyncLocalStorage 전파가 끊기게 되면서 전구간으로 이어지지 않는 문제가 발생했습니다.이 글에서는 이러한 문제를 해결하기 위해 제가 시도했던 방법과 그 과정에서 얻은 인사이트를 공유합니다. OpenTelemetry instrumentation을 활용해 trace ID를 로그에 삽입하는 방법과, Lam..
1. 문제 현상회원가입 전환율이 약 10% 하락하는 현상이 발생하였다.로그 분석 결과, 인증률 하락 시점부터 502 Bad Gateway 오류 발생 건수가 급격히 증가하는 상관관계를 확인하였다.실제 회원가입 절차를 수행하면 일정 확률로 502 응답이 반환되는 현상이 재현되었다.결과적으로 다음과 같은 인과 관계가 의심되었다. 가입자 하락 → 인증 실패 증가 → 502 오류 다발 2. 원인 탐색 방향502 오류는 “게이트웨이(중간 서버, 예: ALB)가 백엔드 서버로부터 정상적인 응답을 받지 못했을 때” 발생한다.AWS 공식 문서(참고 링크)에 따르면,Application Load Balancer(ALB) 기준에서 502 오류는 다음 세 가지 구간에서 발생할 수 있다.Pod(백엔드 서버)가 직접 502를 ..
대어 IPO(리브스메드) 위에 정책펀드 앵커(산은 2,000억, GP 유력)가 ‘확실성의 바닥’을 깔고, 오픈엣지 고수익 회수가 신뢰를 더하는 이벤트 드리븐형 VC주입니다.전략은 간단히: 재료 공백기 분할 매수 → 공식 이벤트 전·후 분할 청산 → 동종 분산으로 테마 리스크 관리. 1) 왜 지금 SBV인가 — ‘3중 촉매’의 실체 ① 리브스메드 IPO(대어)2025년 5월 코스닥 상장예비심사 청구 완료. 기술특례 루트와 조(兆) 단위 밸류 기대가 보도되었습니다.확인용: KRX 캘린더, 38커뮤니케이션, 주요 경제지 기사 등. ② 산은 ‘AI 코리아펀드’(중형 2,000억) 앵커스톤브릿지벤처스(SBV)가 단독지원·서류 통과로 GP 선정 유력(업계 보도). 선정 시 산은 30% 앵커(600억), 9개월 내 ..
최근 관측 가능성(Observability) 관련 서적을 읽으면서, 회사의 알람 시스템을 전면 개선하기로 결심했습니다.관측 가능성의 핵심은 로그, 메트릭, 트레이스를 상관관계로 연결하여 근본 원인을 빠르게 파악할 수 있는 시스템을 구축하는 것입니다.문제 상황입사 당시 회사에는 중앙집중형 로그 시스템만 존재했고, 그 외의 모니터링·알람 체계는 사실상 없었습니다. 그 결과 장애 발생 시, 개발자가 먼저 감지하는 것이 아니라 고객 문의 -> 실무자가 문제임을 인지 -> 개발자에게 보고하는 형식으로 되어 있었습니다.이 구조에서는 실무자의 인지 시간 + 개발자의 문제 해결 시간이 그대로 MTTR(Mean Time To Recovery)에 반영됩니다.실제로는 한 달 이상 지속된 버그가 뒤늦게 발견되는 사례도 있었..
문제 이해하기비밀 코드는 1 ~ n 사이의 서로 다른 5개의 수로 구성된 오름차순 조합입니다.총 m번의 시도를 통해 비밀 코드를 추측할 수 있으며, 매 시도마다 서로 다른 5개의 수를 입력합니다.시스템은 각 시도에 대해, 입력값 중 몇 개가 비밀 코드에 포함되어 있는지를 알려줍니다.예를 들어, 비밀 코드가 [3, 5, 7, 9, 10]이고우리가 [1, 2, 3, 4, 5]를 입력했다면,겹치는 수는 3과 5, 총 2개이므로 시스템은 2를 응답합니다문제 해결 방법 설명하기가능한 모든 5개 조합을 생성합니다. (1 ~ n 중 5개 선택)각 조합이 모든 시도의 결과와 정확히 일치하는지 확인합니다.조건을 모두 만족하는 조합만을 필터링하여 개수를 셉니다.코드function getCombinations(arr, se..
서론고객에게 환급금을 정확히 돌려주기 위해서는 체크리스트 설문이 필요합니다. 이 설문은 단순히 선택만 하는 게 아니라, 스프레드시트에 응답을 저장하고, 이를 분석해 결과를 추론하는 복합적인 로직을 포함하고 있습니다. 이 전체 과정에는 20초 정도의 시간이 걸리게 되기 때문에 이 과정을 처음 설계할 때부터 “이건 절대 동기식으로 처리하면 안 되겠다”고 판단했습니다. 왜 동기로 짜면 안 되는지, 설계 전부터 예측했습니다당시 처리 대상은 3만 명이 넘는 사용자였고, 이 설문은 퇴근 직후, 특정 시간대에 몰리는 트래픽 특성을 갖고 있었습니다. 문제는 이 흐름이 아래와 같다는 점입니다단순히 생각해도,20초 동안 핸들러가 점유되면?수천 명이 동시에 들어오면?스레드 풀 / 이벤트 루프는 버텨줄 수 있을까?라는 질문이..
회사에서 홈택스 데이터를 스크래핑하는 일을 맡았다. 사용자에게 제공해야 하는 세금 정보는 크게 두 가지, **세와 **세. 문제는 이 두 스크래핑이 동시에 실행되면 서로의 세션을 덮어쓰는 문제가 발생한다는 점이었다. 세션 충돌은 곧 사용자 경험의 악화로 이어지고, 안정성이 생명인 서비스에서는 반드시 해결해야 할 사안이었다.[Z5004]: [LOGIN-999] 통합인증(중복 로그인) 오류입니다. 그래서 선택한 해법이 Redis 기반의 분산락이었다. 우리 회사 인프라는 AWS의 관리형 ElastiCache를 사용하고 있고, Latency 측면에서도 EKS 내에서의 접근이라 꽤 빠른 편이었다. 처음에는 Redis I/O 비용을 줄이자는 생각으로. 락 획득 여부를 Redis에 일일이 물어보는 대신, 로컬 메모리..
최근 업무 중 특정 기능 업데이트 이후 데이터베이스에서 예상치 못한 빈도의 Lock Raise 오류가 발생하였다. 장애 현상은 다음과 같은 트랜잭션 간 경쟁 상황에서 비롯되었다. 이러한 상황에서 발생하는 락과 이를 해결하기 위한 전략에 대해 정리하고자 한다.장애 현상트랜잭션 A가 특정 행(ROW1)에 대한 업데이트를 수행하며 배타적 락(Exclusive Lock)을 획득했다.트랜잭션 A가 완료되지 않은 상태에서 트랜잭션 B가 같은 행(ROW1)에 대한 업데이트를 시도하면서 락 충돌(Lock conflict)이 발생하여 오류가 발생했다. 배타적 락(Exclusive Lock, X-Lock)먼저 이 문제를 해결하기 위해선 배타적 락 대해서 알아야 한다. 배타적 락은 데이터 변경 작업을 수행할 때 발생하는 락..
문제 이해하기next 연산이 있을 시 + 10초 prev 연산이 있을 시 - 10초 다만 최소 0초에서 최대 video_len 까지만 이동이 가능함오프닝 구간에 있을 경우에는 오프닝의 마지막 시간으로 이동해야 한다.문제 해결 방법 설명하기1. 초로 통일 코드function changeSec(time){ let [min, sec] = time.split(':').map(Number) return min * 60 + sec}function secToMin(time){ min = Math.floor(time / 60) sec = time % 60 if(min 코드 리뷰function toSeconds(time) { const [minute, second] = time.split(..
1. 문제 이해하기게임 속 "붉대 감기" 기술은 일정 시간 동안 체력을 회복하는 스킬입니다. 주요 규칙은 다음과 같습니다:기본 회복: 매 1초마다 정해지는 양(x)만큼 체력을 회복합니다.연속 성공 보너스: t초 동안 끊기지 않고 성공하면 추가 회복량(y)이 더합됩니다.기술 취소: 목시터에게 공격받으면 붉대 감기가 즉시 취소되며, 공격받는 순간에는 회복을 할 수 없습니다.체력 한계: 체력은 최대 체력을 넘어서 회복할 수 없습니다.사망 조건: 체력이 0 이하로 떠나면 캐릭터가 죽습니다.📌 문제 링크 바로 가기2. 문제 해결 방법해결 해적은 목시터 공격 간격을 계산해서 그 사이에 체력을 얼마나 회복할 수 있는지를 구하는 것입니다.현재 시간과 다음 공격 시간사이에 회복할 수 있는 시간을 구합니다.회복 공식은 ..
오늘은 뉴스 데이터에서 자동으로 유용한 정보를 찾아주는 시스템을 구축하면서, 저희 팀이 고민했던 기술적인 문제들과 그 문제들을 해결한 과정을 공유하려고 합니다. 특히 이 과정에서 사용한 AI 기술들, 그리고 분산 환경에서 데이터의 일관성을 지키기 위해 했던 노력들을 쉽게 풀어서 설명해 드리겠습니다.1. 뉴스 데이터에서 자동으로 '인사이트'를 추출하기 위해 고려한 기술들저희가 만들고자 했던 시스템은 하루에도 수백, 수천 개씩 쏟아지는 뉴스 중에서 중요한 정보(인사이트)를 자동으로 발견하고 요약해주는 역할을 합니다. 사람이 모든 뉴스를 직접 읽고 평가할 수는 없으니까, 이를 돕는 AI 시스템을 설계하기로 했습니다.이 과정에서 중요한 기술적 결정을 내렸던 부분은 다음과 같습니다:LangGraph라는 도구를 사..