[대규모 서비스를 지탱하는 기술] Chapter 05. 대규모 데이터 처리 실전 입문

Falco·2023년 9월 24일
0
post-thumbnail

목차

대규모 데이터 처리 실전 입문

용도 특화형 인덱싱

인덱스와 시스템 구성

대규모 데이터처리의 많은 경우에서 RDBMS로는 한계가 있습니다. 이를 극복하기 위해서 배치 처리르 통해 RDBMS에서 데이터를 추출해 별도의 인덱스 서버와 같은 것을 만들고, 이 인덱스 서버에 웹 어플리케이션에서 PRC(Remote Procedure Call)을 활용해 액세스 하는 방법을 사용할 수 있습니다.

요약하자면 배치 처리를 통해 검색용 역 인덱스를 만들어 활용하자는 것입니다.

용도특화형 인덱싱

이런 외부 인덱스 서버를 만드는 방식을 하테나에서는 용도특화형 인덱싱이라고 합니다.

그 예시로 자연언어처리와 같은 처리를 미리 한 다음 인덱스를 만들어두면 RDBMS로 데이터를 전부 순회하지 않아도 순식간에 검색할 수 있습니다.

  • 검색용 역 인덱스
  • 키워드 링크용 Trie

이론과 실전 양쪽과의 싸움

요구되는 기술적 요건 규명하기

실제 개발을 진행하다보면 웹 어플리케이션의 세계는 이론과 실전 양면이 대립하는 상황이 일어나게 됩니다.

저자가 말한 RDBMS는 이후 나중에 분할하게 됨으로 JOIN을 사용하지 않는 것과 같은 방법은 흔치 않은 배드노하우 입니다. RDB를 사용하는 본질적인 개념을 부정하면서도 이는 실전적인 노하우를 포함하고 있습니다.

결국에는 이론과 실전 그 중간에서 알잘딱딸센하여 사용해야 합니다.

서비스가 작을 때는 괜찮았지만, 커지고 거대화 되가면서 잔재주 수준의 테크닉만으로는 커버할 수 없는 것이 많습니다. 이 시점에서 필요한 것은 고전적이고 본질적인 이론입니다.

컴퓨터로써의 문제를 도출하는 길을 발견하는 것

  • 키워드를 기반으로 링크하고 싶다.
  • 카탈로그 샆품에 대한 카테고리를 보여주되, 중복은 없이 보여주는 것

라는 실현하고자 하는 것은 머릿속에 있지만, 이를 어떻게 구현할지는 쉽게 이해할 수 없습니다.

이때 필요한 건 결국, 어떤 알고리즘/데이터 구조로 무엇인가를 실행할 때 해당 알고리즘의 데이터 구조를 사용해서 어떤 게 가능한지를 어느 정도 머릿속에 넣어둬야 한다는 것입니다. 이론적인 부분만 아니라 응용을 위한 이치를 어느 정도 익혀두는 것도 중요합니다.

profile
강단있는 개발자가 되기위하여

0개의 댓글