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

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

Sort:  

저는 웹은 바로 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++)

같은... ㅋㅋㅋ

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

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

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

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

Coin Marketplace

STEEM 0.15
TRX 0.12
JST 0.025
BTC 55851.69
ETH 2536.36
USDT 1.00
SBD 2.23