1. 웹 개발 분야 알아보기. 나는 어디로 가야 할까?  

 

※ 먼저 필자는 현재 Solution 업계에 몸담고 있으며, 타 업계에 대한 이야기는 주변의 경험담을 바탕으로 한 정보임을 알립니다.

 

예비 신입 개발자의 최대 고민. 나는 어느 분야로 가야 할까?

IT 웹 개발 분야는 크게  SI / SM / Solution 업계로 나누어진다.

 

SI가 뭐냐?

SI –  System Integration, 시스템을 통합/구축하는 일이다.

 

대기업이나 공기업 등 갑이 되는 측에서 필요한 웹/프로그램 개발 프로젝트를 추진한다. 직접 개발하는 일은 거의 없다. 외부 하청 개발업체들을 입찰시키거나 개발인력 공급업체를 통해 개발 프리랜서를 고용하는 방식으로 프로젝트가 시작된다. 설계부터 시작해서 새로운 시스템을 구축하거나, 이미 만들어진 프로그램을 전반적으로 리뉴얼 또는 업그레이드시키는 것을 보통 SI라고 지칭한다. 이런 곳에 투입되는 개발자들이 소위 나 같은 생계형 코더님들이 되시겠다. 나는 SI와는 성격이 조금 다른 Solution 업계에서 일을 하고 있는데 그렇다면

 

Solution은 뭐냐?

솔루션 업체란 말 그대로 자사 솔루션을 가지고 있고, 제품을 고객사에 공급하는 업체이다. 물론 고객사의 환경과 요구에 따라 커스터마이징이 들어가기도 하는데 일단 기본 틀은 자사 솔루션을 토대로 개발하고, 완성된 제품을 고객사에 공급하는 일을 한다. 즉, SI와는 자사 솔루션을 가지고 있느냐 없느냐의 차이이다.

쉬운 이해를 돕기 위해 실제 경험 위주로 예시를 들어보겠다.

 


SI 예시 1)

한 전기 회사에서 전력을 측정하는 모든 기록을 엑셀로 관리해왔다. 엑셀에 수기로 작성하고 계산되다 보니 개인의 실수로 인한 측정 오차가 많았고, 가장 큰 문제는 실시간으로 공유할 수 없다는 점이었다. 그래서 각 측정 정보를 실시간으로 공유할 수 있고 모든 측정치를 자동으로 계산하고 도표화해주는 전력 측정 프로그램 개발 사업을 추진하기로 했다. SI 사업 발주를 내고 하청업체 입찰을 진행한다.

SI 예시 2)

한 공기업에서 사용 중인 시스템이 너무 오래되어서 4차 산업혁명에 따라 시스템 고도화 사업을 진행해야 한다. 기존에 하나의 망으로 관리되던 사설망을 2중(사내망, 외부망)으로 분리해 모든 네트워크 망 시스템을 고도화하는 사업이다. 기존에 사용하던 네트워크 망 협력 업체와 협의하여 새로운 SI 프로젝트를 진행한다. 보안 상(공기관, 금융기관 등이 보안에 매우 민감하기 때문에 대부분 원격이 불가하여 사내 상주 근무가 불가피하다.) 협력 업체의 개발자들은 프로젝트 동안 공기업 내에서 상주 근무를 하며 프로젝트를 진행해야 한다.

 


Solution 예시 1)

온 국민이 다 사용하고 있는 본인인증 시스템을 예로 들어보겠다. 거의 모든 사이트에서 본인인증 서비스를 지원하고 있다. 그렇다면 이 인증 서비스는 각각 모두 자사에서 개발해 사용하는 것일까? 당연히 아니다. 본인인증 솔루션을 가지고 있는 보안 업체가 있고, 이 회사의 인증 제품을 사용하는 모든 회사가 이 보안업체의 고객사가 되는 것이다.

Solution 예시 2)

일반적으로 사내 인트라넷에 기본으로 필요한 기능들을 갖춘 사내 인트라넷 솔루션 공급업체. 이 경우에는 회사마다 필요 기능, 요구 사항이 천차만별이기 때문에 솔루션을 가지고 있지만 커스터마이징 비율이 매우 높아질 수 있다. 디자인부터 시작해서 거의 80-90%까지 커스텀 개발이 들어가기도 한다. 이런 현상을 두고 솔루션 업체에서 SI를 경험하게 된다고 하는데 실제로 빈번하게 일어나는 일이라고 한다.

 

 

 

 

자 그럼 이제 마지막으로,

SM은 뭐냐?

아물론 취향 아니고요, 아이돌 회사 아니고요,

SM  – System Maintenance, 시스템을 유지보수/운영하는 일이다.

 

즉 앞의  SI  또는 Solution 시스템 구축이 완료되면 그 시점부터 시스템을 유지보수 및 관리해야 한다. 유지보수는 장애 수정, 기능 개선, 버전 업데이트, 정기점검 등을 통해 유저들이 시스템을 안정적으로 사용할 수 있도록 운영/관리하는 것이다.

 


SM 예시 1)

SI 예시 1의 프로그램 구축이 완료되었다. 전기 회사 전산실 SM 파트의 개발자들은 프로그램을 분석하고 파악한 후 사용자 문의에 응답, 에러나 버그 발생 시 수정 등의 업무를 하며 해당 프로그램을 유지보수/ 운영관리 하는 일을 한다. 

SM 예시 2)

Solution 예시 2 보안 솔루션 업체의 SM 파트에서는 자사 솔루션을 공급한 고객사의 제품을 유지보수/관리한다. 고객사에 정기적으로 방문하여 자사 제품에 대한 정기 점검 및 제품을 개선하는 일을 하고, 제품의 에러나 버그 발생 시 연락 받으면 수정 조처를 한다. 

 

실제 상황을 예로 든 설명이 조금 더 와 닿았기를 바란다. 

불과 몇 년 전만 해도 SI와 SM의 차이점이 뭔가요?? SI Solution 어디로 가야 할까요?? 따위의 질문을 주변에, 초록 창에 묻고 또 묻던 내가 기억이 난다. 과거의 나와 같은 초년생분들께 도움이 되길 바라면서 계속해서 써 보겠다. (하라는 일은 하고.. !)

※관련주제 유튜브 링크

 

 

2. 웹개발 분야 차이점? 장단점? 알아보자.

 

 

SI와 Solution의 차이점?

 

앞서 예시에서 알 수 있듯이 둘의 가장 큰 차이점은 자사 솔루션을 가지고 있느냐 없느냐의 차이이다.

SI는 아무것도 없는 무(無)의 상태에서 고객의 요구 사항을 기반으로 만들어내는 것이다. 개발 앞 단계인 분석 설계 단계부터 시작해서 전반적인 과정에 참여해야 하다 보니 상주/파견 근무를 하는 경우가 많다.

솔루션은 본사에서 자사 솔루션을 개발하는 일을 하게 되거나, 또는 고객사의 니즈대로 본사에서 솔루션 커스텀 개발이 완료된 후 완성된 제품을 고객사에 공급하는 방식으로 일을 하기 때문에 기본적으로는 본사 근무를 하되, 외근/출장 방식의 근무 환경일 가능성이 크다(필요에 따라 상주/파견 근무할 수 있음). SI는 거의 99% 파견/상주 근무이기 때문에 본인의 근무 환경 예민도에 따라 신중히 고민해보아야 한다. 실제로 일보다도 환경에 적응을 못 해서 관두는 경우도 많이 보았다.

주의할 점은 SI 중에서도 개발이 아닌 인력 장사 위주로 돌아가는 업체들이 존재하는데, 이 바닥에서 전문 용어로 보도방이라 불릴 정도로 악명 높은 업체들이 실제로 너무나도 많다는 게 문제이다.

취준 시절, SI 업체에도 꽤 면접을 보러 다녔었는데 이런 인력 장사 스멜이 폴폴 나는 곳은 뒤도 안 돌아보고 걸렀다. 이런 인력 업체들을 잠깐 짚고 넘어가자면, 사람을 뽑아서 파견을 보낼 때 일명 경력 뻥튀기를 해서 업체에 인력을 공급하는 업체이다. 0년 차 신입을, 파견 보내는 갑의 업체에 3년 차 대리로 경력을 부풀려 인건비 수수료를 챙겨 먹는 방식으로 이득을 챙기는 것이다. 갓 난 신입을 혼자 파견 보내는 경우는 정말로 외롭고 힘든 사투가 시작된다.(대외적으로는 대리급 경력자여야 하기 때문에 모르는 티도 못 낸다고 함) 이런 업체가 하도 많아져서 SI 업계가 개고생하는 일로 인식이 굳어진 면도 없지 않아 있다. 사회 첫발부터 낙동강 오리알 신세를 피하려면 SI 면접 시에는 팀별로 파견을 나가는 구조인지, 파견 전 교육 여부, 사수가 있는지 등을 면접 시 꼼꼼하게 체크해보시길 바란다.

 

 

 

 

SI와 Solution의 장단점?

 

솔루션은 경험을 바탕으로 자세히, SI는 경험자들의 이야기를 바탕으로 간략히 써 보겠다.

일단 솔루션 현직자의 입장에서 느끼는 장점은, 신입의 입장에서 솔루션의 이미 잘 짜인 소스와 기술을 보고 익히면서 배울 수 있다는 것이다(지나치게 구식의 기술을 쓰고 있는 솔루션은 피하자). 개발의 깊이는 조금 덜할 수 있지만 하나의 SW가 돌아가는 전반적인 데이터 플로우를 배울 수 있다. 필자의 경우 주 업무는 자바 웹 개발이긴 하지만 이 제품이 돌아가기 위해서는 컴퓨터의 운영체제부터 시작해서 네트워크 영역까지 이해가 필요하다. 덕분에 이전에는 만져볼 일도 없던 Linux 환경에서 명령어도 날려보며 서버 개발까지 경험해 볼 수 있었다. 물론 처음에는 아주 개고생을 했지만 ‘서버 단까지 이해도를 가지고 있는 웹 개발자’라는 자부심을 갖게 되었다.

단점은 해당 솔루션 내에서만 바싹해진다는 것이다. 당연한 일이다. 하나의 솔루션을 매일같이 보고 물고 뜯고(?) 하기 때문에 분야가 좁아질 수 있다. 하지만 신입의 입장이라면 분야를 따질 처지가 아니기 때문에 솔직히 SI나 Solution이나 거기서 거기라는 게 내 생각이다. 신입 딱지를 뗀 후, 이후 방향을 어떻게 나아가느냐부터 중요해질 것이다. 한곳에 머물지 않고 새로운 도전을 해야 발전할 수 있다고 생각한다. 시작도 전에 방향성을 고민하느라 시간을 지체하지 말고, 일단 어디든 가서 신입 딱지를 뗀 후 방향성에 대해 고민해도 늦지 않다.  

SI의 장점은 아주 다양한 환경에서 다양한 개발을 두루 경험할 수 있어 배움의 기회가 많다. 매번 다른 환경에서 다른 프로젝트를 뛰어야 하니 프로젝트의 수가 늘어날수록 개발 실력도 늘어날 수밖에 없다. 모든 프로젝트는 에러가 생기기 마련인데 이런 에러들을 해결하면서 가장 중요한 ‘문제 해결력’을 기를 수 있다.

우리 회사에도 SI 경력만 무려 10년 정도 되시는 개발자분이 계시는데, 옆에서 배우면서 확실히 문제 해결에 관한 통찰력, 개발 응용력 등이 뛰어나다고 느꼈다. 쌓아온 경험치가 있으니까 처음 직면하는 문제에도 대충 감이 오는 것이다. 확실히 한 가지 솔루션만을 다루다가 새로운 환경으로 가는 것과(나도 항상 고민하는 부분이다.) SI를 하다가 새로운 환경으로 가는 경우 중에서는 후자가 훨씬 여유로운 포지션이 아닐까 예측해본다.  

단점은 역시 근무환경이다. 대부분 상주/ 파견근무로 이루어지기 때문에 본사의 위치와 상관없이 본인이 어디서 어떤 프로젝트를 하게 될지 사전에는 알 도리가 없다. 또한 위에서 언급한 인력 장사를 하는 악덕 기업이 많아서 자칫 첫 단추를 잘못 끼우는 실수를 범할 수 있다는 점. SI를 생각한다면 사수와 함께 팀 단위로 파견 나가서 신입에 맞는 일을 할 수 있는 환경이 갖춰진 정상적인 회사를 잘 구별하시기 바란다. 필자도 취준 시절 SI 업체에 꽤 면접을 보러 다녔는데 그래도 3곳 중에서 1곳은 팀별로 파견을 나가는 체계가 잘 갖추어져 있었고 기술 면접 시험과 질문이 굉장히 심층적으로 이뤄져 신뢰가 갔었다. 최종 면접에서 떨어지긴 했지만 만약에 그 회사에 붙었다면 SI에서 시작하지 않았을까 회상한다.  

 

 

 

 

SI(solution포함)와 SM의 차이점?

 

앞글에서 설명했듯 SM은 SI와 Solution에서 구축된 시스템을 유지보수/관리 운영하는 일이다.

SI와 Solution 같은 경우 개발 구축을 한다는 점에서 동일하고 환경과 방식의 차이라면 SI와 SM은 업무의 성질이 다르다고 볼 수 있다.  

 

 

SI(solution포함)와 SM의 장단점?

 

많이들 하는 소리가 ‘SM은 SI에 비하면 일이 편하다. 워라밸이 보장된다. 대신에 실력을 키우기는 힘들다.’ 인데, SM 파트는 우리 회사에도 있기 때문에 담 넘어 엿본 결과, 아주 틀린 말은 아니다. 하지만 편하다는 말에는 ‘장애’ 없이 시스템이 잘 돌아가는 경우에 한정된다는 것이 맹점이다. 이놈의 장애가 터졌다? 하면 주말이고 새벽이고 상관없이 무조건 긴급 연락을 받게 되고 조처를 해야만 한다. 특히 긴급 연락들이 개인 핸드폰으로 오기 때문에 결코 워라밸이 보장된다고 보기는 어려워 보였다.

SI/Solution의 경우는 프로젝트 스케줄에 따라 워라밸이 들쭉날쭉하다. 프로젝트 초반에는 비교적 여유로운 반면 시스템 오픈 시점에는 워라밸 따위는 기대해선 안 된다. 이 시점이 흔히들 말하는 야근크리의 연속, 당연한 철야 근무 시점이다. 개발이라는 것 자체가 유저들이 정상적이고 안정적으로 시스템을 사용하도록 하는 일이라, 보통 시스템 오픈 작업은 유저들이 사용하지 않는 철야 작업으로 이루어지고 이 기간에 장애라도 터지는 날에는 밤을 새우는 일도 허다하다. 우스갯소리로 개발자들끼리는 약속 파투를 1시간 전에 내더라도 그 이유가 오픈 장애면 바로 “ㅇㅇ 수고해라.” 하고 바로 이해할 수 있다며…

실력 부분에서는 보통 SM의 개발이라 함은 에러 수정, 기능 개선 등의 개발인데,  SI처럼 개발에 오래 시간을 몰두하는 경우는 잘 없기에 개발 스킬적인 면에서 깊게 파고들 기회는 없는 것이 사실이다. 하지만 그만큼 다양한 환경을 경험하기 때문에 전체적인 개발 환경에 대한 시야가 넓어지고 ‘업무’에 대한 이해도가 높아진다. 또한 SI가 단기간 프로젝트의 연속인 데 반해, SM은 유저가 존재하는 한 계속해서 운영해야 하기 때문에 비교적 안정적이라는 점이다.

본인의 성향을 잘 파악하고, 그에 맞는 분야를 선택하도록 하자.

※ 관련 주제 유튜브 링크  

 

 

 

Cheers 헤나님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.