IT의 중심에서

기술은 사람을 행복하게 할 때 가장 가치가 크다.

소프트웨어 개발자의 종류

2017.08.22.

이 글을 전반적으로 다시 업데이트 합니다.

10년 정도는 벤처와 포털, 제 사업을 했고, 10년 정도는 SI 분야를 돌아 다닌 것 같습니다. 물론 왔다 갔다 했고요. 적지 않은 친구들과 일을 했고, 지금도 그러고 있고, 앞으로도 그럴 것 같습니다.

뭔가 이론적으로 접근하면 너무 포괄적이 될 것 같아서, 신입사원만 초점을 맞추어 정리를 했습니다. 내용은 개발자라기 보다 직업군의 종류라고 보는 게 맞습니다.

아래 사례 중 대체로 윗쪽일수록 연봉이 높습니다. 그래서 젊었을 때는 위로 올라갈수록 좋은 줄 알았습니다. 하지만, 지나고 나서 보니 그냥 나름대로 장단점이 있는 것 같습니다. 지금으로서는 어느 게 더 좋다고 말하기 힘듭니다.

분명한 건 각 분야별로 익혀야 할 Skill 들이 다르고 일하는 환경이 다르다는 것입니다.


소프트웨어 엔지니어의 진화

소프트웨어 엔지니어의 진화

1. IT 컨설턴트

삼성, LG, 현대, HP, IBM 등에서 일을 합니다. 큰 회사에 컨설팅 부서가 있습니다. 주 대상 고객이 임원이나 사장님들입니다. 결과물은 보통 보고 자료입니다. 파워포인트로 만듭니다. 내용은 주로 현재 진단과 미래 예측치입니다.

현재를 진단하기 위한 전문지식과 날카로운 통찰력이 있어야합니다. 미래를 예측하기 위해서는 업계 트렌드나 환경의 변화를 이해하고 있어야 합니다.

그래서, 고객의 대기업 선호현상이 뚜렷하고, 학별과 전문경력을 많이 따집니다. 그만큼 쉽게 신뢰성을 증명할 수 있는 방법이 없기 때문입니다.

주로 고객 인터뷰와 회의, 정보검색, 토론, 문서작업 등으로 많은 시간을 보냅니다. 멋있긴 한대 야근이 많습니다. 페이는 높은 편입니다. 주로 창의적인 해법들이 필요하기 때문에 두뇌 스트레스가 매우 높습니다.

과거에는 개발자가 컨설턴트가 되는 경우가 거의 없었으나, 최근에는 일부 개발자들이 컨설턴트로 유입되고도 있습니다.

2. 기술 영업 Technical Sales

IBM, HP 에는 기술 영업이라는 파트가 있습니다. 보통 영업은 계약을 수주하는 것이 목표인데, IT는 기술 전문성이 높아야 시스템(HW or SW)을 팔 수 있습니다. 그래서 고객에게 기술을 설명하고 기술 지원을 담당하는 “기술 영업”이라는 직업이 있습니다.

SI/SM 회사에는 없고, B2B 솔루션을 파는 기업들은 필수적으로 있습니다. 주 고객은 “전산실 담당자” 이지만, 주 사용자는 “소프트웨어 개발자” 들입니다. 따라서, 개발 중에 나타나는 다양한 문제를 잘 이해하고 있어야 판매할 수 있습니다.

따라서, 초보자가 하는 경우는 거의 없고 해당 업무와 기술을 잘 이해하는 베테랑 개발자들이 담당하는 경우가 대부분입니다.

영업 실적과 연계되기 때문에 보상은 꽤 높은 편입니다. 주로 하는 일은 영업 현장에서 고객의 문제점을 상담하고, 기술을 설명해 줍니다. 프로젝트 초기에는 기술문서를 정리하고 개발자들이 원활히 개발할 수 있도록 기술지원을 해 줍니다.

3. 프로젝트 매니저 Project Manager

프로젝트 관리 직업군은 좀 복잡합니다. 프로젝트매니저는 수주된 계약의 “구현”과 “납품”을 담당합니다. 그래서 고객과 프로젝트 개발팀 사이에 위치하는 직업입니다. 자원 조달, 일정 확인 조율, 고객 커뮤니케이션, 개발방향 설정 같은 것을 합니다. 단기 목표가 뚜렷한 SI 사업에는 반드시 필요하며, 같은 직업군으로 QAO가 있습니다.

주 고객은 IT시스템을 받아서 운영하는 “전산실”입니다. 간혹 IT시스템을 사용하는 실무 담당자가 고객이 되기도 합니다. 삼성SDS, SK C&C등 대형 SI/SM기업을 중심으로 수요가 높습니다.

프로젝트 관리역량과 기술 관리 역량이 함께 있어야 하고, 책임 지는 직업이기 때문에 베테랑 개발자나, 컨설턴트가 맡습니다. 하지만, 스킬이나 철학을 가르치는 곳이 따로 있지는 않습니다.

관리역량 외 고객 대응 스킬이 좋아야 해서 성격이 맞지 않으면 하기 힘듭니다. 연봉이 높긴 하지만, 실행된 계약 내에서 “평가” 되기 때문에 영업 직군보다는 낮습니다.

간혹 SI기업이 아니라, 사내 프로젝트로서의 프로젝트 매니저도 있습니다. 하지만, 이 경우 직업군이라기보다는 한시적인 역할 개념이라 내용이 많이 약한 편입니다. 그리고 보통 팀장 한 분이 프로젝트 관리자를 겸하기도 합니다.

4. 제품 관리자 Product Manager

제품 관리자는 SI 개념에는 존재하지 않습니다. 제품 기획, 설계, 출시, 사후관리까지 모든 것을 책임지기 때문에 오너쉽이 없으면 안됩니다. 그리고, 제품이 존재하는 한 필요한 사람이라 한시적이지도 않습니다. 그래서 직업이라기 보다는 역할입니다. 즉, 삼성 스마트 TV 사업부에 입사를 한 다음에야 “OO 제품 관리자”가 된다는 것입니다. 그래서 “스마트 TV 제품 관리자”를 찾습니다 라고 공고가 뜨지 않습니다. 직업으로서 말이죠.

이 포지션은 일반적으로 기술보다는 “소비자”를 더 많이 공부 해야 해서 “기획자”들이 많이 지원합니다. “데이터베이스”, “그룹웨어” 같은 IT 제품들도 고객과 가까운 사람이 맡기 때문에 대부분 개발자 출신 보다 비 개발자 출신이 많습니다.

“프로젝트 관리자”와 다른 점은, 제품에 대한 오너쉽이 있기 때문에 요구사항을 스스로 확정한다는 것입니다. SI 사업의 경우 “구현”에만 초점을 맞추기 때문에 “요구사항”을 능동적으로 확정짓지는 않습니다. “프로젝트 관리자”는 프로젝트가 끝나면 철수하는 직업군이지만, “제품관리자”는 그렇지 않습니다.

5. 시스템 엔지니어 System Engineer

IT 분야에서 시스템은 “컴퓨터”를 말합니다. 인터넷 서비스도 결국 “컴퓨터”란 하드웨어 위에서 작동하기 때문입니다. 그래서, “컴퓨터”가 효율적으로 작동할 수 있게끔 지속적으로 여러가지 조율작업을 해주어야 합니다.

유사 직업으로는 시스템 관리자, 시스템 엔지니어, 컴퓨터 엔지니어, 네트워크 엔지니어 등이 있습니다. 하지만 하는 일이 명확히 구분될 정도로 서로 다른 일이긴 합니다. 불과 몇년 전만 하더라도 각 기업들이 “서버 컴퓨터”를 직접 사고 관리하기 때문에 직업 수요가 많았습니다.

하지만, 최근에는 임대형 클라우드 확산으로 직업 수요가 많이 줄어서 HP, IBM 같이 하드웨어 납품 회사들만 잠깐씩 채용공고가 납니다. 납품 대상은 “전산실” 인데, 전산 담당자들과 이야기하는 경우가 많지는 않습니다.

하드웨어 쪽이라 소프트웨어 개발자가 이쪽으로 이직하는 경우는 많지 않습니다. 아예 처음부터 “컴퓨터공학” 졸업자가 이쪽으로 취업하는 경우가 많습니다.

HP 같은 곳에 취업하면, 주로 시스템을 납품하는 일을 하게 되고 은행 같은 곳에 취업하게 되면 “전산운영실” 같은 곳에서 일을 하게 됩니다.

6. 솔루션 엔지니어 Solution Engineer

데이터베이스 엔지니어, 웹로직 엔지니어 같은 사람을 말합니다. 정확히는 개발된 솔루션(소프트웨어)를 서버에 잘 설치하고, 이를 이용해서 잘 개발할 수 있도록 이것 저것 기술지원을 해주는 사람을 말합니다.

서버에 설치되는 소프트웨어는 PC와 달리 한 번의 설치로 끝나지 않습니다. 설치하면서 이것저것 환경설정도 필요하고, 가장 잘 운용될 수 있는 하드웨어 환경도 세팅해야 합니다. 멀티 유저 멀티 태스킹 환경에서 운용되기 때문입니다.

다루는 데이터량이나 사용하는 방법에 따라 소프트웨어에 할당되어야 할 “메모리”나 “CPU” 사용량 이 다릅니다. 그리고, 가장 최적의 상태로 사용될 수 있게 이것저것 환경 설정을 해줍니다.

오라클, 웹로직, 티맥스 같은 회사에서 채용공고가 납니다. 영업이 수주를 하면 주로 “납품”하는 역할을 담당합니다. 신입을 채용하는 경우도 적지 않습니다. 보통 사수를 통해 일을 배웁니다. 일이 어렵지는 않은데, 해당 솔루션이 아니면 이직 기회가 낮은 편입니다.

7. 소프트웨어 엔지니어 Software Engineer

솔루션 개발자와 하는 일은 비슷합니다. 다만, 우리 회사가 직접 개발한 소프트웨어를 서버 컴퓨터에 올려 놓고 운영, 최적화 하는 일을 합니다. 작은 회사에는 직업이라고 부를 만한 것이 없습니다. 하지만, 100 여대 이상의 서버에 소프트웨어를 배포하는 경우는 운용환경을 민감하게 살펴야 합니다. 조그마한 옵션 하나가 기가 바이트 단위의 스토리지 용량을 늘리거나 줄일 수 있기 때문입니다.

페이스북에는 소프트웨어 엔지니어가 따로 있습니다. 하지만, 대부분의 작은 기업들은 소프트웨어 개발자가 엔지니어링을 함께 하고 있습니다.

만일 이걸 뽑는 기업이 있다면, 대기업일 가능성이 높습니다.

8. 솔루션 개발자 Solution Provider

우리 나라의 경우 시중에는 반제품 형태의 솔루션들이 많이 있습니다. 엔진만 가지고 있거나 범용성이 부족한 형태로 개발된 경우를 말합니다. 이런 제품들이 생각보다 많이 유통되고 있습니다.

이런 솔루션을 고객사에 “납품”할 때는 해당 솔루션을 이용해서 주변 기능을 구현해 줄 개발자들이 필요합니다. 주로 SI 형태로 “납품”되기 때문에 채용 공고가 곧잘 나는 편인데, 기술 난이도가 높지 않아 주로 “초급 개발자”나 “신입 개발자”를 많이 찾습니다.

영업 실적이 좋은 회사의 경우 페이가 좀 세기도 합니다. 하지만, 핵심 기능은 대부분 솔루션이 처리하기 때문에 개발자 입장에서 기술적 성취도가 높지 않습니다. 그리고, 그 회사를 벗어나면 경력을 인정 받지 못하는 경우가 많아서 이직의 기회가 낮은 편입니다.

9. 소프트웨어 개발자 Software Developer

“비즈니스 개발자”. 보통 앞에 수식어가 이렇게 붙습니다. 회계 개발자, 물류 개발자. 주로 일반 업무 기능을 소프트웨어로 구현하는 사람입니다.

SI회사는 전문화된 기술용역을 판매하기 때문에 이런 개발자들이 많습니다. 주 고객은 비즈니스의 실무 담당자(=현업)들입니다. 장점은 기업의 필수 업무는 거의 변하지 않기 때문에 꾸준히 일거리가 있습니다. 예를 들면, 회계, 인사, 노무 같은 업무와 빌링, 인증 같은 업무가 있습니다. 다만 경쟁이 심해지거나, 일거리가 풍족하지는 않을 수 있습니다.

인터넷 서비스 회사에는 내부 개발팀이 이런 일을 합니다. 하지만, 대부분 공통 조직이라 개발자가 필요에 따라 이런 저런 업무를 번갈아 가면서 합니다.

“솔루션 개발자”. 그룹웨어 개발자. 머신러닝 개발자. 보통 엔진 같은 걸 개발합니다. 연구개발 하면서 개발하기 때문에 기술 난이도가 높습니다. 이론 공부도 많이 해야 하고, 신 기술 공부도 많이 해야 합니다. 개발자로서의 성취도가 높은데, 좋은 사수를 만나야 좋습니다. 비슷하게 “패키지 개발자”, “데이터베이스 개발자” 등이 있습니다.

“서비스 개발자”. SNS 개발자, 사진서비스 개발자. 인터넷 서비스를 개발하는 사람들입니다.

10. 프로그래머 Programmer

보통 앞에 수식어가 이렇게 붙습니다. 로봇 프로그래머, 앱 프로그래머(개발자).

광의로는 소프트웨어 개발자와 혼용됩니다. 하지만, 굳이 협의로 보자면 컴퓨터 작동에 더 초점이 갑니다. 좋은 점은 고객 대면 업무가 많지 않습니다. 주로 제품 판매를 통해 돈을 법니다. 그래서, 기계적인 로직개선, 프로그램 최적화에 대한 가치 비중이 높습니다. 현실적으로는 소프트웨어 개발자로 채용공고가 나오기도 합니다.

11. 코더 Coder

코더는 코드를 타이핑하는 단순작업자를 말합니다. 아주 옛날 프로그래머와 코더(펀처)가 분리되어 있던 시절이 있었습니다. 요즘은 이런 직업이 없습니다. 하지만 고수들이 스스로를 낮추어서 이렇게 부르기도 합니다. 나 망치질 한다… 이런 느낌으로.

또는 임베디드 개발자들 사이에서 많이 사용되기도 합니다. 어셈블리 같은 건 코드 규칙도 중요하기 때문입니다.

요즘의 현실세계에서는 주로 초급개발자를 코더라고 부릅니다. 단순작업을 주로한다는 뜻인데 딱히 좋은 말은 아닙니다. 이런 인식은 미국도 비슷한 것 같습니다.

※ 수정이력
3차 수정 : 2017.08.22. 전면 재작업
2차 수정 : 2017.05.17. 내용을 많이 손 보았습니다.
1차 수정 : 2014.09.14. 코더 부분 수정 (@DuncanSungWKim 지적에 따라)
최초 : 2011.05.20.

Advertisements

소프트웨어 개발자의 종류”에 대한 4개의 댓글

  1. 핑백: 개발을 시작한다면.. 목표 (start developer) - SourceCube

  2. 핑백: 개발을 시작한다면.. 목표 – Developer Mystes

  3. 이런 논리라면 리누스 토발즈도 Coder입니다. 마치 고객의 기쁨을 위해 사는게 IT의 유일한 목적인가요?

    • subokim
      2012년 9월 14일

      흠. 그렇겠네요. 뭔가의 차이를 설명하고 싶었는데요. 글을 좀 손 보겠습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

정보

이 엔트리는 2011년 5월 20일에 님이 개발자의 삶에 게시하였으며 , , 태그가 지정되었습니다.

내비게이션

%d 블로거가 이것을 좋아합니다: