프로그래머로서 황당했던 기억은?

winchild의 이미지

아래의 "시스템 관리자로서 황당했던..." 을 정말 재미있게 읽었습니다. 저도 경험했던 것들이니까요. 그와 더불어 프로그래머로서 황당했던 기억들을 모아보면 그것도 재미있지 않을까 생각을 했습니다.

프로그래밍이라는 것에 발을 디딘지 그럭저럭... 내후년이 되면 20년이 되는 것 같습니다. 울나라에서 프로그래밍만 해 가지고 밥먹고 살기 정말 힘들더군요. 지난 일을 돌아보면 재미있었던 일도 많았고, 고생한 일도 많았습니다. 프로그래머로서 황당했던 기억들을 써보면 몇가지 있는 것 같습니다.

머릿글로 하나만 소개하면.... (다른것은 나중에 답글로 올리죠.) 첫 직장생활을 하면서 한 2년 하니깐 그럭저럭 프로그래밍에 관한 한 내맘대로 할 수 있는 수준이 되었을 때입니다.

상용프로그램을 운용중일 때에는 완결된 프로그램은 손을 대지 않는 것이 상책이죠? 그런데 이럭저럭 하다 심심해서 그냥 프로그램을 들여다보고 있었습니다. 그 프로그램은 Z-80 어셈블러 프로그램이었습니다.

그런데 프로그램을 훑어보던 나는 어떤 부분에 시선이 고정되었습니다.

"오잉? 이거는 틀림없이 버그인데..."

큰일이다 라는 생각에 (은행용 단말프로그램이라서 만일 버그이면 200개의 프로그램을 디스켓으로 새로 배포...) 실행프로그램의 기능을 확인해 보았습니다.

"어!!! 잘 돌아가는데..."

아무리 확인을 해봐도 잘 수행되었습니다. 이거 어쩌지... 2년차밖에 안된 나는 상관에게 보고하였지요. 그랬더니 그 과장은 하나도 안놀라면서 왈...

"가끔 버그가 있더도 잘 돌아가는 경우가 있다."

그리고 그냥 놔두라는 것입니다. 물론 그 프로그램은 고쳤지만 다음 프로그램 배포시까지 숨죽이며 기다릴 수밖에 없었지요. 어쩌다 실행프로그램은 고친 소오스를 사용한것은 아니냐구요? 글쎄요.... 그당시 실행프로그램 만들려면 컴파일과 링킹에 30분정도 걸렸습니다. 그러니 귀신이 곡할 노릇이죠. 근데 상관들은 당연한 듯이 아무런 태도변화도 보이지 않는데 더 충격을 받았습니다.

근데 요즘에 이런일을 발견하면 저도 마찬가지 반응을 보일것 같네요. 여러분들이 프로그래머로서 겪었던 황당한 기억은 무엇인지요?

댓글

익명 사용자의 이미지

맞아여 맞어. 저두 그 경험 이씀다.

카피 앤 페이스 또는 별 생각없이 관성(?)에 의해서 코딩하고 있다가

그런 상황을..

그런데 웃기는 것은 그 에러를 또 관성(?)적으로 보고 있다가

옆에서 누가 얘기 해 주기 전까지 절대 못 찾아내고 있을때..-_-;

DiNe의 이미지

황당한 자바스크립트 에러. -_-

var a = 250;
var b = 200;
var c = 30;

특정 시점에서 세 변수는 위와 같은 값을 갖고 있었습니다.
alert() 으로 찍어보고, 별 짓 다 해봐도 저 값이 맞더군요.

var x = a - (b + c);

하고 alert(x) 하면 20 이라는 값이 튀어나와야 하는데, -4xxx 라는 숫자가 나오더군요. 도대체 어디서부터가 문제일까.. 반나절을 소스를 들여다봤으나 알 수가 없더군요.

할 수 없이 문제해결이 먼저다.. 싶어서 소스를 다음과 같이 바꿨더랩니다. 그냥 혹시나 했지요.

var x = a - b - c;

하니까 alert(x)했을 때 20 이 나오더랩니다. -_-;

아직도 그 원인은 모릅니다. -,.-;

익명 사용자의 이미지

상당히 다양한 브라우저에서

자바스크립의 + 연산은 때때로 무조건 스트링 연산으로 행해지는 경우가 이씀돠.

그걸 방지하기 위해서는 상수로 계산하덩가.

아님 eval 함수에서 계산하는 것이..

-_-;

익명 사용자의 이미지

프로그램과는 관련이 없지만..........이런실수를
많이 하는 바람에.....한번 적어봅니다.
리눅스의 편리함을 가장 많이 느끼는 부분이 바로
탭키를 이용한 자동완성기능이죠....그런데 이놈의
버릇이...원도우로 그대로 전해져서....

익스플로러 에서 주소에kldp.org라고 적지 않고
kl정도까지 적어 놓고 탭키를 무진장하게 누릅니다...

도스모드에선...무조건...
cd c:
또는
ls
해놓고서 왜 안되는지 황당한 경우도 있었구...

이런병을 무엇이라고 할지 모르겠지만...
적응 불능입니다....

익명 사용자의 이미지

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
이나,
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
에 코드값(tab이라면 9가 되나..)을 써놓으시면 dos 모드에서두 쓰실수 있습니다.
nt계열에서 밖에 해본적은 없지만 도스윈도우들에서는 안될겁니다. 아마.

익명 사용자의 이미지

아주 유용하네요. ^^

iron의 이미지

와 그렇군요..
전 항상 windows 에서 shell 쓸일 있을때는 emacs 에서 썻다는 -.-;;
(emacs 에서 자동완성 지원하거든요 특수키 입력이 불편해지지만..... )

익명 사용자의 이미지

근데 익스에선 tab키 됩니다:)

__
SOrCErEr

익명 사용자의 이미지

모질라에서도 차용되었죠.

익명 사용자의 이미지

죽으라 프로그래밍했는데, 사장이 월급을 안줄때,...
정말 황당함...

익명 사용자의 이미지

예전에 도스에서 C로 프로그램을 작성하던중 생겼던 일인데..

갑자기 하드가 날아갔더군요..

그땐.. NDD (Norton Disk Doctor, 알 사람은 다아는 그런 프로그램..)로 고치곤 했는데... 그날따라 안고쳐지더군요..

그래서, 디스크 에디터로 한 번 들어다 보니... 깜짝놀랐답니다...

내 소스가 파일 시스템 위에 좌르륵 써저 있더군요.. ^^황당..

부랴부랴, 소스 복구해서.. 들어다 보니.. 포인터 에러...

지가 쓰고 싶은데.. 써버리더군요..쩝...

지금은 그 수준에도 미치지 못하는 웹프로그래밍 하고 있으니....... 이거 원... --,.--

익명 사용자의 이미지

멋진 바이러스군...쩝........ㅡㅡ;;

익명 사용자의 이미지

dev->wr_sector_no * (FLASH_SECTOR_SIZE>>2)

여기서 *를 포인터로 착각해가지고서리 원.....
곱하기인데말입니다요.

익명 사용자의 이미지

이건 누구나 한번 겪어봄직한 일이라 재미없을수도
있는데.. i, j 코딩에러.. 이거 가지고 한이틀 버그잡는다고
해맸습니다. 초보시절 애기죠.. 지금은 버그 잡는데 한디버깅합니다. 몇년지나니까 코딩에러는 없어진것 같네요.

익명 사용자의 이미지

저는 나름대로 제 프로그래밍 실력에 자부심을 갖고 있거든요.
내가 짠 프로그램에서는 버그가 나와선 안된다! 라는
어떻게 보면 편집증적 증세까지 있던 저로선..
처음 설계부터 정말 정성들여 하고.. 에러처리루틴
으로 에러를 최대한 커버하게끔.. 그렇게 짭니다.
그런결과.. 상당히 robust한 결과가 나오긴 하더군요.
그런데.. 언젠가 정말 황당한 에러가 나온적이 있었어요.
메모리 참조에러..설마.. 그럴리가 없는데..
내가 짠건데.. 에러가 나올리가 없는데..
그런데 그 에러난 부분을 아무리 봐도.. 에러날곳이
없었습니다. 하루종일 들여다 봐도 아무리봐도 에러날곳이
없었습니다. 그렇게 몇일동안 진을뺐죠..
그리고 거의 포기할즈음.. 세상에나 .. 정말 더 황당한
일이 일어났죠.. 가지고 있던 상용 프로그램들이 또
메모리 참조 에러나면서 뻑 죽더라구요..
아차! 싶어서.. 백신프로그램으로 검사를 해봤죠..
역시나.. 바이러스가 걸려 있더군요!
바이러스를 모조리 처치하고나서 재컴파일을 하구..
다시 돌려봤습니다. 그러니까 제가 짠 프로그램은
아무런 문제없이 잘 동작하더군요..
정말 황당한 경우였습니다..
그 후로 저는 평소에 백신을 그렇게 중시 여기지 않던태도를
180도 바꿔서.. 수시로 바이러스 체크하고 있습니다.. -_-
버그도 아닌 바이러스때문에.. 소스코드라인 하나하나 따져
가면서 디버그했던 그 시간과 노력이 아까울따름입니다. --;

익명 사용자의 이미지

ㅋㅋㅋ.. 버그없는 프로그램이라..
Hello World만 짰나보죠? -_-;

무림하수의 이미지

캬캬... 정답이네요. :-)

익명 사용자의 이미지

if (c='!') { ... }
언제나 참이죠...

godyang_의 이미지

안녕하세요?

전... 양수를 음수로, 음수를 양수로 바꾸는 함수를 짤 때가
기억나는군요...

자세히는 기억안나지만... 수십분 가량의 if문 삽질을 통해
int xxxx(int arg)라는 함수를 만들었습니다.

결국 어떻했냐고요?

주변의 친구가 가르쳐 주더군요...
arg = - arg;

다음은 상상에 맡기겠습니다. -_-a

그럼...

익명 사용자의 이미지

다들 재밌네요..
저는 프로 그램머가 아니라서 모르겠는데.. 하여간
다들 힘내세요..

익명 사용자의 이미지

int main(){
char *string;

scanf("%s",&string);
chomp($string);

echo("%s",string);
}

대체 이게 뭔 랭기쥐쥐...-_-a...비교적 요렇게 헷갈리고 있습니다...

익명 사용자의 이미지

예전에 같이 일하던 초보친구가 있었는데....
하루는 저한테 와서 에러가 너무 많아서 도저히 못잡겠다고 했을때 봤더니....
유닉스 C소스에 비베 소스를 떡하니 적어놓구 make 파일을 돌렸더니 에러를 못잡겠다고 하던 기억이 나네요^^;;

김정균의 이미지

요즘 C 와 php 를 왔다갔다하는데.. C 에서

int a;
if ( $a == 3 )

이라고 하고선 왜 안되지.. 했던것이 가장 기억에 남는
군요. 크크

스카리의 이미지

저 역시 얼마전까지 C와 php 사이를 왔다갔다했습니다.
근데 C에서는 코딩 잘하다가,
php에서는 변수앞에 꼭 $를 빼먹더군요.. -_-;

그리고 요즘 영어로 문서 작성하는 일이 많은데
...in the... 라는 구문이 나오면 어김없이;;;;;;
.... int he... 라고 쓴다는것.... -_-;;;
...print this.... 라고 나오면
...printf this... 라고 쓴다는것... -_-;;;

쩌업...

익명 사용자의 이미지

저두. 너무 헷갈려요.

게다가 편함에 길들여져서는.

씨하다가 '읔 귀찮어~' 하는 일이 많아졌습니다.

메모리 릭 같은 것도 전연 소홀히 하고 자빠져있다가.

요즘 다시 씨로 돌아와서는

한 번 짜고 다시 짜는 삽질을 하질 않나.

울트라 에디터만 쓰다가 VI 로 옮기는 것도 귀찮아져서

요로코롬 씁니다.

저장소 -(NFS)-> 내 리눅스 컴 -(SAMBA)-> 요거를.

winlink(리눅스에서 윈도 2000 터미널 서비스 클라이언트 쓰는 거)를 이용해서

리모트로 연결된 윈도 2000에서 울트라 에디터를 까고.

거기서 삼바로 연결된 내 리눅스 컴의 NFS-SAMBA-Symbolic Link를 열어서

작업합니다.

좀 난잡해 보여도 굉장히 편해여. 윈도 2000이 강력하고 내부 네트웍이 100메가야 좋겠죠? -_-;

요것도 리눅스에서 윈2000을 연결해서 들어가서 쓰는 글입니다.-_-;

역시 허접 리눅서는 윈도 UI의 중독을 벗어나기 힘든가 봅니다.

나도 어서 프로가 되고 시퍼라.

페이지

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.