티스토리 뷰

반응형

요즘 프로그래머가 되기 위해서 취업 준비생들이 걷는 길은 보통 다음과 같습니다.

1. 대학에서 프로그래밍 관련 학과로 진학하거나 복수전공을 수강하여 학위를 취득한다.

2. 고졸, 비전공 혹은 전공이라도 국비 혹은 이름 높은 학원에서 단기 혹은 중장기 과정을 이수하여 이를 바탕으로 취업한다.

사실 이게 아닌 다른 경우가 있겠냐...라고 하겠지만, 일반적인 회사에서 신입을 채용할 때 신입 아닌 신입을 채용하려고만 하니 취업준비생들에게는 허들이 자꾸 높아지는 문제가 발생하고 있습니다.


하지만, 이 글에서 먼저 다뤄보려고 하는 것은 취업준비생이 아닌 취업 후 경쟁에서 살아남아 어느 정도 경력이 쌓인 시점, 즉 경력이 보통 3~5년 정도 된 개발자를 위한 글입니다. 사실 경력이 이보다 더 많더라도 한 번 생각해봐야 할 분제라고 생각하기도 합니다.



간혹, "프로그래밍 심화 과정을 어떻게 배워야 할까요?", "저는 경력이 좀 됐는데 아는게 없어요. 어떻게 해야 할까요?", "실력을 늘리기 위해서 어떻게 해야 할까요?" 등의 질문이 올라오곤 합니다. 저는 주로 답변을 해줄 수 있는 위치에 있긴 하지만, 저의 인생은 하나이고 여러 인생으로 경험을 해온 것은 아니기 때문에 어느 정도 치우쳐진 조언(답이 아닌)을 해드릴 수 밖에 없는게 사실입니다. 하지만, 어느 길로 산을 오르더라도 정상에 가까워지면 다른 길도 어느 정도 보이 듯, 꽤나 오랜 기간동안 프로그래머로써 일해오고 있고 특히 웹 프로그래밍 분야에서 처음부터 일하기 시작해서 지금까지 줄곧 한 우물만 파다보니 이제는 사용하지 않는 기술이나 환경 등을 여전히 알고 있고 거기서 얻을 수 있는 시사점이나 교훈도 젊은 세대들보다는 조금은 더 알고 있을꺼라 생각이 되네요.


위에서 언급한 질문글들에 가끔 젊은 패기가 넘치는 분들은 "한 삼 년만 일하면 배울꺼 없어요", "그 보다 오래 일한 사람들은 그냥 꼰데", "개발 아니라 관리자나 하지" 라는 글을 올리곤 합니다. 아쉽게도 제 주변에는 저를 그런 뒷방 늙은이 취급하면서 실제로는 저를 몰아낼만한 능력자를 못 만나서 아직까지 현업 개발자로 일하고 있긴 하지만요. 그럼 저를 몰아내려면 어떤 식으로 경력을 쌓아야 하는지 이야기를 해보면 원래의 질문에 어느 정도 답이 나오지 않을까 합니다.


저는 2000년도 말에 처음 사회 생활을 시작했습니다. 물론, 특정 대학교 출신분들은 희한하게 꼬꼬마시절 컴퓨터를 배우고 프로그래밍 언어를 다루며 몇 가지 결과물을 낸 것부터 자기 경력으로 삼던데...그렇게 따지면 저도 80년 중반부터 개발을 시작했다고 말해야겠지만, 이건 그들만의 생각이고, 보편적인 기준이라면 역시 취업을 해서 정규직(바로 프리랜서 시작하는 분은 드무니)으로 일을 시작한 시점부터 말을 해보죠. 취업 당시 제가 일한 회사는 자회사 포함 백 여명이 일하던 회사였고, 데이터베이스 구축을 메인으로 하던 업체였습니다. 그러다보니 개발은 이런 구축 업무의 보조적인 역할 정도로 인식하는 분들과 회사의 주요 역량이라고 생각하는 분들이 나뉘어져 있었고, 다행이 후자 쪽의 인식을 가진 분이 오너였기 때문에 나름 괜찮은 개발자 업무를 수행할 수 있었습니다. 기존 개발자들은 상당수가 CD-ROM 에서 설치 파일을 실행하여 Windows 에 바로가기와 실행파일을 만들고 그 실행파일을 이용해 CD-ROM 의 데이터를 제공하는, 쉽게 발해 백과사전 CD-ROM 을 개발하는 것이 가장 잘 알려졌던 회사였습니다. 제가 그 회사에서 했던 일은 기존의 MFC 로 개발되어 UI 가 상당히 고전적으로 보이던 제품을 MFC 개발자가 XML 로 데이터를 만들어주면 제가 XSL 이라는 XML Stylesheet 을 만들어, 지금의 안드로이드나 아이폰의 웹뷰처럼 웹페이지로 사용자에게 정보를 제공하게 해주는 일을 맡았습니다. 지금으로 따지면 프론트앤드 개발자였던 셈이죠. 물론 모든 일이 이런 것은 아니었고, 실제 인터넷을 통해 동일한 내용을 IP 을 이용해 접근 제어를 하여 서비스 하는 일도 했기 때문에 ASP 을 이용해서 개발도 하였습니다. 이러한 부분은 백엔드 개발자의 일을 했겠죠. 쉽게 말해 서버 프로그래머로써 일을 했습니다.

첫 회사가 이러한 CD-ROM 이나 기타 방식의 DB 구축만 하는 곳은 아니었기 때문에 PHP, JSP 을 이용한 웹페이지도 만들었고, SI 사업도 했기 때문에 공공기관 위주로 웹사이트 개발도 많이 했습니다. 회사 규모가 그리 작은 편은 아니었기에 개발자가 모두 한 팀에 속해있지 않았고, 그렇기에 각 팀마다 개발하는 방식이나 사용하던 라이브러리 등이 모두 달랐습니다. 그러다보니 한 회사에 있으면서도 여러 방식들을 익힐 수 있었고, 비교적 이른 시간에 RDBMS 도 여러가지를 접할 수 있었습니다. 그러다보니, 다른 팀의 요청으로 잠시 파견을 가서 회사에 이미 존재하는 ASP & SQL Server 기반의 게시판을 PHP & MySQL 기반으로 마이그레이션을 한다던지, JSP & Oracle 기반으로 3 일만에 뭔가를 만들어 낸다던지 하는 일도 비일비재했습니다.



여기서 저만의 첫반째 강점이 생기기 시작했습니다. 제가 만약 ASP 만 했다면 아직도 AcroEdit 로 소스 전체 검색으로 내용을 찾고 있거나 그랬겠죠. 하지만 ASP 을 하다가 PHP 을 개발하기 시작했을 때 Request 와 Response 가 언어별로 어떤 공통점이 있고 어떤 차이점이 있는지를 알게 됐고, ASP 에서는 왜 FileUpload Component 라는 것을 Wndows 에 설치하고 이를 설정해서 써야 하는데 반해 PHP 는 자체적으로 업로드를 하는지에 대한 차이도 알 수 있었죠.


즉, 경험이 저의 무기가 된 것입니다.


이 경험은 저의 사회 생활 초반에 직장을 여러 번 옮기는데 큰 영향을 미치게 됩니다. 저의 이직 경력을 보면 첫 회사의 자회사 발령이 이직으로 처리된 것도 상당수이고, 회사가 망해서 옮긴 경우도 좀 있는데, 제가 여러 개발언어와 제품을 써본게 매력으로 느끼는 회사들이 있었기 때문입니다(물론 대기업에서 그럴리 없으나).


2019/01/20 - [Programming/기타] - 시니어 프로그래머로 넘어가는 길 (2)


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함