보호되어 있는 글입니다.
서비스의 진입점은 사용자 요청의 시작점을 의미한다. 진입점에서 응답 속도가 느리면 사용자 경험에 부정적인 영향을 미칠 수 있다. 예를 들어, 로그인 페이지의 응답이 느리거나 페이지 로딩 시간이 길어지면, 사용자는 불편을 느끼고 서비스 이탈할 가능성이 높아진다. 진입점의 응답이 지연되는 문제올클 서비스의 진입점은 로그인 API다. 종종 운영 중인 서비스에 로그인하면 평균 3초를 기다리는 상황이 발생했다. 특히, 서버 배포하거나, 일정 시간 동안 사용자가 없었던 유휴 상태에서의 첫 번째 요청에서만 이 현상이 발생했다. 3초의 시간을 기다리는 동안 머릿 속에 여러 생각이 들었다. '서버가 꺼졌나?', 'DB에 문제가 생겼나?' 개발자인 나조차 문제가 생긴 게 아닌지 의심하게 된다. 이러한 로그인 API의 ..
올클 서비스는 학교 API를 사용하여 사용자가 학교 구성원임을 인증받는다. 사용자가 처음 서비스에 진입하여 로그인 API를 호출하면 올클 서버는 학교 API에 요청을 보낸다. 사용자에게 서비스를 보이는 첫인상인 만큼 로그인 API를 빠른 응답 속도로 제공하고 싶다. 가장 효과적으로 응답 시간을 줄이는 방법은 외부 API의 응답 시간을 줄이는 것이다. 외부 API를 호출하면 가장 긴 시간이 걸리는 부분은 어디일까? 외부 API 호출에서 응답 시간 분석외부 API를 직접 호출해 보았다. 테스트에는 curl 명령어와 --verbose 옵션을 사용하여 상세한 응답 시간을 분석했다. 민감한 정보는 모두 가렸다. ➜ curl -v -o /dev/null -s -w "HTTP Status: %{http_code..
새로운 기능을 추가하고 배포한지 일주일이 지났습니다. 문득, 새로 추가한 기능을 사용자가 잘 사용하는지 궁금했습니다. 이에 대한 기준은 새로 추가한 API 호출이 빈번하게 일어나는가 입니다. API 별 호출 횟수를 바탕으로 쉽게 파악할 수 있습니다. API 별 호출 회수는 모니터링하고 있지 않았습니다. Spring Actuator는 사용하고 있었기에 메모리 상에 데이터는 존재할 거란 희망을 품었습니다. 메모리 상 어딘가에 존재하는 이진수를 찾기 위해 jxm을 공부했지만 러닝 커브가 높았습니다. 공부하던 중에 서버가 내려간다면 영영 찾을 수 없게 됩니다. 메모리를 통째로 덤프 떠서 분석할까 고민했지만, 문득 좋은 방법이 떠올랐습니다. Nginx 로그 파일 발견EC2 내에서 Nginx로 API 서버에 리..
저는 불과 어제, 빼앗겼습니다. 작은 서비스를 운영하고 있습니다. 올클이라는 서비스로 수강 신청을 연습할 수 있는 서비스입니다. 교내 학우들을 대상으로 서비스합니다. 일 최대 6000명의 사용자가 있었고, 가입자 수는 3천 명 정도입니다. 올클의 탄생부터 지금까지작년, 학교 서버 해킹 사태로 수강 신청 시스템 보완이 강화되었습니다. 강화된 만큼 수강 신청 절차는 복잡해졌고, 이 페인 포인트를 직접 겪은 저는 수강 신청을 연습하고자 서비스를 만들었습니다. 당시 개발 경험이 없었습니다. Spring Boot와 Thymeleaf, 그리고 약간의 자바스크립트를 곁들여 정적인 페이지를 서비스했습니다. 굉장히 부족한 서비스였죠. 서비스라고 하기에도 부끄러웠습니다. 그래도 개발 처음 시작한 사람이 어떻게든 만..
이전 블로그에 작성했던 글을 옮깁니다. 본 작성일은 2023.08.20 입니다. 세종대학교 수강신청 연습 서비스 올클(allcll)을 개발하고 운영한 경험을 정리했습니다. 올클은 세종대학교 수강 신청을 연습하는 사이트입니다. 2023년 8월 15일에 서비스를 시작했고 이 글을 작성하는 시점으로 서비스를 6일째 운영하고 있습니다. 이 글에서는 실제로 사람들이 사용하는 서비스를 처음 기획, 개발하고 배포 및 유지보수를 진행한 경험 등 프로젝트 전반에 대한 이야기를 간단하게 정리합니다. 개요때는 7월 말, 방학 중에 간단한 프로젝트를 하고 싶었습니다. Spring boot, thymeleaf를 공부한 직후로, 실제로 개발하며 해당 기술에 대해 깊이 이해하고 싶었습니다. 프로젝트 주제를 고민하던 중, ..