세가지 캡슐화된 모듈(또는 마이크로서비스)이 있음
하수구(자원관리) 모듈, 빈민층(슬레이브) 모듈, 부자층(마스터) 모듈
이들은 서로 은닉화되어있고, 정해진 프로토콜 인터페이스로만 소통함
그런데 어느날 예외가 발생함
edge case에서 각 모듈이 서로의 은닉화된 영역을 침범하기 시작한 것임
슬레이브 노드가 마스터 노드의 작업분배 스케줄링에 직접 관여하는가 하면
단방향 프로토콜인 화장실 변기 인터페이스에서 반대쪽으로 정보를 전달하는 등의
서로의 은닉층과 인터페이스를 무시하는 사건이 연달아 발생함
이런 꼬일대로 꼬인 예외상황속에서
한 슬레이브노드가 결국 패닉을 일으키고
이 노드와 연관되있던 많은 모듈들이 같이 패닉을 일으키거나 죽어버림..
운영체제가 패닉을 일으킨 프로그램을 관리하려하지만 한 노드가 좀비프로그램이 되버리면서 이야기가 끝남..
교훈은
예외처리를 잘하자
테스트할때 edge case를 체크하자
은닉화 캡슐화를 잘하자
- dc official App
여전하구나 잘 지냈노?
이번글은 좀 아쉽다, 억지로 끼워맞춘듯한 어색함이느껴짐
수정함 - dc App