2024년 5월 2주차 주간회고

 

 

애플리케이션 성능 향상

이번 주차는 인덱스와 캐시를 이용해 기존 애플리케이션의 성능을 높이는 것이 주요 목표였다.

 

애플리케이션의 성능을 높이기 위해서는 여러 가지 방법이 존재하겠지만 그 중 이번에는 DB의 성능 튜닝과 캐시를 이용하여 애플리케이션의 성능을 향상해보았다.

 

저번주와 마찬가지로 이번주도 인덱스의 대한 이해를 위해 Real MySQL8.0의 인덱스 챕터 부분을 읽고 시작한 게 매우 도움이 되었다.

그 중 DB 성능 튜닝의 핵심은 "어떻게 디스크 I/O를 줄이느냐가 관건"이라는 것을 배웠다.

 

디스크의 I/O를 줄이는 방법으로는 인덱스를 이용해 DB를 최적화하는 방법과 캐싱 방법이 존재한다.

 

인덱스

인덱스를 통한 효율적인 쿼리로 불필요하게 데이터에 접근하는 것을 줄일 수 있기 때문에, 인덱스에 대해 공부하고 현재 이커머스 서비스에서 발생할 수 있는 쿼리와 테이블을 분석하여 인덱스를 설계해 보았다.

 

https://seungjjun.tistory.com/334

 

[E-commerce] 쿼리 분석 및 인덱스 설계를 통한 성능 개선

인덱스(Index)인덱스는 책의 목차와 비슷하다고 생각하면 편하다.책의 목차를 보고 어디에 무엇이 있는지 바로 확인할 수 있는 것 처럼 인덱스도 바로 찾고자 하는 데이터를 찾을 수 있다. 목차

seungjjun.tistory.com

 

인덱스를 정확히 몰랐을 때는 인덱스가 조회 성능을 높여준다라는 것만 알고 있었기 때문에 처음에는 테이블의 대부분 칼럼에 인덱스를 걸어주면 좋아지는 거 아니야?라는 멍청한 생각을 했었다.

그런데 이번에 쿼리를 분석해 보고 어떤 칼럼에 인덱스를 거는 게 좋은지 공부해 보니 무지성으로 인덱스를 걸었다가는 오히려 성능이 떨어지겠다라는 것을 배웠고, 현재 나의 이커머스 서비스에서 인덱스를 거는 상황이 많지 않다는 것을 알게 되었다.

 

실제로 성능 테스트를 위해 1만 개의 데이터를 넣고 인덱스 적용 전과 후를 비교했을 때, 유의미하게 큰 차이는 없었지만 데이터 수가 적었기 때문이라고 생각하고 있다.

 

캐싱

인덱스를 이용해 성능 향상뿐만 아니라 캐시를 이용해 보았는데, 사실 캐시는 이전에 한번 해봤었던 경험이 있었다.

그런데 이전에 사용해 보았던 캐시는 무지성으로 "이렇게 이렇게 하면 캐시가 적용되더라~" 이런 느낌의 코드 구현만 했었는데, 이번에는 어떤 상황에 캐시를 적용해야 하는지와, 어떤 캐시 전략이 있고, 그래서 어떤 전략을 선택해야 하는지 등 상황에 맞게 고려해 보는 연습을 해보았다.

 

https://seungjjun.tistory.com/335

 

[E-commerce] 캐시를 통한 애플리케이션 성능 개선

Redis 캐시 읽기 전략Look Aside (Cache Aside)데이터를 조회할 때, 캐시에 저장된 데이터가 읽는지 확인하고 없으면 DB에서 조회하는 전략캐시에 장애가 생겨도 DB에서 조회하면 되기 때문에 캐시 장애

seungjjun.tistory.com

 

확실히 저번주와 이번주는 자신의 애플리케이션의 상황에 맞게 적합한 전략이나 기술을 선택하는 연습을 많이 했던 것 같다.

사실 이 부분이 가장 약했기 때문에 가장 힘든 부분이기도 했다. (이제껏 근거를 갖고 무언가를 선택하기보다는 책, 인강, 블로그 등등 이런 상황에서 이런 기술이나 전략이 좋다! 라는 것을 보고 적용했었다.)

 

그래서 이번 항해를 진행하면서 어떤 기술이나 전략 같은 것을 선택할 때는 그것을 선택하는 근거가 가장 중요하다는 이야기를 여러 번 들었고, 진행되는 과제도 근거 있는 선택을 하도록 역량을 키우는게 주요 포인트라는 느낌을 받아 최대한 노력했었다.

 

앞으로는 누군가 이걸 왜 사용했어? 같은 질문을 했을 때, 근거가 올바르지는 않더라도 근거를 제시할 수 있도록 연습을 꾸준히 해보자.

 

 

 

'성장이야기 > 주간회고' 카테고리의 다른 글

2024년 5월 1주차 주간회고  (0) 2024.05.04
2024년 4월 3주차 주간회고  (0) 2024.04.23
2024년 4월 2주차 주간회고  (0) 2024.04.13
2024년 4월 1주차 주간회고  (0) 2024.04.09
2024년 3월 4주차 주간회고  (4) 2024.03.30