“개발자 엔지니어 차이”를 구글링 해봐도 명쾌하게 구분이 된다는 느낌을 못 받을텐데 내가 볼 때 그건 엔지니어라는 정의가 좀 모호해서다.
개발자는 별로 헷갈릴 게 없다. 코딩해서 프로그램 만들면 개발자다. si건 솔루션이건 자체 서비스건 백엔드 개발자건 프론트엔드 개발자건 뭐건 간에 개발자는 그냥 개발자다. 물론 그 안에서 차이가 크겠지만 개발 언어로 기능을 구현하는 일이라는 점에선 모두 같다.
반면 엔지니어는 앞에 뭐가 붙느냐에 따라 느낌이 많이 달라진다. 솔루션 엔지니어, 네트워크 엔지니어, 시스템 엔지니어, 소프트웨어 엔지니어, 요즘은 AI 엔지니어도…
엔지니어라는 용어 자체가 IT 업계에 국한된 거도 아니고 산업 전반에서 기술자를 부를 때 쓰는 용어기 때문에 그럴 수밖에 없다.
근데 IT 업계에 국한해서 말해도 엔지니어라는 용어는 다양하게 쓰여서 일반화해서 정의할 수가 없다. 그러니까 러프하게 개발자랑 엔지니어 차이를 알아볼 게 아니라 어떤 개발자와 어떤 엔지니어와의 차이를 물어봐야 더 정확한 대답이 나올 수밖에 없는 거다.
이런 과정 없이 그냥 개발자랑 엔지니어가 뭐가 다른지 물어보면 각자 자기 경험에 따라 이야기를 하기 때문에 누구는 엔지니어가 개발자를 포괄하는 개념이라고 하고 누구는 프로그래밍보단 네트워크, DB, 방화벽 같은 인프라 위주로 다루는 직무라고 하고 심지어는 개발자랑 다른 거 없다고 하는 사람도 나온다.
일단 개발자와 엔지니어의 차이를 알아보고 있는 사람이라면 대부분이 취업 준비가 목적일 텐데 미안하지만 검색 내용만으로는 원하는 만큼의 충분한 정보를 얻기는 어려울 거다. 가능한 취업하려는 회사에 있는 실제 직무를 가지고 그 회사 내부에서 답을 얻어야 정확하다.
뭐 이게 어려워서 검색하는 거겠지만 그래도 시간 들이고 애써서 들어갔는데 어? 이거 내가 생각한게 아닌데? 하는 거보다 낫지 않나. 첫 커리어는 매우 중요하다.
이 글도 솔루션 엔지니어와 솔루션 개발자의 차이 정도만 얘기할 수 있을 뿐이니까 그 정도로만 참고하면 된다.
IT 솔루션 업계에서 판매되는 제품들이 있다. 평소 자주 접하는 네이버, 카카오톡, 쿠팡, 배달의민족 이런거 생각하면 안 되고 주로 기업을 상대로 판매하는 네트워크, 방화벽, 이중화, 그룹웨어, 메신저, ERP, PLM, 보안… 이런 것들이다. 자세히보면 별의별 시스템이 다 있다.
만약 솔루션 업체에 개발자로 입사를 하면 이처럼 기업에 판매하는 프로그램을 개발하는 업무를 맡게 된다. 화면이 중요한 솔루션이면 프론트 엔드 개발자가 따로 있을 거고, 그런 구분 없이 다 할 수도 있고, 서버가 없는 윈도우 기반 설치형 애플리케이션이면 닷넷에 C#이나 C++를 많이 쓰는 거 같고…
제품 특성이 모두 다르기 때문에 솔루션 개발자의 업무도 무자르듯 규정할 수는 없지만 그래도 규정하자면 솔루션 개발자는 기업에 파는 애플리케이션을 개발한다. 끝.
이렇게 개발된 제품을 기업 시장에서 영업팀이 판매를 한다. 계약이 되면 이제 제품을 고객사에서 쓸 수 있도록 환경을 구성해야 하는데 이때부터 엔지니어의 업무다.
여기서 혹시 이해가 잘 안 될까봐 미리 말하는데 국내 솔루션 시장은 거의 대부분이 SaaS 처럼 구입 직후 바로 쓸 수 있는 형태가 아니다. 예를 들어 회사에서 노션을 돈 주고 쓰는 경우도 많은데 그렇다고 해서 노션 직원이 회사에 방문해서 서버실에 장비 설치하고 거기에 소프트웨어 깔고 그러지 않는다. 서비스 형태가 다른거다.
다시 돌아와서 IT 솔루션을 회사에 도입하려면 여러 과정이 필요하다. 서버 장비도 입고해야 되고 거기 OS도 깔아야 되고 네트워크 작업도 해야되고… 이런 과정을 솔루션 엔지니어가 모두하는 경우도 있고 자사 솔루션에 대한 설치, 배포 작업만 하는 경우도 있다. 이후 사용하면서 생기는 문제들도 해결해줘야 한다.
이런 걸 솔루션 엔지니어가 한다.
그리고 다시 말하지만 솔루션 회사마다 특성이 다 다르기 때문에 완벽히 똑같은 일을 하는 게 아니다. 가령 사용자 에이전트 기반 솔루션이랑 네트워크 솔루션이랑 엔지니어가 하는 일이 어떻게 똑같겠나. 큰 틀에서 제품 설치하고 유지보수하는 거만 같은 거다.
이렇게 다양한 고객사 환경에서 일하다보면 별의별 장애가 다 발생하게 되는데 이건 솔루션만 멀쩡하다고해서 될 일이 아니다. 환경이 다 다르고 고객사 요구사항도 다 다른데 이걸 어떻게 통일하겠나. 그러니까 엔지니어 업무도 만만하지가 않다.
정리하면 개발자는 익히 알고 있는대로 프로그래밍 하는 사람인거고 솔루션 엔지니어는 개발된 제품 설치 및 유지보수하는 사람인 거다. 에어컨 만드는 사람 따로 있고 에어컨 고치는 사람 따로 있듯, 자동차 만드는 사람 따로 있고 자동차 고치는 사람 따로 있듯. 솔루션 시장도 그렇게 분업화 되어 있는 거다.