본문 바로가기

SW, IT R&D 이야기

SW개발 시, 분리발주와 분할발주 그리고 턴키 방식

반응형

분리발주와 분할발주 그리고 턴키 방식에 대한 소개


 

1. 일단 SW사업에 대해 알아보자

 

SW사업은 소프트웨어 진흥법(법률 제17799호)에 아래와 같이 명시되어 있다.

(2차 출처 : SW산업정보종합시스템, SW산업법령·고시,  https://www.swit.or.kr/IS/web/info1_01.jsp, (검색일) 2023. 2. 8)

1. “소프트웨어”란 컴퓨터, 통신, 자동화 등의 장비와 그 주변장치에 대하여 명령ㆍ제어ㆍ입력ㆍ처리ㆍ저장ㆍ출력ㆍ상호작용이 가능하게 하는 지시ㆍ명령(음성이나 영상정보 등을 포함한다)의 집합과 이를 작성하기 위하여 사용된 기술서(記述書)나 그 밖의 관련 자료를 말한다.

2. “소프트웨어산업”이란 소프트웨어의 개발, 제작, 생산, 유통, 운영 및 유지ㆍ관리 등과 그 밖에 소프트웨어와 관련된 서비스를 제공하는 산업을 말한다.

3. “소프트웨어사업”이란 소프트웨어산업과 관련된 경제활동을 말한다.

 

광의적으로는 SW 전반, 설치형, 클라우드, 온/오프라인 게임, 스마트폰앱 기타 등등을 포함하겠지만,

협의적, 또는 실무적으로는 통상 SI(system integration, 시스템 통합-업무통합) 사업을 말한다.

SI사업은 돈이 될 수밖에 없는 것이 업무 효율성을 높여주고, 인건비(!!)를 줄여준다.

(괜히 개발자 인건비가 비싼 게 아니다.)

 

각설하고 2000년대에는 주로 턴키 방식으로 진행됐다면, SW사업이 고도화되고 이권다툼, 부조리 등의 시비를 벗어나고자 분리발주가 법으로 강제*되었다. 또한 그 뒤 분할발주라는 개념도 도입하기에 이른다.

* 소프트웨어사업 계약 및 관리감독에 관한 지침[과학기술정보통신부고시 제2021-100호], 소프트웨어 진흥법 [법률 제17799호]
(법이 하도 자주 바뀌었더니 기존 가이드북과 내용이 또 바뀌었다. 분리라는 명칭이 안 들어가지만 그 내용은 같아 보인다)

 

2. 턴키 방식(일괄발주)이란?

 

일단 뜻은 이렇다.

턴키는 열쇠(key)를 돌리면(turn) 모든 설비가 가동되는 상태로 인도한다는 뜻으로, 건설업체가 공사를 처음부터 끝까지 모두 책임지고 다 마친 후 발주자에게 열쇠를 넘겨주는 방식을 말한다

※ 출처 : 네이버 시사용어경제사전, https://terms.naver.com/entry.naver?docId=300396&cid=43665&categoryId=43665, (검색일) '23.2.8

건설업체에서 통용되는 용어지만, SW사업도 건설사업에서 많은 규정과 규칙을 차용하였다. 

SW사업 또한 정보화시스템 구축에 많은 장비 및 인력, SW솔루션이 필요하다. 

아래그림 '행정안전부 전자정부지원사업 SW분리발주 안내' 소개자료에 따른 턴키 방식의 예시이다.

일괄발주 방식(턴키)

※ 출처 : 행정안전부, 정보화진흥원(NIA), "전자정부지원사업 SW 분리발주 안내", 2020. 09

통상 SW사업에는 서버, 스토리지 등의 장비, WEB/WAS/DB를 위한 SW솔루션(대표적인 솔루션이 TMAX社의 WebtoB, JEUS, Oracle社의 DB SW 등이 있다.) 그리고 네트워크와 보안장비(네트워크 장비)가 필요하다.

여기까지를 통상 HW라고 말한다.

핵심 SW인 SI개발이 인프라와 SW솔루션 위에 올라간다. 이때 필요한 게 개발을 위한 개발자와 SW용역 업체다. 그리고 이때 결과물을 SW라고 말한다.

고로 턴키방식이란 사업자에게 HW/SW까지 모든 구축을 다 맡기고 고객은 관리만 하겠다는 제도다. 솔직히 고객 입장에선 편할 순 있지.

 

기존 턴키 방식에는 SW용역업체가 사업을 따서 HW업체(박스장사라고도 한다)를 하청 주고, SW사업도 하청 줘서 인건비 후려치고, 원청이 대다수 수익을 가져갔다.

 

또는 조달 시 가격을 후려쳐서 사업만 따고 하청 재하청 식으로 사업이 진행됐다.

※ (3대 대기업) S****, L****, Sa*******, 15억 짜리를 10억에 따고 하청 재하청 

 

어차피 B2B사업이고 지금도 원청일 경우 하청에게 엄청 후려쳐서 남겨먹는데, 이때는 어땠을까.

자 그래서 분리발주가 강제화 됐다. 분리발주로 넘어가 보자.

 

3. SW분리발주 방식

 

SW분리발주란 아래와 같은 의미로 쓰인다.

SW사업을 일괄발주하는 형태에서 SW구매만을 별도로 분리하여 발주하고 평가·선정, 계약, 사업관리 등을 실시하는 제도

※ 출처 : 행정안전부, 정보화진흥원(NIA), "전자정부지원사업 SW 분리발주 안내", 2020. 09

말이 더럽게 어렵다. 거지 같네. 위의 같은 출처의  관련 그림을 보자.

SW분리발주 방식

위엔 SW라고 쓰더니 아래는 SI로 써놨네. 그림이 어렵긴 한데, 쉽게 얘기하면 다 따로따로 사라라는 뜻이다.

예를 들어 업무 SW를 개발한다고 치자. 내 담당사업은 아래와 같이 거래했다.

업체 담당 세부내용 비고
A SW개발용역 SW1 개발 해당 시스템의 메인 아키텍처
B SNS솔루션 개발  SW2 개발 솔루션 형태로 독립된 서비스
C HW구축  서버,  미들웨어, 네트워크 장비 도입 인프라 도입 및 구성, HW유지보수
D DB구축 솔루션 도입 오라클 Database만 따로 유지보수
E SSO 솔루션 솔루션 도입 기관내 타 시스템과의 회원통합이 어려워 검증된 솔루션 도입
F 검색엔진 솔루션  솔루션 도입  
G 자체개발 가상화솔루션 가상화 솔루션과 서버 통합 판매 퀄리티가 낮고, 유지보수가 잘 안되어 계약 취소함
기타 나라장터 쇼핑몰 C업체 구매를 나라장터로 이용해서 구매  

참고로 위의 사례는 약간 사업이 산으로 간 경우이다. 통상 저렇게 많은 업체와 따로 계약하진 않는다.

보통은 위의 분류에 S/W담당팀, DB담당팀, H/W담당팀, N/W담당팀이 따로 붙는다. (기획이나 대외팀은 예외) 

SW팀은 개발 및 유지보수, DB팀는 품질관리 및 DB 구축, HW팀은 인프라 및 SW솔루션 관리, NW팀은 정보보안이나 상위기관(행안부나 국정원이다) 지침 관리 등을 한다.

 

어쨌든 위와 같이 통상적으로 HW/SW를 분리해서 구매하라가 분리발주이며,

이를 턴키(일괄발주)로 할 경우, 가장 큰 덩어리인 A업체에서 B,C,D,E 업체랑 사바사바해서 지들끼리 해쳐먹는다.

 

실제로 위의 사업 같은 경우, G, H 업체들은 다 A업체와 관련 있는 업체들이었고, F업체는 자회사였다.

 

물론 요즘엔 필드에선 HW 구성은 그냥 클라우드에 사용료 내고 쓰고, 자체 관리를 잘 안 한다.

어느 정도 규모가 되지 않으면 클라우드가 훨씬 효율적이다.

 

자... 마지막 분할발주. 나는 아직도 분할과 분리의 용어가 헷갈린다.

 

4. 분할발주

 

일괄발주(턴키)와 분리발주는 상충되는 개념이지만, 분할발주는 또 다른 개념이다.

일단 SW개발 방법론을 알아야 하고, 더 나아가 SW생태주기를 알아야 한다.

 

컴퓨터공학 전공이라면 소프트웨어 개발 방법론은 필수강의로 들었을 것이다.

그중 Waterfall (폭포수) 방법론에 컴포넌트 방식을 더한 CBD 방법론이 현재 SI사업에선 거의 표준이다.

폭포수 모델 방법론

※ 출처 : 위키백과

여기에 CBD (Component-Based Development)란 표준화된 컴포넌트들을 담은 프레임워크를 기반으로 컴포넌트들을 조합해서 SW를 개발하는 것을 말한다.

통상 Spring Framework를 쓰고, 국내 전자정부 표준프레임워크도 이를 기반한다.

표준화된 컴포넌트를 쓰니까 안정적이며 오류도 적고, 개발사가 바뀌어도 쉽게 적응할 수 있는 장점이 있다지만... 방법론 안 지키는 개발자들이 너무 많다.

방법론대로 하면 산출물 문서작업이 산더미고 개발자들은 문서작업을 제일 싫어한다. 그리고 개발자는 항상 부족하지.

 

어쨌든.

 

위의 폭포수 방법론을 보고 아래 그림을 보자.

(참고로 위의 폭포수 방법론 그림과 아래는 같다.  [요구사항 분석] → [설계]  → [구현]  → [시험] → [운영]의 단계를 나타낸 것이다)

분할발주 예시

※ 출처 : 오영배, 황인수, "소프트웨어 사업 선진화를 위한 분할발주 프레임워크", TTA Journal NO. 132

위의 기능분할과 부품분할은 많이 쓰인다. PM을 중심으로 기능별로 PL들이 붙어서 개발하거나, SW들을 구분해서 개발하고 이를 연계하여 통합하거나.

또한, 각 시스템 기능/SW별 다른 업체들이 컨소시엄을 맺거나 따로 발주를 내기도 한다.

분할발주 얘기할 때는 PMO(Project Management Office)가 언급되는데, PMO는 PM역할을 하는 업체, 팀, 사업 등을 의미한다.

 

그럼 어떻게 분할하느냐, 위와 같은 SW개발 단계 중, 요구사항·설계 단계를 PMO가 맡아서 산출물을 만들고 이를 개발업체에게 던지면 구현·시험(전개, 인도) 단계에서 개발하는 것을 말한다.

분할발주 예시(1)

또는 분석·설계·산출물관리·고객소통·사업관리·위험관리 등 전반적인 사업관리와 산출물 작업을 담당하고, 개발업체는 개발만 하거나.

분할발주 예시(2)

내가 소규모 사업(20억 이하)만 해봐서, 분할발주로 사업하는 것은 별로 본 적이 없다. 또한 관련 규정이나 법령도 없는 것으로 알고 있다.

 

그런데 100억, 1000억 쯤 되는 사업에는 PMO가 필수 일 것 같긴 하다.

(이 정도 규모의 사업은 대기업이 컨소시엄 맺어서 붙어야 한다.)

 

다음에 또 다른 SI 관련 내용을 포스팅 하겠다.

 

※ '23년 3월 29일에 내용을 일부 수정하였습니다. 원본 내용은 제 개인블로그에서 확인할 수 있습니다.

반응형

'SW, IT R&D 이야기' 카테고리의 다른 글

정부출연연구기관에 대해 알아보자.  (0) 2023.06.05
SW사업 원가계산 하는법  (8) 2023.05.28