Skip to content

Instantly share code, notes, and snippets.

@ruseel
Last active October 24, 2016 06:24
Show Gist options
  • Save ruseel/c8c2e1306965386b33b6c93bd1eb5ba3 to your computer and use it in GitHub Desktop.
Save ruseel/c8c2e1306965386b33b6c93bd1eb5ba3 to your computer and use it in GitHub Desktop.

가끔씩 무언가를 만들 때면 대체 용량(problem size, latency, throughput) 을 어디까지 처리하도록 하는 것이 좋을까, 내가 처한 상황에서 적절한 것인가 고민스러울 때가 많습니다.

그 부분에 대해서 Jeff Dean이나 Louis Von Ahn 이 말하는 것을 들어본 적이 있는데 대충 기억나는 대로 적어보면, Louis Von Ahn은 한 인터뷰에서 https://www.youtube.com/watch?v=vafLtAoIYoE "학부때 석사과정에서 한 교수님이 사이즈가 커지면 원래 생각하던 거랑 전혀 다른 구조가 필요해. 그리고 그것을 먼저 상상하기는 힘들어. 게다가 사이즈가 작을 때 필요한 구조랑 클 때 필요한 구조랑 전혀 달라. 라는 이야기를 들었을 때 그래도 나는 미리 예상해서 잘 만들 수 있을거야 라고 생각했는데, 몇 년 지나고 나서 보니 그 이야기가 참 맞는 것 같다"고 한 적이 있습니다.

Jeff Dean은 2010년도에 학부생을 상대로 한 강연에서 1998년도부터 2010년까지의 경험을 시간순대로 설명하고 거기서 얻은 정리된 교훈을 알려주는데 여기서도 "디자인을 할 때 ~5x ~50x 에 대해서 고려하는 것은 적절하지만 ~100x 에 대해서는 전혀 다른 구조가 필요하니 그러지 마셈"이라고 이야기 했던 적이 있습니다.

Building Software Systems At Google and Lessons Learned https://www.youtube.com/watch?v=modXC5IWTJI

아마 Jeff Dean이 말하는 ~5x ~50x와 ~100x는 1000만건의 문서를 검색하는 문제를 해결할 때와 10억건의 문서를 처리할 때 아주 다른 아키텍쳐가 필요하다는 말일 겁니다. 그래도 비디오에 여러가지 도움이 되는 말들이 많았습니다. 강추합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment