C#
비동기 처리에 대한 고찰
손병환
2007. 10. 17. 16:44
비동기 처리에 대한 코딩을 할 때마다 느끼는 것이지만
스레드, 스레드풀 등등...
그냥 코딩을 복사해서 붙여넣기하면서 코딩을 해서는 안된다는 것을 뼈저리기 느끼고 있다. 하루종일 삽질하고 디버깅도 잘 안되는 그리고 동시에 수십명의 사용자들이 접근하는 어플리케이션을 작성할 때는 정말 머리가 어지러울 정도다.
이러저리 튀는 관계, 단지 원리를 파악하지 않고 그저 남들이 작성해 둔 코드에 약간의 변형을 가해서 개발을 하고 있는 많은 개발자들. 이 소스가 어떤 원리를 가지고 작동이 되는지 제대로 파악이 안되어 있다. 나도 아직은 비동기 처리에 조금씩 스며들고 있어서 이러한 부분을 깊게 반성 또 반성을 하고 있다.
처음부터 비동기 처리에 대해서 각 연결된 시스템들이 어떤 관계를 가지고 가는가를 철저하게 분석하고 설계를 해야한다. 무조건 코딩부터 한다고 해서 해결될 부분이 아니다. UML Sequence Diagram 같은 것을 이용해서 각 오브젝트들간의 관계를 그려보면 어지럽고 혼란스럽던 부분이 한꺼번에 정리되는 듯한 느낌을 가질 것이다.
물론 처음부터 쉽게 되는 것은 없다. 한걸음씩 조금씩 해 간다면 어느새 입가에는 환한 미소가 드리워질 것이다.