개발관련 도서/대규모 서비스를 지탱하는 기술

4. 대규모 데이터 처리 실전 입문(#대규모 서비스를 지탱하는 기술)

prden 2021. 5. 8. 09:46

1. 용도 특화형 인덱싱 

대규모 데이터를 다룰 경우  RDBMS로는 한계가 있다. 따라서 배치 처리로 RDBMS에서 데이터를 추출해서 별도의 인덱스 서버와 같은 것을 만들고 이 인덱스 서버에 웹 애플리케이션에서 RPC(Remote Procedure Call) 등으로 액세스 하는 방법을 사용한다. 

 

1) RPC와 웹 API

src= 대규모 서비스를 지탱하는 기술 p119

위 그림에서 DB에서 정기적으로 corn 등으로 데이터를 추출해 2의 인덱스 서버로 넘긴다. 인덱스로는 2에서 검색용 역 인덱스를 만들어준다. 그러면 AP서버에서는 인덱스를 가지고 있는 2인덱스 서버에 RPC로 액세스 한다. 요즘은 RPC보다 웹 API라고(JSON이랑 http로 처리) 부른다. 

AP서버에 인덱스를 직접 저장하지 않는 이유는 AP서버에 충분한 메모리가 탐재되어있지 않는 경우가 많아서 이다. 또한 AP서버 아키텍처 면에서 볼 때 커다란 검색 인덱스를 여러 프로세스에서 같이 사용하도록 구성하는 것은 적합하지 않다. 

 

2) 용도 특화형 인덱싱

-위에 설명한 바와 같이 데이터를 정기적으로 뽑아내고 뽑아낸 데이터에서 데이터 구조를 구축(검색용 역 인덱스, 키워드 링크용 Tire 등(7장 +a)) 구조화 데이터를 저장한 서버를 C++로 개발, RPC로 액세스

 

2. 대규모 웹 애플리케이션에 있어서 이론과 실전

결론은 이론과 실전 균형을 잘 맞춰서 서비스를 실행해나가야 한다. 이론을 너무 추구해 논문을 쓸 정도의 지식을 갖추었다고 해도 막상 구현하려고 하면 구현하기 위해 필요한 여러 배드 노하우가 표출되고, 이론 없이 단순히 테크닉만으로 그때그때 문제만 해결해 나가면 서비스가 점점 커지며 그런 단순한 테크닉 만으로 해결할 수 없는 시기가 온다. 따라서 이론과 실전 균형 있게 지식을 쌓아나가야 한다.