안녕하세요.
현직 2년 4개월차 프로그래머 입니다.
처음 일을 시작할때 Google Tesseract OCR 엔진을 응용한 응용OCR엔진을 만드는걸 대략 7개월정도 해봤고, 1년정도는 QT를 사용한 윈도우즈/맥 프로그램을 유지/보수했습니다. 나머지 8개월정도는 안드로이드 앱 개발을 맡아서 했습니다. 현재까지 그 안드로이드 개발을 쭉 이어서 하고 있습니다.
2년반에 가까운 시간동안 주로 클라이언트 프로그램을 만드는 일을 해보면서 느낀것은 제가 서버사이드 프로그래밍 또는 시스템 프로그래밍 쪽에 더 관심 있어하고, 만약 하게 된다면 지금보다는 더 잘할 수 있을것 같다라는 겁니다. 물론 아직 실제로 겪어본건 3개월정도 윈도우 서버에서 돌아가는 단순 http 프로토콜 request에 대한 response 주는 프로그램 정도 입니다. 딱히 '서버'라고 칭할 수 있는 프로그램이 설치된 장비는 아니었고, 제가 만든 프로그램이 알아서 제한된 request를 받고 response를 해주는 정도였습니다.
여하튼.. 그래서 최근 이직을 결심하고 있는데, 서버 프로그램/네트워크 프로그래밍을 할 수 있는 회사를 알아보고 있습니다. 그런데 도대체 어떤 직종을, 어떤 업무에 지원을 해야하는지 감이 잡히질 않습니다.
제가 그동안 회사의 다른분들이 하시는걸 보기도 하고, 따로 공부를 하기도 하면서 알아보고 나서 제가 분류해본 네트워크/서버 관련 업무 입니다.
(다 제가 이해해보고/추측해본 플로우입니다. 정확하지 않습니다.)
1. Spring+톰캣+아파치 서버
저희 회사에서 제일 주로 보게 되었던 조합입니다.
리눅스 장비에 아파치 서버를 돌리고, 아파치 서버가 일반 페이지에 대한 요청을 받아서 jquery+html 페이지를 보여주는 역할을 하고, jsp 페이지 요청은 톰캣이 받아서 Spring으로 짜여진 웹프로그램을 돌린후 그 결과를 jsp 페이지를 통해서 보여주고..
반응성 있는 페이지는 주로 jquery를 통해서 만들고, DB에서 뭔가 데이터를 받아와서 뿌려줘야 할때는 jsp를 통해서..
==> '웹 프로그래밍'
2-1. Nginx + Node.js + DB
클라이언트 앱이 필요로 하는 데이터들을 받아야할때 서버에 특정API url을 호출해서 Node.js가 DB에서 데이터를 긁어와서 돌려주는..
또는 특정API url을 호출하고 어떤 로직이 Node.JS를 통해서 수행이 된 뒤에, 결과값에 있는 또다른 url을 통해서 파일을 받아와야 할때는...
nginx가 지정한 www 루트에 파일들이 있고, 그 url을 가지고 클라이언트에서 파일 다운로드를 하게끔 했었습니다.
2-2. 위에서 언급한것처럼..브라우저말고 클라이언트 앱들에게 데이터를 제공해주는 목적을 가진 서버..
제가 느끼기에는 이런 프로그램들은 '서버' 라기 보다는 '특정 포트'와 '특정 프로토콜'을 통해서 들어오는 요청에 대한 처리를 하는 서버 사이드 프로그램이라고 생각됩니다.
==> '서버 프로그래밍'
3. 서버 엔지니어
개발쪽 보다는 일반적인 상용/오픈 프로그램들을 조합해서 여러가지 요청(http요청, ftp, 등등)에 대한 처리를 잘할 수 있도록 셋팅/튜닝 시키는 직종.
==> '서버 관리'
4. 네트워크 엔지니어
아직 잘 감이 안 잡힙니다. -_-; 물리적인 네트워크 망 설치 및 보수, 서버 설치 등의 일 정도로만 생각됩니다. (제가 이해할 수 있는 한도에서 구직 사이트의 '업무 설명'을 통해서 얻은 결론입니다. 이게 다가 아닐거란건 알고 있습니다.)
==> '??????'
흠...이 4가지중에서 제가 관심있어 하는 분야(?)라고 하면 2번 입니다.
그럼...질문 드리겠습니다. (제가 글을 잘 못써서 글의 흐름이 막 뛰네요 ㅋㅋ)
1. 2번..쪽을 하는게 전망이 있나요? 수요가 있나요?
2. 제가 2번쪽을 선택한다면 공부 시작을 위해서 추천해주실만한 책을 알려주시면 감사하겠습니다.
(어차피 한가지 책으로 모든걸 알 수 있지도 못하고, 책에 모든것들이 다 적혀있지 않다는건 잘 알고 있습니다. 그래도 저는 책을 선호하는 편이고, 책에는 그래도 검색으로 알 수 있는 정보들보다 더 짜임새 있게 지식들이 들어있다고 생각합니다.)
3. 많은 경우에 직종에는 '서버 프로그래머' 또는 '웹 프로그래머' 이정도로만 써있고, 설명을 봐서도 조금 애매할 때가 있습니다. 물론 아예 어떤 어떤 언어와 프레임워크 등을 다룰 수 있는 웹 프로그래머! 이렇게 써있는 경우도 있지만요.
2번 경우의 업무를 하는 직장을 찾으려고 한다면 구직 사이트에서 채용정보를 볼때 어떤 직종을 뽑는걸 봐야하는지요? 어떤 업무를 하는지 살펴 봐야하는지?
아무래도 지금 상태에서는 지원이 힘들것 같다면 몇개월 쉬면서 공부를 해서 지원을 해보려고도 합니다. 그런데 지금 나이가 아주 적은건 아니어서 적절한 준비후에 일하면서 공부를 하던 아니면 쉬면서 공부를 하려고 합니다.
조그만한 도움이라도 부탁드립니다.