Monday, October 29, 2007

Sunshine Project BETA 종결!!!

시간보다 느낌은 더 길었다.

막판 3주동안은 거의 날밤에, 주말 풀 출근에... 진작 해논다고 한것임에도 불구하고 뒤로 갈 수로 구조를 바꾸어야 하는것들도 많아지고, 또 오픈을 앞두고 추가된 기능이 많아짐에 따라 역시나 막판에 고생을 했다.

나의 체력은 아직 죽지 않았으나, 근데 진짜 힘들었다 -_-;;...

아무튼 아주 큰 사건 사고 없이 잘 끝나서 다행이다.

그러나 이번엔 아주 예상치 못한 사건/사고가 있어서 당혹스러웠던 적이 있다.

1.

그간 줄곧 파일 무결성 검증을 위해 써오던 MD5 Hash Algorithm 이 완벽하지 않다!

정말 아주 아주 희박한 확률로 발생할 수 있는 일이 일어나버린것이다.

물론 MD5 Hash Algorithm가 깨진것은 오래전에 보고된것이었음에도 불구하고 그걸 몰랐던 나의 잘못이 크다.

이제는 SHA-1이 대새이다.

공부를 게을리 한 티가 확 났다.
2.

원인이 밝혀지지 않은 아주 미스테리 한 사건이다.

Client 에서는 Single Socket 으로 내가 만든 ILS 에 붙게 되는데, 서로 양방의 Log를 분석해 보자면, Client 에서는 분명 Packet 을 전송했는데, ILS 에서는 그에 따른 Event 가 전혀 오지 않았다.

때문에 Blocking Socket 을 사용하는 Client 에서는 Lock 이 걸려 죽어버렸다.

첫날 오픈하자마자 40분 만에 발생한 사건인데, 응급조치를 하고 다시 살린후, Closed BETA 종료까지 잘 버텨줬다.

도저히 파악이 되지 않아, 서로의 소스를 리뷰하면서 검토했는데도 불구하고 원인은 여전히 오리무중이다.

사실 이런 경우 신경은 면도날이 되고, 긴장은 100% 충만해진다.

자신이 만든 Daemon 에 문제가 생겼다고 가정한다면, 이건 더 있을 수 없을 고통이고 치욕이며 창피함이다.

때문에 사고가 터졌을때, 원인 분석이 객관적으로 명확하게 들어가야 하는데 대개 이런 경우엔 이성적으로 문제를 파악하기가 힘들어진다.

처음 그쪽의 로그만 보면 명백한 내 잘못이었다.

로그관리에 소흘했던 내 자신은 좀더 자세한 로그기록의 부재에 잠시 패닉상태도 오고, 진짜 힘들었는데, 다행히 DB 에 남은 History와 Web 에서 남긴 Session Log, 또 System 의 Event Log 가 날 도와줘서 분석할 요소가 더욱 많아졌다.

신경이 곤두서고, 서로의 코드에 집중하면서 한 10시간은 아무것도 못하고 분석만 한거 같다.

그 10시간은 정말 피말리는 싸움이었고, 신경전이고, 이후 주도권 경쟁의 중심에 있기에 절대 질 수 없었다.

이시간 동안 머리숱 반이 빠지고 나이테 2,3개는 더 먹은거 같다.

결국 양쪽 모두 특이한 결함이나 문제를 찾아내지 못했고, 여전히 분석중이지만, 여전히 모르겠다.

오히려 내 코드를 보면 볼 수록 자신감이 붙는다. -_-;;...
아무튼 이러저러한 우여곡절끝에 잘 마무리 했고, 이제 남은건 4일동안 보고된 버그와 개선사항에 대한 처리인데...

긴장이 확 풀어지니, 당장 일 하기가 싫다.

내일, 모래 휴가를 받았는데 뭘 하면서 보낼까?!

설악에서 단풍보고 주문진에서 회떠 먹고 싶다...

그동안 아주 수고많았다!

아무튼 그간 공부를 너무 안한거 같긴 하다.

기존에 해왔던거니 하고 너무 쉽게 생각한거 같기도 하고, 관성스럽게 진행한 부분이 적지 않다.

반성한다.

근데, 언제까지 이 일을 해야 하는거지?

분명 재미는 있으나, 이방면의 아주 고질적인 문제들로 이럴때마다 회의를 느끼기도 하고, 또 체력도 점점 딸려지게 된다.

좀 재밌게 여유있게 맑은 정신으로 즐겁게 일 할 수 없을까?

끝무렵 1주일동안 아주 피곤했다.

No comments: