# 분산에 관한 대화

> **교수**: 이렇게 해서 운영체제 세상의 마지막 부분인 분산 시스템에 도달하였네. 여기서 그렇게 많은 내용을 다룰 수는 없기 때문에 영속성이라는 파트 아래에서 분산 파일 시스템에 집중하여 살짝 소개하겠네. 괜찮겠지!

**학생**: 괜찮습니다. 그런데, 분산 시스템이 정확히 뭔가요, 훌륭하고 전지하신 교수님?

> **교수**: 좋아, 어떻게 전개 될지 이제 이미 알았을 테지만...

**학생**: 복숭아가 있나요?

> **교수**: 바로 맞췄네! 그런데 이번에는 자네에게서 아주 멀리 떨어져 있어서 복숭아를 얻으려면 상당한 시간이 필요하네. 그렇지만 아주 많아! 더 한 것은 복숭아가 가끔 썩을 때도 있다는 거야. 하지만 누군가가 복숭아를 한입 베어 물 때는 확실하게 좋은 맛을 누릴 수 있도록 하고 싶다는 거야.

**학생**: 갈수록 복숭아 예화가 잘 안 먹히는 것 같아요.

> **교수**: 힘을 내! 마지막이잖아, 그냥 해보자꾸나.

**학생**: 좋아요.

> **교수**: 그래서 어찌되었든, 복숭아는 잊어 버리자꾸나. 분산 시스템을 만드는 것이 어려운 이유는 여기저기에서 실패가 발생하기 때문이야. 메시지를 잃어버리기도 하고 기계가 멈추기도 하고, 디스크의 데이터가 손상되기도 하지. 이건 마치 세상이 자네를 상대하는 것과 같아!

**학생**: 그렇지만, 제가 분산 시스템을 늘 사용한다는 거죠, 맞죠?

> **교수**: 그래! 항상 쓰지. 그리고... ?

**학생**: 음, 보기에는 대체적으로 동작하는 것처럼 보이는군요. 결국에는 Google에 검색 요청을 하면 금세 훌륭한 결과들을 갖고 대부분 되돌아오니까요. Facebook이나 Amazone 등을 사용할 때도 마찬가지죠.

> **교수**: 그래, 놀라운 일이지. 오류가 그렇게 생기는데도 불구하고 말이야! 그런 기업들은 엄청나게 많은 기계들을 사용하기 때문에 어떤 기계가 고장이 나더라도 전체 시스템은 문제 없이 동작하도록 만들었지. 이를 위해서 여러 기법들을 사용한다네. 복제와 재시도 그리고 오류를 검출하고 복구하기 위해 사람들이 수년 동안 개발한 여러 다른 기술들이 있지.

**학생**: 흥미롭게 들리는군요. 이제 실제로 배워 볼 시간인가요?

> **교수**: 그럴 시간이 된 것 같구나. 이제 시작해 보자! 먼저 할게 있어... (들고 있던 복숭아를 베어 문다. 안타깝게도 상했지만 말이다.)
