프로그래밍의 최대 난제 중에는, 역시,

추상화와 비동기 처리를 꼽을 수 있다.


특히, 

추상화를 통해서 시스템을 최대한 ,

간략한 구조의 결합으로 만드는 일은 중요하다.


복잡도는 합으로 증가하지 않고, 곱을 통해서 증가한다.

얕잡아 봤던 사소한 문제가 "나비효과"로 되돌아 올 수 있다.


비동기 처리는

다차원적 사고를 요구하여 항상 빈틈을 노린다.


잘 보여지지 않는 틈들이,

사용자가 많아지고, Task 처리 양이 많아지는 중요한 시점에서,

확률 증폭으로 나타난다.


특히 이것들은 불규칙한 성질로 인해서,

논리적인 접근을 차단한다.


구축하기도 어렵고, 

버그를 추적하기는 더욱 어려운 시스템이 되어간다.


테스트를 위한 환경에서 얌전하다가 실무에서만 활동하는 게릴라 버그,

마음 내킬 때만 나타나는 하이젠버그..


그렇게 악명 높은 것들과 싸워야 하는 것이다.


Posted by 류종택


티스토리 툴바