지인 추천으로 읽게 된 책으로, 엔지니어로써 교훈과 마케팅, 연봉, 건강, 은퇴, 마음 문제, 업무 문제 등등 여러 가지 카테고리로 많은 이야기를 해주는 책이다. 개인적으로 울림이 있는 내용들이 있어서 좋았다. 앞으로 개발자로 살아가기 위해 어떤 생각을 하면서 살아야 할지 알게 된 책이다. 총 74개의 chapter 있는데 그 중에서 마음에 들었던 부분만 내용을 추려서 정리했다. 강연, 강의 그리고 발표사람들을 만나고 자신을 마케팅할 수 있는 효과적인 방법으로 강연이나 강의를 들 수 있다. 다른 매체에 비해 작은 규모로 이루어지긴 하지만, 청중 앞에 서서 직접 그들에게 이야기하며 가장 강한 인상을 남기는 방법이기도 하다. 어디서, 어떻게 경험을 쌓을 수 있을까? 시작하기에는 사내 발표가 좋다. ..
이 글에서는 동시에 많은 사용자가 접속하는 상황에도 대응 가능한 "선착순 이벤트" 시스템 설계 경험을 공유해 드리고자 합니다. 기술 스택 : Java 17, Sprint boot 3, Redis, RabbitMQ, AWS, Mysql 8, Pinpoint 3, nGrinder1. 들어가며선착순 이벤트는 무료로 이력서 피드백을 제공하는 사이트에서 이벤트를 진행했습니다. 선착순 이벤트 요구사항은 다음과 같습니다.1. 이벤트 기간 동안, 매일 특정 시간 오픈하며 총 신청 인원을 한정한다. 2. 신청 인원은 당일 정해진 양을 초과해서는 안된다. 3. 신청은 1인당 1번만 신청할 수 있다. 2. 동시성 이슈 문제RDB에 의존하여 수량 체크를 하면, 동시성 이슈로 인하여 선착순 신청 인원이 초과될 위험이 있었습..
nGrinder로 동시 요청 성능 테스트를 하던 중, 예상보다 성공 수가 적어 실시간으로 성공/실패 상황을 모니터링할 수 있는 도구를 찾던 과정에서 Pinpoint 알게 되어, 이번 글에는 Pinpoint에 대해 알아보았던 것과 이를 운영 서버에 적용하는 과정을 공유하려고 합니다. 1. Pinpoint 란?Pinpoint는 네이버에서 만든 APM (Application Performance Management) 도구로, 분산된 애플리케이션의 성능을 모니터링하고 분석하는 데 사용됩니다. 실시간으로 애플리케이션의 서버맵, 실시간 활성 스레드 차트, 요청/응답 차트, API 호출 상세 기록, 서버의 상태성능을 추적하고, 문제 발생 시 그 원인을 쉽게 찾을 수 있습니다. 2. Pinpoint 구성 ..
개인 프로젝트를 운영하던 중 예기치 못한 문제가 발생하여 원인 분석과 해결하는 과정을 정리해보았습니다. 개발 환경 : AWS EC2 프리티어(ubuntu 24), Nginx 1.24.0, Sentry1. 문제 시작개인적으로 운영하는 사이트에서 백엔드 API 요청 시 500 에러가 발생하였습니다. (어라? 어제까지는 잘 됐는데..) 2. 원인 분석일단 원인을 찾기 위해 모니터링 툴인 Sentry 들어가서 이슈를 확인했는데 새로운 이슈는 없었습니다.그 다음, 운영 서버에 들어가서 백엔드 프로젝트에 에러 로그를 보았습니다.하지만 에러 로그에는 기록이 남겨있지 않았습니다. 요청 로그에도 요청한 기록이 없었습니다. 백엔드에 문제가 아니라 "다른 문제일 수도 있겠구나" 생각이 들어서 Nginx 로그를 ..