회사 업무로 일본에 10일간 출장을 와 있습니다.
이번 일정은 Bug fix 또는 긴급한 개발을 필요로 하는 업무가 아닌 관계로 약간의 시간 여유가 있어 밤에 잠 안자고 글을 몇자 적어봅니다.
제가 대학교를 졸업하고 Java 개발자로 취업한 내용을 몇자 적어봤습니다. 허접한 내용이라고 생각하고 편하게 읽어주세요…^^
저는 개발자로 진로를 선택한 대부분의 사람들과 마찬가지로 전산과 출신입니다.
그렇다고 대학교 시절 프로그래밍을 아주 즐겨하거나 프로그래밍 동아리에 들어 개발, 교수님 연구동아리에 드는등… 개발자로 갖춰야할 사전 작업은 전혀 하지 못한 상태로 졸업을 하였습니다.
[졸업 후 1년동안]
위에서 간단하게 적었지만 저는 프로그래밍에 대해서는 전혀 하지 못한 상태로 졸업을 하였습니다. 졸업한 후의 저의 상태를 간단하게 프로그램으로 돌아보면 4학년 2학기에 c언어를 재수강 하였지만 도움이 없이는 a,b 를 swap() 시키는 함수조차 작성하지 못하는 상태였습니다. 그렇지만 개발자가 비전이 있다는 생각을 가지고 Java 개발자가 되기위한 준비에 들어갔습니다.
– 졸업 후 1개월
강남 비트 컴퓨터 학원에서 java fundamental 과정을 수강하면서 저의 Java 개발자가 되기 위한 기반을 다졌습니다. 그때 강사님이 해주신 말씀중에 몇가지 기억나는 부분이 있습니다.
첫번째. Java 개발자라면 Java 커뮤니티와 Sun 의 Java 포럼은 매일 들어가서 동향을 파악해야 한다.
두번째. 영타는 반드시 잘쳐야 하는건 아니지만 잘 쳐서 나쁜 것은 없다.
– 비트 컴퓨터에서 중앙정보처리 학원으로…
1개월간 java에 대한 강좌를 들었지만 머리속에 개념이 완전하게 잡히지는 않았고 6개월 과정의 국비지원 java 교육과정이 있어 다시 교육센터에 들어갔습니다. 당시 강좌 내용은 java, xml, oracle 10g, struts, spring, jdbc, MVC 패턴등 회사에서 사용하는 전반적인 내용을 간단간단하게 배우는 교육과정이었습니다. 단기간에 많은 것을 배우다 보니 진도를 따라가기도 어려운 상황 이었습니다. 지금 생각해도 한가지 아쉬운 점은 학원에서 자격증 응시료를 받기위해 억지로 OCP 자격증을 취득하는거라던지 SCJP 자격증은 반드시 따야 한다며 덤프로 외워 자격증을 따라는 식의 권유는 지금 생각해도 해서는 안될 행동이었던 것 같습니다.
– 중앙정보처리학원에서 한경교육센터로…
6개월간의 교육을 마치고 자바 개발자로 취직을 하기 위해 이력서를 열심히 내고 있었습니다. 이력서를 냈다고 많은 연락이 오거나 하지는 않았습니다. 여러군데 지원을 하다가 한군데서 연락이 왔습니다. 면접 후 신입사원 교육겸 해서 한경교육센터에서 java 과정을 수강하고 특별한 문제가 없으면 채용을 하겠다는 조건이었습니다. 문제가 될거라는 생각은 없었기에 java 교육을 회수로 3번째 듣게 되었습니다. 3번 들으니 이제는 아무 도움 없이 java로 “HelloWorld”는 찍을 수 있었습니다. 그리고 회사에서 메신저를 만드니 최종 프로젝트로 메신저 서버와 메신저 클라이언트를 java로 만드는 것을 선택하였습니다. 결과적으로 접속자수 10명이 넘으면 OutofMemory가 발생되는 허접한 메신저 서버를 만들었습니다.
[교육센터에서 실무로]
교육센터는 일정에 대한 압박은 거의 없었습니다. 그렇지만 교육센터에서 최종 제출한 산출물을 회사에 제출해야 한다는 조항이 있어서 그 당시에는 최선을 다해 만들었습니다.
제가 느끼는 교육센터와 현업의 가장 큰 차이점은 “유효성 검증 및 예외 처리” 입니다.
제가 작성 프로그램의 일부를 예로 들어보겠습니다.
String phone = rs.getString("phone"); if(phone.length == 10) { // DO something }
위와 같은 코드를 만들었습니다. 제가 취업 했을때 저의 생각은 “설마 전화번호가 없는 사람이 있겠어???” 이런 마인드였습니다.
혹시나 했으나 역시나 있더군요.. 데이터베이스에 대한 갱신이 정상적으로 일어나지 않는다고 해서 지원을 하게 되면 대부분이 위와 같은 NullPointer에 대한 예외처리가 빠져
발생되던 부분이 있었습니다.
지금 작성하라면 아래처럼 간단한 예외처리 정도는 넣겠죠…
String phone = rs.getString("phone"); phone = (phone == null ? "" : phone); if(phone.length() == 10) { // Do something }
그리고 가끔씩 전화번호 필드에 한글 또는 영문을 넣는 경우도 있습니다.
그렇다면 문자를 제외하 나머지 숫자만 가지고 처리를 해야 할때가 있으면 아래와 같이 할거 같습니다.
String phone = rs.getString("phone"); phone = (phone == null ? "" : phone.replaceAll("[^\\d]", ""); if(phone.length() == 10) { // Do something }
몇번 격으니 지원을 하는것 보다는 예외처리를 하는게 제 몸과 마음이 편하다는 것을 깨달았습니다.
추가적으로 교육센터 출신분들에게 물어보면 대부분 코드에 예외처리 하는 것은 안배운다고 합니다..^^