본문 바로가기
프로그래밍 개발/IT 서비스 개발 운영

SI 개발과 서비스 운영 개발 차이와 고찰

by Jinseok Kim 2023. 8. 29.
반응형

SI 개발과 서비스 운영 개발 차이와 고찰

과연 개발자는 괴로운 것인가 아니면 행복한 것일까

 

제 개발 경력이 길지 않지만 SI 개발 업무와 서비스 운영 업무 둘 다 경험을 해보았습니다. 이 서로 다른 스타일의 업무를 둘 다 해보며 느낀 점과 깨달은 점을 정리하고 기록하고자 합니다.

 

 

 

 

 

대한민국 개발 업계는 크게 SI 회사, IT 서비스 회사로 나뉘어 있다고 생각합니다. SM 회사도 있지만 비중이 그렇게 커 보이지는 않은 것 같습니다.

 

예비 신입 개발자, 개발 입문 단계이신 분들은 SI 회사를 가면 커리어를 망친고 가면 절대 안되고 허위로 경력을 뻥튀기하여 파견을 보내버리기 때문에 크게 데이고 개발자를 그만두게 된다 등등 안 좋은 이야기들이 있습니다.

저는 신입으로 SI 회사를 들어갔습니다. 모든 SI 회사가 잘못된 것이고 모든 SI 업무가 잘못되었다고 생각하는 것은 섣부르다고 생각합니다. 현실적으로 현재 대한민국의 IT 업계는 SI가 많은 비중을 차지하고 있기 때문이죠.

 

 

 

 

 

 

 

SI


SI(Software Integration) 개발은 주로 기업이나 조직의 요구사항을 바탕으로 맞춤형 소프트웨어를 개발하는 과정을 말합니다.

주로 프로젝트의 초기 단계에서 이루어지며, 고객의 요구사항을 분석하고 설계한 후에 소프트웨어를 개발합니다.

 


기본적으로 SI 개발은 주로 다음과 같은 특징을 가지고 있습니다.

1. 요구사항 분석: 고객이나 사용자의 요구사항을 자세히 파악하고 분석합니다.
2. 설계: 소프트웨어의 구조와 기능을 설계합니다.
3. 개발: 설계된 소프트웨어를 실제로 개발하고 구현합니다.
4. 테스트: 개발된 소프트웨어를 테스트하여 문제점을 찾고 수정합니다.
5. 배포: 완성된 소프트웨어를 고객에게 배포하고 설치합니다.



 

 

장점

 

  •  아직 개발에 친숙하지 않고 실무 경험이 많이 없는 신입 개발자에게 SI 업무를 진행할 수 있다면 아주 좋은 기회입니다. 전반적인 실제 개발 프로젝트의 분위기와 흐름을 알 수 있고 기능을 직접 구현해 보며 기본기를 가질 수 있는 기회이기도 합니다.
  • 실제 제가 SI 업무들을 진행하며 개발에 대한 기본적인 역량과 앞으로 공부를 하며 무엇을 더 보안해야 하는지 방향성을 잡을 수 있었던 것 같았습니다.
  • 다양한 종류의 개발 도메인을 경험해 보며 다양성 있는 개발을 할 수 있습니다.
  • 취업문이 서비스 회사에 비해 더 많이 열려있습니다. 

 

 

 

 

단점

 

  • SI 프로젝트를 진행하다는 것 자체가 을(乙)이기 때문에 프로젝트 마감기한을 지켜야 하는 부담감이 있습니다. 아무리 계획대로 개발을 하려 해도 안 되는 것이 현실이기에 심리적인 부담감이 있으며 기한 전에 프로젝트를 끝내고 결과물을 보여줘야 하기 때문에 어쩔 수 없는 야근 혹은 추가 근무가 필요할 수 있습니다.
  • 코드 품질이 떨어질 수 있는 가능성이 많아집니다. 기한을 맞추려다 보니 자연스럽게 결과물 제출을 하기 위해 가장 중요한 포인트인 기능 개발을 중점으로 개발 업무를 진행하게 되며 코드 품질이 고도화할 수 있는 기회가 많지 않다는 것입니다.
  • 신입 개발자분들한테는 기본기를 쌓기에는 매우 좋은 기회이기도 하지만 코드 고도화, 최적화를 할 수 있는 기회가 시간/물리적으로 가능하지 않아 퇴근 후 업무 외 공부나 추가 근무를 통해서만 기본 그 이상으로 나아갈 수 있습니다.
  • 고객들의 많은 요청과 커뮤니케이션이 몇몇 개발자분들에게 큰 부담감을 줄 수 있습니다.
  • DevOps나 AWS 등등 개발 외의 경험을 할 확률이 줄어듭니다.

 

 

 

 

 

서비스 운영 개발


서비스 운영 개발은 이미 개발된 소프트웨어의 운영 및 유지보수 단계를 의미합니다.

 

이 단계에서는 개발된 소프트웨어를 안정적으로 운영하고 문제가 발생할 경우 신속하게 대응하여 서비스를 지속적으로 제공합니다.

 

 

서비스 운영 개발은 주로 다음과 같은 특징을 가지고 있습니다.

배포 및 설치: 개발된 소프트웨어를 실제 환경에 배포하고 설치합니다.
모니터링: 소프트웨어 시스템을 지속적으로 모니터링하여 성능 및 안정성을 확인합니다.
유지보수: 발생하는 문제나 버그를 수정하고 소프트웨어를 최신 상태로 유지보수합니다.
확장 및 업그레이드: 필요한 경우 시스템을 확장하거나 새로운 기능을 추가하여 서비스를 개선합니다.

 

 

 

장점

 

  • 24시간 서비스가 돌아가기 때문에 적절한 긴장감을 갖게 되며, 서비스에 대한 애정과 오너쉽이 잘 생깁니다.
  • SI에 비해서 테스트코드, 소스 리뷰를 할 가능성이 높아집니다. 즉 고도화 / 최적화에 더 많이 시간을 투자할 수 있습니다.
  • 한번 잘 개발해 놓으면 투입은 적고 SI 대비 수익이 더 많이 나는 캐시카우가 됩니다.
  • 고객사로부터 심리적 스트레스를 받지 않아 심리적으로 안정감을 얻기도 합니다.
  • DevOps나 AWS 등 자신의 포지션 대비 더 넓은 범위의 기술들을 경험을 할 확률은 큽니다.
  • 서비스를 운영 개발 해보면 또 다른 것을 해보는데 자신감이 붙습니다. 이에 따라 기술 스타트업을 창업할 자양분을 얻을 수 있습니다.

 

 

 

단점

 

  • 새로운 기술 분야/도메인의 도전을 할 일이 비교적 없을 수도 있습니다.
  • High risk / High Return이라 중압감이 클 수도 있습니다. 운영 중인 서비스에 자신 때문에 문제가 생기거나 계획된 시간 안으로 기능을 구현을 못했을 경우 등등이 있습니다.
  • SI에 비해 수익이 안정적이지 않아 특히 초기 스타트업이면 회사가 재정상 어려워지기 쉽습니다. 결국 직업을 잃을 수 있습니다.

 

 

 

 

 

 

 

마무리하며...


한마디로 저는 SI / 서비스 둘 중 한쪽이 나쁘거나 필요 없지 않다고 말하고 싶습니다.


SI 개발
은 많은 수요와 안정적인 수익이 있는 것이 큰 장점인 것 같습니다. 하지만 
아직 개발에 대해 미숙하신 신입 개발자분들은 길지 않은 시간을 SI 업무에 투자하시고 SI 업무를 통해 어느 정도의 기본기를 쌓았다고 판단하시면 바로 서비스 운영 개발을 할 수 있는 기회를 얻으시고 코드 고도화 / 최적화와 같은 더 본질에 가까운 경험을 쌓으시라고 말씀드리고 싶습니다.

 

서비스 운영 개발을 경험하면 할수록 정말 가치가 있다고 느끼는 업무들의 연속입니다. 실제 IT 시스템이 돌아가는 근본적인 원리이기도 합니다. 마치 톱니바퀴가 여러 개 연결되어 있는데 중간에 톱니바퀴를 끼워놓기 위해 현재 잘 돌아가고 그 외 톱니바퀴들에 대하여 영향을 가지 않게 하도록 하는 것 같이 서비스 개발/운영은 새로운 코드와 기능들이 추가/수정되면 생길 수 있는 문제들이 생길 가능성과 예측 못할 수 있는 변수 즉 사이드 이펙트를 예측하고 고려하기 때문에 더욱더 코드에 대한 고도화와 깊이감이 늘어날 수밖에 없는 것 같습니다.

 

하지만 어느 정도 개발자로서의 실력과 역량이 쌓인 분들이면 저는 다시 SI 업무로 돌아와도 된다고 생각합니다. 개발자로서 SI 프로젝트만큼 확실한 수익 보장이 되는 것은 없기 때문이죠. 추후 창업 / 사업을 해도 SI 업무는 아주 안정적인 수익을 얻을 수 있고 매우 유망하다고 생각합니다.

 

저도 개발자로서 다양한 경험을 하고 어느 정도 실력이 쌓이고 역량이 생기면 SI 업무와 관련된 사업 계획을 적극적으로 고려하려고 합니다.

 

서비스 개발 / SI 개발 둘의 장단점을 평소에 잘 파악하고 인지하고 있으면 개발자 커리어를 쌓기 위해 어느 쪽으로 더 깊게 파고 들것인지 방향성을 정할 수 있다고 생각합니다.

 

 

 

감사합니다.

 

 

반응형

댓글