진상손님(사진 : 비정상회담)



B2C 서비스를 개발할 때,

B2B 서비스를 개발할 때.

노련한 개발자는 예외처리 알고리즘을 넣는다.

백도어가 아니다. 예외처리 방법이다.


진상보존의 법칙.

어떤 사업이든 "진상고객"은 반드시 존재한다.

백명 중에 한 명쯤은 반드시 등장한다.


시스템 입장에서 이런 사람은 Rule Breaker 다.

그래서 시스템을 빡빡하게 만들면 곤란해진다.


옛날 훌륭한 베테랑 한 분을 모셔와서 설계를 했다.

선진적이고 근사한 기술들로 크고 훌륭한 시스템을 만들었다.

덕분에 회사 내에서도 꽤많은 기술 추종자가 생겼다.


그런데 아쉽게도 서비스를 해보지 않은 아저씨였다.

서비스를 오픈하자마자 예외케이스가 등장했는데, 이걸 시스템 내에서 처리할 방법이 없었다.

아예 그런 경우를 고려하지 않았기 때문이다.

예상 사업 시나리오에도 그런 케이스가 없었다.


어쩔 수 없이 별도모듈을 수작업으로 만들었다.

그런데 시간이 지나자 이런 부분들이 점점 늘어났다.

관리하기도 애매해서 개발운영에 큰 부담으로 다가왔다.

모니터링을 별도로 해야 하거나 재처리 이슈도 생겼다.


시스템 안으로 넣고 싶었으나, 건드려야 할 것들이 너무 많았다.

그 이후로 아무리 훌륭하더라도 기술만능주의자는 피하게 되었다.


룰은 분명히 시스템을 추상화하고 단순화시키는 좋은 방법이다.

새로운 기술은 문제를 좀 더 세련되게 풀 수 있게 해준다.

하지만 그게 세상의 모든 케이스를 커버할 수 있게 해주지는 않는다.


"진상"은 언제나 존재한다. "룰 브레이커"는 언제나 존재한다.

그들의 등장을 어떻게 처리할지 처음부터 고민해야 한다.

모두 예측하지 않아도 좋다. 필요한 몇가지만 고려해도 충분하다.

그렇지 않으면 꽤 많은 짐이 운영단계로 넘어간다.

짐을 가득 쥐고 사업을 발빠르게 좇을 수는 없다.


어떤 시스템이 좋은 시스템일까?

경험상 겸손한 시스템이 가장 관리하기 좋고 편했다.

그래서 사업팀의 공격적인 행보를 손쉽게 도울 수 있었다.


시스템에 현실을 모두 담을수는 없다.

세상에 겸손해지자.

현실과 잘 어울리게 만드는 것으로 충분하다.

좋은 시스템이란 기술자랑이 아니라, 사용자를 편하게 해주는 시스템이다.


FIN.



+ 최신글

+ 많이 본 글