올클 서비스는 학교 API를 사용하여 사용자가 학교 구성원임을 인증받는다. 사용자가 처음 서비스에 진입하여 로그인 API를 호출하면 올클 서버는 학교 API에 요청을 보낸다. 사용자에게 서비스를 보이는 첫인상인 만큼 로그인 API를 빠른 응답 속도로 제공하고 싶다. 가장 효과적으로 응답 시간을 줄이는 방법은 외부 API의 응답 시간을 줄이는 것이다. 외부 API를 호출하면 가장 긴 시간이 걸리는 부분은 어디일까? 외부 API 호출에서 응답 시간 분석외부 API를 직접 호출해 보았다. 테스트에는 curl 명령어와 --verbose 옵션을 사용하여 상세한 응답 시간을 분석했다. 민감한 정보는 모두 가렸다. ➜ curl -v -o /dev/null -s -w "HTTP Status: %{http_code..
보호되어 있는 글입니다.
우아한테크코스6기 동동-개문탐의 11주차 활동으로 『코드 리뷰는 스포츠다』를 읽고 정리한 내용입니다. 코드 리뷰로 얻는 이점코드 베이스의 품질을 일정 수준 이상으로 유지할 수 있다.코드 작성 단계에서 놓친 버그를 찾을 수 있다.코드 리뷰가 불편할 수 있는 이유자신의 코드가 비판 받는 것을 두려워한다.타인의 코드를 비판하는 것을 두려워한다.코드 리뷰에 드는 비용이 크다.코드 리뷰에 몰입할 수 있는 장치스포츠: 펜싱득점으로 경쟁한다. 득점은 코드의 헛점을 찾아 내는 것이다.공격: 리뷰어태도친절하고 예의를 갖추며 텐션을 높이기 위해 의도적으로 노력해야 한다.칭찬 꼭 남기기, 텍스트로 활기찬 척하기최소한의 힘만으로 약점만 정확하게 타격해야 한다.개인이 강점을 살리면서 기여할 수 있는 부분을 고민해야 한다.내가..
새로운 기능을 추가하고 배포한지 일주일이 지났습니다. 문득, 새로 추가한 기능을 사용자가 잘 사용하는지 궁금했습니다. 이에 대한 기준은 새로 추가한 API 호출이 빈번하게 일어나는가 입니다. API 별 호출 횟수를 바탕으로 쉽게 파악할 수 있습니다. API 별 호출 회수는 모니터링하고 있지 않았습니다. Spring Actuator는 사용하고 있었기에 메모리 상에 데이터는 존재할 거란 희망을 품었습니다. 메모리 상 어딘가에 존재하는 이진수를 찾기 위해 jxm을 공부했지만 러닝 커브가 높았습니다. 공부하던 중에 서버가 내려간다면 영영 찾을 수 없게 됩니다. 메모리를 통째로 덤프 떠서 분석할까 고민했지만, 문득 좋은 방법이 떠올랐습니다. Nginx 로그 파일 발견EC2 내에서 Nginx로 API 서버에 리..
이전 블로그에 작성했던 글을 옮깁니다. 본 작성일은 2023.12.06 입니다. 개요오랜만에 코딩테스트를 응시했습니다. 알고리즘 공부를 관둔 지 1년 정도 흘렀는데요, 하루하루 실력에 하락을 느끼고 있었습니다. 그래서 어려운 코테로 분류되는 카카오 코테를 응시하고 실력을 가늠하고 싶었습니다. 결과는 5솔로 모두 해결했습니다. 주관적으로 이번 코딩테스트는 쉬웠습니다. 이전에 카카오 공채 코테를 응시한 적이 있는데, 구현 난이도가 어려운 문제가 다수 출제됐습니다. 그때는 7개의 문제로 구성되어 있었는데, 이번엔 5개로 시간도 널널했습니다. 다만, 해결하는 과정에서 이전보다 실력이 떨어졌다는 생각이 여러 번 들었습니다. 응시 환경에서는 아무래도 긴장할 수밖에 없지만,, 사실 긴장하지 않았습니다. 그럼에도 1..
저는 불과 어제, 빼앗겼습니다. 작은 서비스를 운영하고 있습니다. 올클이라는 서비스로 수강 신청을 연습할 수 있는 서비스입니다. 교내 학우들을 대상으로 서비스합니다. 일 최대 6000명의 사용자가 있었고, 가입자 수는 3천 명 정도입니다. 올클의 탄생부터 지금까지작년, 학교 서버 해킹 사태로 수강 신청 시스템 보완이 강화되었습니다. 강화된 만큼 수강 신청 절차는 복잡해졌고, 이 페인 포인트를 직접 겪은 저는 수강 신청을 연습하고자 서비스를 만들었습니다. 당시 개발 경험이 없었습니다. Spring Boot와 Thymeleaf, 그리고 약간의 자바스크립트를 곁들여 정적인 페이지를 서비스했습니다. 굉장히 부족한 서비스였죠. 서비스라고 하기에도 부끄러웠습니다. 그래도 개발 처음 시작한 사람이 어떻게든 만..
Real MySQL 8.0을 읽고 저의 뇌구조에 맞게 정리한 내용입니다. 목차언두 로그가 어떻게 사용되는지언두 테이블스페이스 관리언두 로그로 발생할 수 있는 문제발생하는 문제를 MySQL 8.0 버전에서 해결언두 로그 모니터링하기읽으면서 생긴 질문 언두 로그가 어떻게 사용되는지DML(INSERT, UPDATE, DELETE) 실행으로 데이터가 변경되기 전에 이전 버전 데이터를 백업한다. 백업된 데이터를 언두 로그라고 한다. 트랜잭션 보장트랜잭션이 롤백되면 트랜잭션 도중 변경된 데이터를 변경 전 데이터로 복구해야 한다.이때 언두 로그에 백업해둔 이전 버전의 데이터를 이용해 복구한다. 격리 수준 보장특정 커넥션에서 데이터를 변경하는 도중 다른 커넥션에서 데이터를 조회하는 경우에, 트랜잭션 격리 수준에..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
어제(6월 27일) 대규모 시스템 설계 스터디를 종료했습니다! 🎉🎉 약 1달 간의 스터디가 잘 마무리되어 뿌듯합니다. 우테코 레벨1부터 여러 스터디에 참여했지만, 이번 스터디는 여러 면에서 인상적인데요. 제가 시작하기도 했고, 주제도 재밌었고, 우테코에서 배운 가치를 녹여내어 그런 것 같습니다. 대학생 때부터 여러 스터디에 참여했지만 스터디의 마침표를 찍는 것은 참 어려운 것 같습니다. 이번 경험을 기록으로 남겨 다음 스터디에 좋은 피드백이 되었으면 좋겠습니다. 그럼 그동안의 여정을 간단하게 정리해 보겠습니다. 어떤 스터디를, 왜 하게 되었는지대규모 시스템 설계 스터디를 했습니다. 우리의 나침반은 「가상 면접 사례로 배우는 대규모 시스템 설계 기초」라는 책이었습니다. BE 크루 망쵸(저)와 리니..