다들 비슷한 경험이 있을 것 같다. 늘상 해오던 것처럼 열심히 코딩을 한 뒤 컴파일을 하고 돌린다. 그리고 잘 되던 안되던 이 자세로 결과 화면과 소스를 치밀하게 살펴보게 된다.
나는 이 자세로 있는 후배를 보면 왜 손냄새 맡고 있냐고 농을 던지면서 어깨를 툭툭 치면서 지나간다. ㅎㅎㅎ ( 집중 방해해서 미안 . ) 대게 이 자세를 하고 있으면 무언가 풀리지 않는 무엇이 있다는 것이므로 '무슨 문제가 있느냐'라고 물어보면 술술 나오는 것 같다. 나 역시 이 손냄새 맡는 자세로 고민을 많이 하니까.
두가지 정도의 에러를 잡으며 고생을 한것이 기억이 난다. 신입 시절이었다. 신입 시절에는 이클립스나 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. 왜 나는 스팀 시세가 떨어지면 더욱 포스팅을 자주 하고 싶은지 모르겠다. 아무래도 한산해진 피드를 더 채우고 싶은 맘이 작동하는 것 같다. 시세가 한참 좋을 때는 몇일에 한번이나 할까 말까였으면서~ ㅎㅎ