ShortURL History Log 성능 최적화: 3분 → 300ms, 600배 개선기
ShortURL History Log 성능 최적화: 3분 → 300ms, 600배 개선기 들어가며 인턴으로 합류해 가장 처음 마주한 운영 이슈가 ShortURL History Log가 너무 느리다는 것이었습니다. 사내 포털에서 제공하는 ShortURL 서비스는 단축 URL을 생성하고, 해당 URL의 클릭 로그를 수집해 국가별 통계를 보여주는 기능...
ShortURL History Log 성능 최적화: 3분 → 300ms, 600배 개선기 들어가며 인턴으로 합류해 가장 처음 마주한 운영 이슈가 ShortURL History Log가 너무 느리다는 것이었습니다. 사내 포털에서 제공하는 ShortURL 서비스는 단축 URL을 생성하고, 해당 URL의 클릭 로그를 수집해 국가별 통계를 보여주는 기능...
부서(Dept) 트리 구조 리팩토링: 이중 for문에서 계층형 트리로 들어가며 사내 포털의 부서(Dept) 관리 페이지를 리뉴얼하면서, 기존 부서 데이터 구조의 근본적인 문제를 발견하게 되었습니다. 부서 데이터는 본질적으로 트리(계층) 구조입니다. “코코네M > SYF > Web팀”처럼 상위-하위 관계가 존재하고, 이 관계를 기반으로 ...
3부. 성능 최적화: N+1 쿼리와 인덱싱 전략 시리즈 되짚기 1부에서는 트랜잭션을 왜 짧게 가져가야 하는가를 InnoDB 내부(Undo/Redo/WAL/fsync/MVCC)와 락 메커니즘, Spring 전파(REQUIRES_NEW)까지 내려가며 설명했습니다. 2부에서는 Webhook 처리와 조정(Reconciliation) 을 통해 PG와 내부...
1부. 트랜잭션 설계와 멱등성 보장 시리즈 구성 이 글은 결제 시스템을 실제로 구현하면서, 설계가 왜 그렇게 될 수밖에 없었는지를 설명하며 연재해 나가려 합니다. 결제 시스템은 보통 코드만 보면 단순해 보입니다. Payment 상태 바꾸고, PG(PSP) 승인 API 호출하고, 결과 저장하면 끝처럼 보입니다. 그런데 운영 환경에서 진짜 문제는 성공...
저희의 핵심 요구사항은 외부 PG사(Payment Gateway) 를 활용해 안정적인 결제 시스템을 제공하는 것입니다. 특히 보안 및 전자금융거래법, 개인정보보호법 등 규제 준수를 위해 카드 번호 등 민감 정보는 절대 시스템에 저장하지 않고 PG사에 위임해야 했습니다. 내수 서비스이므로 통화는 KRW(원화)로 단일화했습니다. 또한 결제는 사용자 계정...
안녕하세요 🫠 이번에는 부끄럽지만 처음으로 Spring boot 를 활용한 백엔드 개발을 무사히 마치고 작성했던 회고를 메모장에만 보관해두고 있다가 슬쩍 올려보고자 합니다 그동안 메모장에 봉인해두고 살다가 갑자기 올리는 이유는, 뭐든 초심을 지키면서 내가 처음에 의도했던 방향대로 나아가는 건 어렵기 때문입니다. 처음 개발을 시작했을 때, 잘하는 사...
안녕하세요! 😊 요즘 일상 블로그도 안쓰기도 하고 기왕이면 최대한 의미있게 쓰고 싶다는 생각에 개발 블로그 쓰기 시작하는 데에도, 완성하는 데에도 오래 걸려서 정말 오랜만에 블로그를 쓰러 앉았는데요! 이전 장애인 취업 지원 플랫폼 개발에서, 모놀리식 구조를 MSA로 변경하기로 하면서 하나의 이슈 사항 중 하나가, 호기롭게 grpc 도입을 추진했지만 ...
안녕하세요! 이번에 [2024 SKT-하나금융그룹 TECH4GOOD] 에 (강제) 참여하게 되면서 1박 2일로 짧게 개발을 진행하게 됐는데요! 비록 결과는 아쉬웠지만, 내가 짧은 시간 안에 이 정도의 아웃풋을 낼 수 있는 사람이구나를 알 게 되었고 또 기획적으로 이런 부분이 아쉬웠구나 등을 느낄 수 있어서 그럼에도 뜻 깊은 시간이었습니다 개발을 ...
안녕하세요! 그동안 개발 기술 블로그에 정착하지 못 하고 있었는데요 개발 기술 블로그를 고민하던 도중 Github Pages 를 이용한 블로그 만드는 법을 발견하고 진행하게 되었는데, 오늘은 이 경험을 토대로 Github 블로그 만드는 방법 및 Google Adsense 및 Google Analytics 연결에 대해 작성해보겠습니다. 🙇🏻♀️ G...
안녕하세요, SYF Web 팀 인턴 정다연 입니다. 🙇🏻♀️ Hello Cocone 작업 중 서버에 log 로만 error message 를 남길 뿐, Front 에 Error Message 를 정확하게 넘겨주지 않아 error 발생 시 log 를 항상 확인해야 하는 번거로움이 있어 Error Response 관련 여러 테스트를 진행하게 되었습...