이번 챕터를 시작하며 꼭 해내고 싶었던 목표
장애 원인 파악, 개선을 통한 성능향상 tool로 비교하기
이번 챕터를 마무리하며 가장 기억에 남는 성취
주문시 재고차감 데드락 문제를 해결한 것. 여러 개의 상품을 동시에 주문하는 경우, 트랜잭션이 자신의 자원을 가지고 있는 상태에서 다른 트랜잭션이 점유한 자원을 계속 대기하고 있으면 데드락이 발생합니다. 이 경우 해결하는 다양한 방법이 있는데 상품의 순서를 id 기준으로 정렬하는 것만으로도 데드락을 회피할 수 있습니다. 데드락이 어떤 문제이고 언제 발생하는지 시간의 흐름에 따른 그림을 그려보면서 확실히 깨달을 수 있었습니다.
이번 챕터에서 반드시 이뤘으면 했는데 이루지 못한 것(아쉬운 점)
k6에 influxdb를 함께 사용하여 그라파나 대시보드를 만들지 못한 것. k6의 결과 지표를 단순하게 숫자로 보기보다, 대시보드에서 그래프를 통해 확인하면 훨씬 좋을 것이라고 생각했습니다. influxdb를 연동하는게 필요한데, 프로메테우스와 그라파타를 연동했지만 influxdb까지 연동하여 대시보드를 그리는 것은 못했습니다. k6가 가지고 있는 결과들(p(50), p(99), 요청 성공과 실패 비율 등등)을 그래프로 확인하지 못해서 아쉬웠습니다.
내가 강화해야 할 강점 중 가장 중요하다고 생각하는 한 가지
문서를 작성하고 다른 사람들에게 공유하기. 좋은 기술과 문화, 새롭게 발견한 점은 다른 사람들에게 공유하고 서로 성장하는 가치가 중요하다고 생각합니다. 내가 선택한 기술에 근거를 가지고 before와 after 성능을 비교하여 설득력을 높였습니다. 최대한 처음 읽는 사람도 알아보기 쉽도록 글을 쓰려고 노력합니다. 내가 어디에서나 문서 작성을 귀찮아하지 않고 오히려 공유를 기뻐하는 자세를 유지하려고 노력합니다.
내가 개선해야 할 개선점 중 가장 중요하다고 생각하는 한 가지
docker-compose를 잘 활용하기. kafka, k6, prometheus, grafana 등등 대부분은 로컬에 설치해서 테스트했습니다. docker에 모두 한번에 띄워서 테스트하면 좋으나 당장 모든 것을 띄우는 설정을 제대로 할수가 없어서 일부만 적용했습니다. 단기간에 환경 셋팅 및 개발과 결과까지 테스트하려니 가장 우선순위가 높은 것을 고려해 모든 tool의 docker-compose 설정을 포기했습니다. 작동원리를 조금 더 공부하고 적용해볼 예정입니다.
'회고' 카테고리의 다른 글
[항해 플러스 백엔드-9주차] kafka 맛보기 (0) | 2024.11.26 |
---|---|
[항해 플러스 백엔드-8주차] index, 대규모 서비스 설계 (0) | 2024.11.26 |
[항해 플러스 백엔드-7주차] Redis 활용 (0) | 2024.11.12 |
[항해 플러스 백엔드-6주차] 이커머스 동시성 제어 (0) | 2024.11.02 |
[항해 플러스 백엔드-5주차] 이커머스 고도화 (2) | 2024.11.02 |