목록2025/06 (3)
Just Do IT!

캠프가 끝난 뒤 계속 이어졌던 SODA 프로젝트가 어제로 끝이 났다.캠프가 5/16에 끝났고 어제가 6/19....거의 한 달 가량을 더 진행했다.사실 중간중간 개인 일정이 좀 있었어서 캠프 때처럼 풀로 진행하진 않았지만 그래도 유의미한 성과가 있어서 다행이다. 부하 테스트 진행 테스트 환경 ec2, RDS 세팅 → 더미데이터삽입 → 스크립트 작성 → 부하테스트 → 성능 개선(쿼리최적화/튜닝, 레디스 적용, 서버 scale-out 등) → 부하테스트 → 성능 개선 (반복) 이 순서대로 부하 테스트를 진행했다.사실 나는 이렇게 부하 테스드, 성능 개선하는 경험이 이번이 처음이 많이 배웠다. 테스트 하기 위해 새로운 서버를 세팅하고, 더미 데이터도 엄청나게 많이 넣었다. 테스트 환경 세팅과 더미 ..

성능 개선 전 로그 분석최근 질문 목록 조회 (/articles/my) API 실행 시 로그를 파악하면 아래의 기능들이 있었다.인증 및 사용자 정보 조회JWT 인증 후 auth_id 기반으로 Member 조회비교적 빠름질문 목록 조회특정 member_id가 작성한 삭제되지 않은 질문을 createdAt 기준으로 3개 가져옴article, stage, project 테이블 join쿼리 자체가 크게 느리지는 않음질문 전체 개수 조회member_id가 작성한 삭제되지 않은 질문 전체 개수 조회article, stage 테이블 join쿼리 자체가 크게 느리지는 않음⇒ 쿼리 실행 시간 외 다른 부분에서 시간이 소요되고 있음을 파악할 수 있었다.그래서 각 단계 별 실행 시간을 측정하여 병목지점을 찾으려고 로그를 추..
EXPLAIN이란?실행 계획DB 서버가 어떤 쿼리를 실행할 것인가 알고 싶을 때 사용하는 명령어DB에는 옵티마이저라는 엔진이 존재하는데, 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진이다.옵티마이저는 개발자가 SQL문을 작성하면 바로 쿼리문을 실행하는 것이 아닌, 쿼리문을 어떻게 실행시킬지에 대한 여러 실행 계획을 세운 뒤, 예상 비용을 고려해 가장 효율이 좋은 실행 계획으로 쿼리를 실행시키는 방식으로 수행된다.EXPLAIN은 옵티마이저의 실행 계획이다. 실행 코드는 매우 간단하다EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ... 이렇게 명령어를 입력해준 다음, 실행 결과를 분석하여 성능을 최적화할 수 있다. MYSQL E..