자신의 코드에서 의외성(?)을 발견 할때, 기뻐해야 하는 건가요?

vamf12의 이미지

전문 프로그래머는 아니지만, 이런 저런 이유로 프로그램을 제법 짜게 되는데...

항상 KISS를 염두해두고 만듭니다.
디자인 할때 부터 최대한 심플하게 문제에 접근하고, 가장 일반적인 답안을 작성하려고 노력하는 편입니다.
그런데 정말 가끔... 아주 가끔씩 자신이 만든 코드의 결과가 의외로(?) 정확하게 처리되는 경우가 있습니다.

예를 들면, 소켓 프로그래밍을 하는데, 단순하게 뮤텍스를 이용해서 진입과 대기를 결정하도록 단순하게 만들었답니다. 링크드 리스트로 단순하게 작업을 정의하고 잠궈주고 이런식으로 쭉쭉 만들어 갔는데. 한참 지난후에 버젼업하려고 들여 다 봤는데... -_- 링크드 리스트가 아니라 큐가 되어있더군요. 헐... 생각해보면 큐가 정답인데... (처음부터 큐로 디자인 하지 않은게 민망할 따름입니다.)

또 다른 케이스로 문자열을 처리를 할 필요가 있어서 특수한 문자열을 쭉쭉 읽어서 파싱하는 걸 만들었습니다. 별 생각 없이 만들었는데, 시간이 지난후에 문자열에 다른 부분이 추가 된 경우가 있었습니다. "헉 망했다."라고 생각했는데, 의외로 잘 동작하는 걸 보고 어이가 없었습니다... ㅠ_ㅠ (제가 만든걸 동작하는 구조를 이해하려고 고민했었습니다. 왜 잘 작동할까? -_-)

내가 만든것이 나를 능가하는 순간이었습니다. OTL

이런 경우 기뻐해야 하는 건가요? (이 코드는 신들린 상태에서 만든거다!)
좋은 경우인지 나쁜 경우인지 모르겠습니다.

imyejin의 이미지

코드가 왜 작동하는지 확실하게 그 이유가 이해가 가면 좋아해야 하지만
어떻게 그렇게 되는지도 모른 채 이유 없이 잘 돌아간다면 그건 재앙입니다.
이유 없이 그냥 지금 잘 돌아가는 놈은 언제 이유 없이 죽을지 모르거든요.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

vamf12의 이미지

그런거라기보다...

다른 문제가 발생했을때, 예상하지 못한 문제가 발생했는데, 정상작동하는 경우입니다. 외부 변수가 바뀌면 프로그램도 바뀌어야 하는데, 만들어 놓고 보니 그런부분까지 알아서 처리된 경우죠.

또는 뭐 확장을 고려하지 않고 디자인했는데, 결과적으로 나온 코드는 확장가능하고.. -_-

imyejin의 이미지

예상치 못한 부분까지 고려한 디자인을 무의식적으로 하시다니 워낙에 수학적인 훈련이 충실하게 되어 있거나 본능적으로 감각을 타고나셨나 봅니다.

수학자들이 아무 짝에도 쓸 데 없을 것 같은 이상한 기하학이나 논리를 만들어 놓았는데 나중에 알고 보니 그게 무슨 새로운 물리학 발견을 기술하는 데 쓰인다든지 컴퓨터 시스템을 만드는 데 확장 가능하고 응용 가능하다던지 그런 게 있죠.

중고등학교 교과서에 나오는 F=ma 가 아닌, 충격량은 운동량의 변화량이라는 원래 뉴턴의 제2법칙은 상대성 이론이나 양자역학 등 예기치 못한 물리학 발전이 있어도 그것에 맞게 다 확장 가능하게 되어 있는 것도 그렇고요. 운동량이라는 물리량을 발견한 것 자체가 워낙 위대한 거였죠.

@ 뉴턴에 버금가는 천재가 난겁니까?

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

 익명 사용자의 이미지

40대 라고 들었는데 사실인가요?

익명사용자거덩의 이미지

저 뵈기 싫은 면상 번쩍이면서 개소리하는것 보다야 큰 재앙이겠어?

bootmeta의 이미지

트리 구성을 하다 보니 저도 모르게 처음과 달리 일반 트리 구조를 변형하다 보니 이진 트리 형태로 귀결이 되더군요.

얼마 후 알고리즘 책에서 일반 트리 구조를 이진 트리 형태로 변환하는 부분을 보고 몇분 간 자뻑의 시간을 가진적이 있습니다.

kalstein의 이미지

음...글쎄요. 저라면 저런 상황을 반기진 않을것 같네요. ^^;;

예상치 못했던 부분이 변경 되었는데, 반드시 영향을 줘야 될 것 같은데 영향이 없다면...내가 예상치 못한 뭔가가 있다는건데...그런건 참 찝찝하죠 ㅎㅎ

근데...링크드 리스트와 큐...의 차이가 어떤것인지요? std::list, std::deque를 말씀하시는건지...;;


------------------------------------------
Let`s Smart Move!!
http://kalstein.tistory.com/