현직 개발자(경력25년)의 프로그래밍 현업이야기

훈장 아르모트

·

2017. 4. 25. 18:38

반응형

제가 스승으로 모시는 분께서 해주신 이야기들을 메모해뒀었는데 프로그래밍을 공부하시는 다른 분들에게도 도움이 될 수도 있을 것 같아서 글을 쓰기로 했습니다. 그런데 대화에서 일부 발췌를 한 것이다보니 내용이 전혀 체계적이지가 않고 두서가 없는 점은 양해를 부탁드립니다 ^^;;

학원이나 온라인 강의로 배우는 수업내용은 기초가 되는 내용이며 실제로 현업에서는 모든 것을 타이핑하지 않는다. 시쳇말로 '쌩코딩' 을 하지는 않는다. 대신 기업에서는 필요한 기능들을 구현할 프레임워크들을 기획-설계한 다음 각각 구입해서 사용한다.

서버사이드 언어인 php로 돌아가는 경우는 거의 없다. 시스템 개선이 열악한 기업의 내부 소프트웨어 정도이다.

html 은 주로 프론트엔드 개발자가 맡아서 하지만, 자바 개발자를 희망하더라도 html을 잘 알고 있어야 효율적으로 업무를 할 수 있다. 그러므로 수강하는 강의에 해당 내용이 없다면 따로 독학을 하는 것을 추천한다. 

마이크로소프트 사의 닷넷프레임워크가 요즘 주춤하다. 요새 자바가 대세가 되다보니 오히려 닷넷 개발자 구하기가 힘들어졌다. 그러나 여전히 닷넷으로 개발된 사이트많기 때문에 오히려 귀하게 여겨지고 있는 재밌는 현상이 일어나고 있다. 예를 들어 인천공항에서 우리가 티켓팅을 하는 시스템도 닷넷으로 이루어져있다.  

안드로이드 개발은 자바 기반이지만 아이폰 개발은 c++기반 언어, 폐쇄적이다.

민원24에서 영문가족증명서를 발급하려면 민원24소속인 행자부 서버에서 데이터받는게 아니라 대법원서버에서 받아오는데, 이때 대법원-행자부 서버 간 '웹서비스' 라는 것을 통해서 암호화된 정보를 요청하고 제공하고 해석한다. 웹서비스는 앞으로 더 중요해질것으로 예상되며 개발언어는 다목적 마크업언어인 XML을 사용한다. 

 

 

 

웹서비스란 네트워크 상에서 서로 다른 종류의 커뮾터들 간에 상호작용을 하기 위한 소프트웨어 시스템이며 서비스 지향적 분산 컴퓨팅 기술의 일종이다. 월드와이드웹 과 혼동하기 쉬운데, 월드와이드 웹은 사람과 컴퓨터 간의 상호작용이고 웹서비스는 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템이다. 

옛날에는 처리 속도 저해를 방지하기 위해 주석이나 디버깅 기능을 꺼렸으나 요즘은 서버가 다 충분히 좋아서, 디버깅 기능 코딩을 안 남기면 바보다. 그래야 오류발생 시 찾아내서 해결하기 쉽다.

공공기관은 서버 운영체제 윈도우나 리눅스보다 솔라리스 많이 쓴다.

jdk 자바 이클립스 설치할 때 환경변수-시스템변수 등록하는 이유는 어느 위치에서나 컴파일 할 수 있도록 경로를 미리 지정해두는 것이다.

다른 사람이 만들어놓은 소스를 가져올 때 이클립스로 바로 복사해오면 안되기 때문에 에디트플러스, 울트라에디트 등의 프로그램을 사용해서 복사해온다.

기업에서는 알집을 사용하지 않는다. 보안문제때문에 반디집을 사용한다.

이클립스에서 public static void main(String[] args) 를 체크하는 이유는 '작성한 코드를 실행해서 결과를 도출해서 보여주세요 하는 메인 메소드이기 때문이다. (메소드가 하나라도 없으면 실행이 안 된다.)

코드에는 문제가 없는데 실행결과가 이상하게 나오는 것을 실행오류라 하는데 그게 프로그래머에게 최악이다. 원인을 추적하기도 어렵다. 코딩은 최대한 직관적으로 작성해야 한다. 그래야 오류가 발생해도 발견할 수 있다. 협업하는 다른 사람이 봐도 알아보기 쉽게 작성한다. 

수많은 학원에서 프로그래머를 양상하고 있는데, 막상 현업에는 20대가 많지 않다. 그 이유는 3개월만에 그만둬서. 야근이 매우 일상적이고 보수가 높지 않기 때문에 지쳐버리고 만다.

실제로 현업에 나가면 코딩실력도 중요하겠지만 업무분석능력이 더 중요하다. 대부분 그게 안되서 포기하게 된다. 고객 혹은 상사의 요청사항을 들어도, 업무분석능력이 부족해서 뭘 해나가야 할지를 모른다.

쉽지 않겠지만 도전해볼만한 가치가 있는 일인 것 같다.

반응형