[개발] 신입시절 맨탈이 날아갔던 별것 아닌 에러코드.

in kr-dev •  7 years ago  (edited)

압축_대문.png


   다들 비슷한 경험이 있을 것 같다. 늘상 해오던 것처럼 열심히 코딩을 한 뒤 컴파일을 하고 돌린다. 그리고 잘 되던 안되던 이 자세로 결과 화면과 소스를 치밀하게 살펴보게 된다.



나는 이 자세로 있는 후배를 보면 왜 손냄새 맡고 있냐고 농을 던지면서 어깨를 툭툭 치면서 지나간다. ㅎㅎㅎ ( 집중 방해해서 미안 . ) 대게 이 자세를 하고 있으면 무언가 풀리지 않는 무엇이 있다는 것이므로 '무슨 문제가 있느냐'라고 물어보면 술술 나오는 것 같다. 나 역시 이 손냄새 맡는 자세로 고민을 많이 하니까.

두가지 정도의 에러를 잡으며 고생을 한것이 기억이 난다. 신입 시절이었다. 신입 시절에는 이클립스나 IDE 툴의 디버깅 기능 같은 것을 사용할 수 있는 환경이 아니었다.

첫번째.

jsp를 만들어내면서 울트라 에디터나 에디트플러스 같은 텍스트 에디터로 작업을 했는데 이런 내용의 코드였다.

var count = getCount();

... 기타 작업 코드 ...

if( count = 1 ){
  // 1이면 성공.
}else{
  // 아니면 실패.
}

어떤가 바로 에러 내용이 보이는가? 그렇다. 나는 if 문내에서 변수에 1을 대입하고 있었다. 나는 한개인 경우만 저길 하고 싶었는데 = 기호를 한개인 것을 전혀 눈치채지 못했다. 한 두시간인가 보고 또 보고 보고 또 보다가 겨우 눈치채고 고쳤던 기억이 난다. 그 시간동안 맨탈은 당연히 날아갔다.

훌라훌라. 나..난 누구? 여..여긴 어디?

두번째.

예전에 지금처럼 스프링이라던지 스트럿츠 같은 프레임웤을 사용하지 않고 개별 서블릿을 만들어서 작성했었다. 자바를 모르시는 분들을 위해 간단히 요약하자면 서블릿은 웹 서비스를 받아주는 구현체다.

service( request, response)

조기서 http request와 response를 통해 웹 서비스를 구현할수 있는 녀석인데....web.xml에 url 매핑과 함께 등록해주면 지정된 서블릿 클래스로 동작이 이루어진다.

그때도 텍스트 에디터로 작성하다보니 아주 간단한거에 실수가 있었는데 혼자서 한 4시간을 찾았던 것 같다.


public class BizServlet{
   public void service( HttpServletRequest request, HttpServletResponse response ){
     ... 내용
   }
}

혹시 자바를 하시는 분이면 바로 뭐가 잘못 되었는지 보이는지 궁금하다. 이렇게 작업을 해놓고 테스트를 돌렸는데... 저 서블릿을 서블릿컨테이너가 계속 찾지를 못하는 거다. 4시간동안 ... 원인을 못찾았다.

원인은?


public class BizServlet extends HttpServlet {
   public void service( HttpServletRequest request, HttpServletResponse response ){
     ... 내용
   }
}

extends HttpServlet을 못찾았던 거였다. 상속을 받아야지 서블릿컨테이너가 정상적으로 인식해서 돌려주는거였는데...

사실 지금 와서 보면 잘 만들어진 오픈소스 프레임웤을 사용하기도 하고 좋은 IDE 툴을 써서 디버깅 모드로 돌려서 금방 금방 찾아내니 그런 일은 없지만 텍스트 에디터로 개발 했을 때 고생했던 걸 생각해보면 요즘은 많이 좋아진 환경인 거 같다.

그리고 이런 실수들은 내 눈으로 봤을 땐 잘 보이지 않는다.

문제가 있는 부분만 모자이크 처리되서 안보이는 느낌이다. 옆에 사람이 잠깐 보면 금방 발견하곤 한다. 문제가 잘 안잡힌다고 너무 오기 부리지 말고 좀 보다가 선,후배 찬스를 한번씩 쓰자. 너무 바로바로 물어보면 실례다. 최소 구글 신님께 여러번 빌어보고... 생각 좀 해보고 가자. 한번씩 아기새 모드로 입만 벌리는 스탠스인 사람도 가끔 있는 것 같은데 아쉽다.

오늘은 신입시절 겪었던 두가지 에러에 대해서 얘기해봤다. 실무를 하다보면 정말 다양한 에러와 버그를 만날 수 있었을텐데 종종 생각이 나면 두세개씩 모아서 포스팅을 해봐도 재밌을 것 같고. 다들 알고 보면 별것 아니지만 찾기 어려웠던 에러 코드가 있었을 것 같다. 여긴 다양한 개발자들이 계시니 다양한 경험을 공유해주면 재미있을 것 같다.

ps. 왜 나는 스팀 시세가 떨어지면 더욱 포스팅을 자주 하고 싶은지 모르겠다. 아무래도 한산해진 피드를 더 채우고 싶은 맘이 작동하는 것 같다. 시세가 한참 좋을 때는 몇일에 한번이나 할까 말까였으면서~ ㅎㅎ

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

저는 웹은 바로 spring, node 등으로 바로 접해본 케이스라서 두번째껀 봐도 잘 모르겠더라고요 ㅠㅠ
멋지십니다!! ㅋㅋ 에디터 코딩이라니!! ㅋㅋ

스프링도 디스패치서블릿은 등록하는데 그거랑 같습니다. ^^ 쪼끔더 원시적인 코딩 방식이었습죵.

전 요즘 ... 리눅스 명령어가 안먹으면 .. 돌아버릴것 같습니다 ㅠ,.ㅠ

개발을 배우고 싶은데 선생님이 없어요 ㅠ,.ㅠ

센세는 구글님이... 아주 좋은 센세입니다. 채... 책도 그렇구요. ㅠㅠ

원래 위에것처럼 상속이나 오타문제는... 옆사람이 보면 금방찾...는데 본인은 못찾더라고요 ㅋㅋㅋㅋㅋ 공감갑니다~

본인은 찾을수 없는 ... 미지의 영역이죠 ㅋㅋ

count = 1 요새 IDE 쓰면서도 몇번 경험한... 실수네요.. ㅎㅎ 남이볼까 번개처럼 수정했습니다.

오류는 아니지만 이름을 memberSerivce 이렇게 짓고 나중에 발견했을때.. 부끄러웠던 적이 있네요. 물론 이로인해 오류가 발생한적도 있죠 ㅎㅎ

ㅋㅋㅋ 이름 지어놓은건 거의 99프로 복붙을 하고 있져. 또는 자동완성. 손으로 치는 경우는 가끔.... 복붙이 안되는 버그에 걸렸을때만 ㅎㅎ

내눈엔 안보인다고 ...
다른사람눈엔 그렇게 잘보이면서
제눈엔 왜캐 오류는 안보일까요 ㅎㅎ

모자이크 법칙입니다. ㅎㅎㅎㅎ

내껀 미친듯이 안찾아지는거 극 공감입니다 ㅎㅎ 저는 해도해도 안되면 다른분께 같이 봐달라고 하는데, 그분이 못찾더라도 뭐가 문제인지 설명하는 와중에 제가 바로 찾는 경우도 자주 있더라구요 ㅎㅎ

맞아요. 설명 하다가 이빨이 맞춰지거나 why. why 하다보면 답에 도달하는 경우도 많더라구요 ㅎㅎ 공감입니다. ㅎㅎ

격공합니다. 울트라 에디터나 에디터 플러스를 사용하여 개발을 진행할 경우 에러를 찾기 너무너무 힘들었던것 같아요.. 자동완성 기능 이런것도 없었고.. 그래도 거기에 적응했는지 지금도 간단한 작업을할 경우에는 아직도 에디터 플러스를 사용중이랍니다~:)

에디터 플러스 매크로 기능 좋죠 ㅎㅎ 전 울트라보단 에디터 플러스 파입니다. ㅎㅎ

진짜 사소한게 눈에 안 들어와 한 두 시간 날리면 의욕상실ㅠㅠ

크읔 ....

손냄새 맡는 자세라니 ㅋㅋㅋ iterator를 잘못 쓰는 것도 흔하지 않나요.

for(int i = 0; i < a.length(); i++)
  for(int j = 0; j < b.length(); i++)

같은... ㅋㅋㅋ

ㅋㅋㅋ 복붙의 폐해 ㅋㅋ 잘못쓰면 스택오버플로우 나죠. 맞아요. ㅋㅋ

킁킁. 손냄새 많이 맡을려면 손 잘 씻고 다녀야겠네요.

고민하는 자세는 이상하게 손을 얼굴을 만지거나 머리를 만지게 됩니다. ㅎㅎㅎ

잼난 발상입니다 ㅋㅋㅋㅋㅋ 정말 그러네요

보통과 의욕 생성이 반대군요 ㅎㅎㅎㅎ

저는 그렇더라구요. 시세가 좋으면 제가 할자리가 없는것 같구 ㅋㅋ

공감이네요 저두 맨날 헤매는대 ㅠㅠ

ㅋㅋㅋ 에피소드 있으면 올려주세용 . 이런 작은 얘기도 공감하는 뎅

if (count = 1)

if (1 = count)
처럼 사용하면 절대 실패할 일은 없긴 하죠. ㅎ

하지만 저도 습관이 안들어서 안하는 부분이긴 하지만 ㅋ

그렇죠 습관 ㅎㅎ 몇년하니 그렇게 되긴하더라구요.

안녕하세요. 멘션모아 댓글 알림입니당.



jongsiksong : 보팅습관을 통해 나와 자주 교류하는 스티미언이 누구인지 알아보자 - 06:30

...ri, leesol, teemocat, skan, korea, m8586, oldstone, joeuhw, nhj12311 noctisk님 등 많은 분들께서 제글에 보팅을 자주 해주시는 것 같습니다. 지면을 빌어서 진심으로 감사하...

놀랍습니다.. 다 제가 알아들을 수 없는 말들이군요ㅠ ㅋㅋㅋ 전 아무래도 시세가 떨어지니 의욕이 안생기게 되네요. 그간 포스팅이 뒷전이었는데.. 가격 상관 없이 꾸준한게 제일 좋겠죠. ㅋㅋ

신입 시절에, 컴파일도 깔끔히 되었고 로직도 완벽했는데(제 생각으로는) 아무런 결과값도 나오지 않는 세상 난감했던 시절이 떠오르네요;;;

뭔가 개발자들 끼리 공유하는 실수들이 있는게 신기해요 ㅋㅋㅋ

DQmPrLAGfmYjowngE3xYXCiF9Q2wkaFiFbrh6yqfTdhMRzh.jpeg

본격개발자골탕먹이는법.jpg

count = 1 실수는 누구나 한번쯤은 겪는 실수지요. 그래서 전 아래와 같은 방식으로 한동안 코딩했어지요. 실수한 경우에 컴파일 에러가 발생하도록요
(1 = count)

역시 그렇죠! 경험이 중요하긴 한것 같습니다 ㅎㅎ