SI 개발자 vs SM 개발자
IT 프로젝트는 크게 보면 이 두 가지로 분류할 수 있습니다.
SI와 SM.
SI는 System Integration의 약어로 "시스템 구축"을 뜻합니다.
반면, SM은 System Management의 약어로 "시스템 운영(유지보수)"를 뜻합니다.
SI를 통해 시스템이 구축되었다면 그 이후에는 SM이 시작되겠죠.
개발자는 이렇게 분류하는게 맞을지는 모르겠지만 SI 개발자와 SM 개발자로 나눌 수도 있을 것 같습니다.
대개 SI 업무를 하는 개발자들은 스타트업, 중소기업에서 근무할 가능성이 높고, SM 업무를 하는 개발자는 대기업에서 근무할 가능성이 높습니다. 물론 많은 예외가 있으니 오해는 말아주세요.
보통 대기업은 SI 업체들에 외주를 줘서 시스템을 구축한 후 자사 개발자들을 통해서 운영(SM)하는 경우가 많기 때문입니다.
그러다보니 SI 개발자로서 습득할 수 있는 역량과 SM 개발자로서 습득할 수 있는 역량은 다소 다른 것 같습니다.
SI 개발자
1. SI 개발자들은 처음부터 끝까지 전체 시스템을 구축할 기회가 많다보니 전체적으로 시스템이 어떻게 작동하는지 이해하면서 개발을 하는 경우가 많습니다.
2. 또한 한 회사의 특정 서비스만 개발하는 것이 아니라 이런 저런 시스템을 구축하다보니 다양한 언어로, 다양한 환경에서 개발할 수 있는 능력을 갖추게 됩니다.
3. 운영에 초점보다는 시스템 구축 완성에 목표를 두는 경우가 있다보니, 실제 운영 단계에서 발생할 수 있는 관리 포인트를 충분히 고려하지 못하고 고려할 수 있습니다.
SM 개발자
1. SM 개발자들은 이미 개발된 시스템에서 특정 부분들을 개선하거나 트러블 슈팅하는 일을 많이 하다보니 코드 한줄을 수정하더라도 전체적인 영향도를 파악하는데 주력을 하며 개발을 할 때가 많습니다.
2. 개발을 하는 것보다도 관련된 동료들, 업체들과의 커뮤니케이션 능력이 더 중요한 경우가 많습니다. 당장 개발을 진행하기 보다는 어떻게 해서 이런 기능이 존재하게 되었고, 어떤 이유로 이런 에러가 발생하고 있는지를 파악하는 것이 중요합니다.
3. 전체 시스템을 처음부터 끝까지 개발해본 경험이 적기 때문에 간단한 서비스도 혼자 힘으로 만들어하는 것을 힘들어 할 수 있습니다.
간략히 제가 SI, SM 업무를 하면서 느꼈던 점들을 정리해봤습니다. "SI 개발자가 더 낫다", "SM 개발자가 더 낫다" 그런 뜻은 전혀 없습니다. 각자 주어진 상황에 맞게 일하는 개발자들이기 때문입니다. 저는 가능하다면 둘 다 경험해보는 것이 더 실력있는 개발자로 성장하는데 큰 도움이 된다고 생각합니다.
참고자료
[1] https://www.jobkorea.co.kr/goodjob/tip/view?News_No=18848