2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #26 DB 로직 최소화

2023. 10. 6. 13:08ㆍ[백엔드] 기술면접
반응형

DB 로직 최소화

 

 

적절한 캐싱 사용

  • 빈번하게 액세스하는 데이터를 메모리에 캐싱하여 반복적인 DB 쿼리를 피할 수 있다. Redis나 Memcached와 같은 인메모리 캐시 솔루션을 사용할 수 있다.

인덱싱 및 쿼리 최적화

  • 데이터베이스에서 쿼리 성능을 향상시키기 위해 인덱스를 적절하게 사용하고, SQL 쿼리를 최적화하고 필요한 필드만 가져오도록 쿼리를 설계한다.

배치 처리

  • 대량의 데이터 작업을 처리할 때는 실시간 요청이 아닌 배치 처리 작업을 고려한다.
    이렇게 하면 실시간 트래픽에 부하를 주지 않는다.

데드라인 및 타임아웃 설정

  • 장기 실행되는 쿼리나 작업에 대한 타임아웃 및 데드라인을 설정하여 시스템 안정성을 유지한다.

데이터 정규화 및 데-normalization

  • 데이터 정규화는 데이터 중복을 최소화하는 데 도움이 되지만, 때로는 데-normalization(비정규화)를 고려하여 데이터 검색을 더 빠르게 만들 수 있다.

NoSQL 데이터베이스 고려

관계형 데이터베이스 이외에 NoSQL 데이터베이스를 고려하여 데이터 모델을 더 유연하게 다룰 수 있다.

데이터 파티셔닝

  • 대용량 데이터베이스 테이블을 파티션으로 나누어 쿼리 성능을 최적화한다.

트랜잭션 관리

  • 트랜잭션을 필요한 경우에만 사용하고, 긴 트랜잭션을 피하며, 격리 수준을 적절히 설정한다.

적절한 데이터베이스 선택

  • 프로젝트의 요구 사항에 가장 적합한 데이터베이스 시스템을 선택한다.
    관계형 데이터베이스, NoSQL, 그래프 데이터베이스 등을 고려할 수 있다.

백엔드 캐싱 및 프론트엔드 최적화

  • 백엔드에서 쿼리 결과를 캐싱하고, 프론트엔드에서 필요한 만큼 데이터를 한 번에 로드하여 불필요한 요청을 줄인다.

모니터링과 프로파일링

  • 시스템의 성능을 모니터링하고, 병목 현상을 식별하고, 프로파일링 도구를 사용하여 성능 문제를 해결한다.

더 나은 하드웨어 및 스케일링

  • 필요한 경우 더 강력한 하드웨어를 구입하고, 수직 및 수평 스케일링을 통해 시스템을 확장한다.

요약


DB 로직 최소화를 위해 캐싱, 쿼리 최적화, NoSQL 고려 등을 고려하고, 데이터 파티셔닝과 적절한 데이터베이스 선택을 고려하여 성능을 최적화한다.또한 모니터링과 프로파일링을 통해 성능 문제를 식별하고, 하드웨어 및 스케일링을 개선하여 시스템을 최적화한다.
반응형