leesin1040.log
로그인
leesin1040.log
로그인
[TIL] 대용량 트래픽, ORM
Cherry Jin
·
2024년 1월 29일
팔로우
0
0
sparta_내배캠
목록 보기
45/53
대용량 트래픽 발생시 대응 방법
스케일아웃
수평적 확장 : 서버의 수를 증가시켜 분산시킨다.
로드밸런서를 사용하여 트래픽을 여러 서버에 분산시킬 수 있다.
캐싱
자주 요청되는 데이터를 캐시에 저장하여 빠르게 제공한다.
데이터베이스 부하를 감소시키고 응답 시간을 단축시킨다.
CDN 사용
정적 자원들을 CDN(Content Delivery Networt)를 통해 제공
데이터베이스 최적화
쿼리 최적화
인덱싱 - 자주 조회되는 컬럼에 인덱스 추가하여 검색속도 향상
분산 데이터베이스 시스템 사용
Join 최적화
데이터 정규화 및 비정규화
배치 처리 Batch
자원 모니터링 및 자동 확장
시스템 자원 사용량을 지속적으로 모니터링
필요에따라 자동 확장 인프라 구축
ORM 사용시 쿼리 복잡도 해결 전략
쿼리 최적화
ORM을 사용하더라도 쿼리의 성능을 직접 분석하고 최저화하여야한다.
실행 계획을 확인하고 필요없는 조인이나 데이터 요청을 제거한다.
ORM과 SQL 병행
복잡하거나 성능이 중요한 쿼리의 경우 ORM 대신 순수 SQL 쿼리 사용이 효율적일 수 있다.
N+1 문제 해결
ORM 사용시 흔히 발생하는 성능이슈
한번의 쿼리로 N개의 연관 객체를 가져오는 것이 아니라 N번의 쿼리가 실행되어 N+1번의 쿼리가 발생하는 현상.
이 문제는 이번 프로젝트에 이미 일어나고 있는 것 같음.
게시글과 댓글이 있는 경우, 각 게시글에 대해 댓글을 가져오는 별도의 쿼리가 실행되어 게시글 10개를 조회하는 1번의 쿼리 + 댓글 가져오는 10번의 추가 쿼리 실행하는지? 확인 필요
Cherry Jin
풀스택이 되버린 주니어 개발자
팔로우
이전 포스트
[TIL] Value Object
다음 포스트
[TIL] GET, POST
0개의 댓글
댓글 작성