Booil Jung

ISO/IEC/IEEE 12207 종합 가이드

거대한 마천루를 짓는 두 팀을 상상해 보십시오. 한 팀은 상세한 건축 설계도, 공학 명세서, 그리고 모든 구성원이 공유하는 명확한 용어를 가지고 작업합니다. 반면 다른 팀은 모호한 스케치 한 장과 구두 지시에 의존합니다. 후자의 팀이 마주할 위험은 명백합니다. 예산 초과, 구조적 결함, 그리고 결국 프로젝트의 붕괴로 이어질 것입니다. 소프트웨어 개발의 세계도 이와 다르지 않습니다.

ISO/IEC/IEEE 12207은 바로 이 복잡한 소프트웨어 공학의 세계에서 국제적으로 통용되는 ‘청사진’과 같은 역할을 합니다.1 이 표준의 핵심 목적은 소프트웨어의 기획부터 개발, 운영, 폐기에 이르는 전 생명주기에 걸쳐 모든 참여자가 사용할 수 있는 공통된 프레임워크와 통일된 용어를 제공하는 것입니다.3 이를 통해 고객(획득자)부터 개발사(공급자), 그리고 최종 사용자에 이르기까지 모든 이해관계자 간의 오해를 방지하고 원활한 의사소통을 촉진합니다.3

그러나 이 표준의 가치는 단순히 기술적 지침에 머무르지 않습니다. 그 본질을 깊이 들여다보면, 이는 프로젝트 실패의 근본 원인 중 하나인 ‘기대의 불일치’를 해결하는 강력한 비즈니스 및 법적 도구임을 알 수 있습니다. 소프트웨어 프로젝트는 종종 “나는 이런 기능을 원했다”는 고객과 “요구사항대로 만들었다”는 개발자 사이의 미묘한 인식 차이로 인해 난관에 부딪힙니다. ISO/IEC/IEEE 12207은 ‘획득’과 ‘공급’ 같은 프로세스와 각 단계에서 나와야 할 명확한 산출물을 정의함으로써, 양측이 무엇을 주고받을지에 대한 명확한 계약의 근거를 마련합니다.9 즉, 이 표준은 모호함을 제거하고 책임을 명확히 하여 분쟁을 예방하는, 잘 설계된 위험 관리 프레임워크인 것입니다.

본 안내서는 이 강력한 표준의 ‘왜(역사)’, ‘무엇을(구조와 프로세스)’, ‘어떻게(실제 적용)’, 그리고 궁극적인 ‘그래서 왜 중요한가(전략적 가치)’를 탐험하는 여정이 될 것입니다.

오늘날의 체계화된 소프트웨어 개발 환경이 있기 전, 이 분야는 일종의 ‘가내수공업’과 같았습니다.9 통일된 프레임워크 없이 각양각색의 방법론이 난립했고, 이로 인한 혼돈과 프로젝트 실패가 비일비재했습니다.11 이러한 문제를 해결하기 위해 국제표준화기구(ISO)와 국제전기기술위원회(IEC)는 소프트웨어 생명주기 전반을 아우르는 포괄적인 표준의 필요성을 절감했습니다.

그 결과, 1995년 모든 종류의 소프트웨어 개발 및 유지보수에 필요한 프로세스를 정의하는 최초의 국제 표준인 ISO/IEC 12207이 탄생했습니다.12 이후 몇 차례의 개정(2002년, 2004년, 2008년)을 거치며 표준은 더욱 정교해졌습니다. 특히 중요한 이정표는 미국 전기전자학회(IEEE) 표준과의 통합이었습니다. 소프트웨어 산업이 점차 세계화되면서, 미국 기업이 주로 따르던 IEEE 표준과 유럽 및 기타 지역에서 널리 쓰이던 ISO 표준이 공존하는 상황은 국제 협업 프로젝트에서 비효율과 혼란을 야기했습니다.

이러한 마찰을 해소하기 위해 두 표준은 점차 조화를 이루었고, 마침내 오늘날의 통합된 ISO/IEC/IEEE 12207:2017로 발전했습니다.7 이 공동 표준은 전 세계적으로 가장 널리 인정받는 프레임워크 중 하나가 되었으며, 미 국방성(DoD)이 기존의 군사 표준(MIL-STD-498)을 대체하여 채택할 만큼 그 권위를 인정받았습니다.12

ISO/IEC/IEEE 12207의 가장 위대한 강점은 그 유연성에 있으며, 이는 “무엇을(What) 할 것인가”를 정의하되 “어떻게(How) 할 것인가”는 규정하지 않는 핵심 철학에서 비롯됩니다.3 예를 들어, 표준은 “아키텍처 설계를 개발해야 한다”고 명시하지만, “하향식 기능 설계 방법을 사용해야 한다”고 강요하지는 않습니다.

이러한 설계는 의도적인 선택이었습니다. 만약 표준이 특정 기술이나 방법론을 강제했다면, 급변하는 기술 환경 속에서 금방 도태되었을 것입니다. 이 철학 덕분에 ISO/IEC/IEEE 12207은 폭포수 모델, 나선형 모델, 애자일(Agile) 등 어떠한 개발 생명주기 모델과도 함께 사용될 수 있으며, 객체 지향이나 구조적 프로그래밍 같은 특정 방법론이나 기술에 얽매이지 않습니다.7 이는 표준이 급변하는 기술의 파도 속에서도 흔들리지 않는 안정적인 기반 역할을 할 수 있게 만드는 핵심 원리입니다.

ISO/IEC/IEEE 12207의 구조는 높은 응집도와 낮은 결합도라는 모듈화 원칙에 기반하여 설계되었습니다.9 이는 각 프로세스가 고유한 기능에 집중하면서도 다른 프로세스와의 상호 의존성은 최소화하는 것을 의미합니다. 이 구조를 쉽게 이해하기 위해 영화 제작 과정에 비유할 수 있습니다.

이 비유에 따라, 표준은 소프트웨어 생명주기를 다음 세 가지의 공식적인 프로세스 그룹으로 분류합니다.3

  1. 주요 생명주기 프로세스 (Primary Lifecycle Processes): 소프트웨어를 획득, 공급, 개발, 운영 및 유지보수하는 핵심적인 활동들입니다. 프로젝트의 ‘엔진’과 같은 역할을 수행합니다.9
  2. 지원 생명주기 프로세스 (Supporting Lifecycle Processes): 문서화, 품질 보증, 형상 관리 등 생명주기 전반에 걸쳐 주요 프로세스의 작업을 지원하는 활동들입니다.
  3. 조직 생명주기 프로세스 (Organizational Lifecycle Processes): 경영, 교육, 인프라 구축, 프로세스 개선 등 프로젝트가 수행될 수 있는 비즈니스 환경과 기반을 마련하는 활동들입니다.

이 세 그룹의 관계는 아래 표와 같이 요약할 수 있습니다. 이 표는 표준의 전체 구조를 한눈에 파악할 수 있는 지도 역할을 합니다.

표 1: ISO/IEC/IEEE 12207 프로세스 그룹 개요

프로세스 그룹 생명주기에서의 역할 포함되는 프로세스
주요 (Primary) 소프트웨어를 만들고 사용하는 핵심 활동. 프로젝트의 “엔진” 역할. 획득, 공급, 개발, 운영, 유지보수 3
지원 (Supporting) 주요 작업의 품질, 일관성, 무결성을 보장하는 활동. 문서화, 형상 관리, 품질 보증, 검증, 확인, 합동 검토, 감사, 문제 해결 3
조직 (Organizational) 프로젝트에 필요한 자원, 인프라, 관리 체계를 제공하는 활동. 관리, 기반 구조, 개선, 훈련 3

추상적인 프로세스를 구체적으로 이해하기 위해, “온라인 쇼핑몰 구축 및 론칭”이라는 가상의 프로젝트를 통해 주요 생명주기 프로세스를 단계별로 따라가 보겠습니다.

여기서 중요한 점은 이 주요 프로세스들이 폭포수 모델처럼 엄격하게 순차적으로만 진행되지 않는다는 것입니다. 예를 들어, 유지보수 과정에서 새로운 기능을 추가하는 요청은 그 자체로 작은 규모의 ‘개발 프로세스’를 다시 시작하게 만듭니다.9 이는 요구사항 분석, 설계, 코딩, 테스트의 순환 고리가 다시 작동함을 의미하며, 표준이 현대적인 애자일과 같은 반복적 개발 환경과 어떻게 조화를 이룰 수 있는지를 보여주는 중요한 대목입니다.

주요 프로세스가 프로젝트의 ‘엔진’이라면, 지원 및 조직 프로세스는 이 엔진이 원활하고 안전하게 작동하도록 돕는 ‘윤활유’이자 ‘계기판’입니다. 이러한 지원 없이는 핵심 작업이 혼란에 빠지고, 문서화되지 않으며, 품질이 저하될 수 있습니다. “온라인 쇼핑몰” 사례를 통해 이들의 역할을 살펴보겠습니다.

이러한 추상적인 프로세스들이 실제 프로젝트에서 어떻게 구체화되는지는 아래 표를 통해 더 명확하게 이해할 수 있습니다.

표 2: “온라인 쇼핑몰” 프로젝트에서의 지원 및 조직 프로세스 적용 사례

프로세스 사례 적용 활동
지원: 형상 관리 모든 소스 코드와 문서를 Git으로 버전 관리함.
지원: 품질 보증 QA 리드가 프로젝트를 감사하여 의무적인 코드 리뷰가 수행되고 있는지 확인함.
지원: 검증 테스터가 ‘장바구니 담기’ 버튼이 설계 문서에 명시된 대로 정확히 작동하는지 테스트 케이스를 실행하여 확인함.
지원: 확인 고객(몰앤코)이 최종 웹사이트를 테스트하며 온라인 상품 판매라는 비즈니스 요구사항을 충족하는지 확인함.
지원: 문제 해결 버그가 Jira에 보고되고, 개발자에게 할당되며, 수정된 후 테스터가 해결을 확인하고 티켓을 종료함.
조직: 관리 프로젝트 관리자가 MS Project로 프로젝트 계획을 수립하고, 진행 상황을 추적하며, 고객과 주간 회의를 진행함.
조직: 기반 구조 회사가 개발자에게 라이선스가 부여된 IDE, 테스트 도구, 클라우드 개발 환경(예: AWS, Azure) 접근 권한을 제공함.
조직: 개선 팀이 프로젝트 종료 후 회고를 통해 프로세스의 병목 현상을 파악하고, 향후 프로젝트를 위해 “완료의 정의(Definition of Done)”를 갱신함.
조직: 훈련 회사가 결제 시스템의 보안 강화를 위해 개발자를 사이버 보안 워크숍에 참여시킴.

ISO/IEC/IEEE 12207은 엄격한 규칙이 아니라, 각 프로젝트의 특성에 맞게 조정하여 사용해야 하는 ‘도구 상자’입니다.7 이 장에서는 다양한 역할의 실무자들이 이 도구 상자를 어떻게 활용할 수 있는지 살펴보겠습니다.

프로젝트 관리자(PM)에게 이 표준은 프로젝트 계획을 위한 마스터 체크리스트와 같습니다.12 PM은 표준을 활용하여 산출물을 명확히 정의하고, ‘위험 관리’ 프로세스를 통해 잠재적 위험을 식별 및 관리하며, ‘합동 검토’ 프로세스를 통해 이해관계자와의 원활한 소통을 보장합니다.12 특히 공급자와의 계약이나 작업 명세서(SOW)를 작성할 때, 표준의 용어와 프로세스를 기반으로 하면 모호함을 크게 줄여 분쟁의 소지를 없앨 수 있습니다.14

개발자에게 이 표준은 자신의 역할이 단순히 코드를 작성하는 것 이상임을 명확히 해줍니다.14 개발자는 ‘개발 프로세스’ 내에서 단위 테스트 작성, 설계 검토 참여, 자신의 코드에 대한 문서화 등 다양한 활동에 대한 책임이 있습니다.9 이는 “내 컴퓨터에서는 잘 돌아가요”를 넘어, 테스트와 통합까지 완료된 진정한 의미의 “완료(Done)”가 무엇인지에 대한 명확한 기준을 제시합니다.

QA 엔지니어는 수많은 지원 프로세스의 중심에 있습니다.16 이들은 ‘검증’ 및 ‘확인’ 프로세스를 실행하며, 결함을 찾아내기 위한 테스트를 설계하고 수행합니다.16 또한 ‘품질 보증’ 프로세스의 핵심 플레이어로서 팀 전체가 정의된 개발 절차를 준수하도록 돕고, ‘문제 해결’ 프로세스를 관리하여 발견된 버그가 체계적으로 추적되고 해결되도록 보장합니다.

빠르고 반복적인 현대적 개발 방법론과 포괄적인 표준이 어떻게 공존할 수 있는지에 대한 의문이 제기될 수 있습니다. 결론부터 말하면, 이 둘은 상호 배타적이지 않습니다. 애자일/스크럼이 팀이 짧은 주기로 ‘어떻게’ 일할지를 정의한다면(스프린트, 데일리 스탠드업 등), ISO 12207은 전체 생명주기에 걸쳐 ‘무엇이’ 달성되어야 하는지에 대한 거버넌스를 제공합니다.4

실제로 현대적 프랙티스는 표준의 원칙을 효율적으로 구현하는 방법으로 볼 수 있습니다.22

이처럼 애자일의 속도와 유연성은 표준이 제공하는 품질 및 위험 관리의 ‘가드레일’ 안에서 더욱 빛을 발합니다. 문서화나 형상 관리와 같은 지원 프로세스의 규율이 없다면, 애자일은 자칫 기술 부채를 쌓고 혼란으로 이어질 수 있습니다. 따라서 ISO 12207은 애자일이 빠르면서도 지속 가능하도록 만드는, 단순한 적이 아닌 든든한 파트너 관계에 있습니다.

지금까지 표준의 ‘무엇’과 ‘어떻게’를 살펴보았다면, 이제는 ‘그래서 왜 이것이 비즈니스에 중요한가’라는 질문에 답할 차례입니다. ISO/IEC/IEEE 12207의 도입은 단순한 프로세스 준수를 넘어, 조직에 실질적인 전략적 이점을 제공합니다.

결론적으로, ISO/IEC/IEEE 12207은 과거의 유물이 아니라 미래를 대비하는 견고한 프레임워크입니다. 구조화된 프로세스, 품질 관리, 위험 관리라는 이 표준의 핵심 원칙들은 기술이 발전할수록 그 중요성이 더욱 커지고 있습니다.

사이버 보안 위협이 증가하고, 인공지능(AI)과 사물인터넷(IoT) 기술로 소프트웨어가 우리 삶 깊숙이 자리 잡으면서, 신뢰할 수 있는 개발 생명주기 프레임워크에 대한 필요성은 그 어느 때보다 절실해지고 있습니다.14 기술과 방법론은 계속해서 변하겠지만, ISO/IEC/IEEE 12207에 담긴 건전한 공학 원칙과 프로세스 관리의 지혜는 성공적인 소프트웨어 개발의 변치 않는 기반으로 남을 것입니다.

  1. medium.com, accessed July 1, 2025, https://medium.com/@CodenamePeter/qa-engineer%EA%B0%80-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%A0-iso-iec-ieee-12207-3a0f4edc3a80#:~:text=ISO%2FIEC%2FIEEE%2012207%EC%9D%80%20%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%20%EC%83%9D%EB%AA%85%20%EC%A3%BC%EA%B8%B0%20%EC%A0%84%EB%B0%98%EC%9D%84,%EC%A3%BC%EB%A1%9C%20%EB%B0%91%EB%B0%94%ED%83%95%EC%9C%BC%EB%A1%9C%20%EC%82%AC%EC%9A%A9%EB%90%9C%EB%8B%A4.
  2. ISO/IEC/IEEE 12207:2017 - Systems and Software Engineering - Pacific Certifications, accessed July 1, 2025, https://pacificcert.com/iso-iec-ieee-12207-2017-systems-software-engineering/
  3. ISO/IEC 12207 소프트웨어 프로세스 국제표준 - 지식덤프, accessed July 1, 2025, http://www.jidum.com/jidums/view.do?jidumId=294
  4. ISO/IEC/IEEE 12207 – Standardizing Software Lifecycle Processes - Pacific Blogs, accessed July 1, 2025, https://blog.pacificcert.com/iso-iec-ieee-12207-standardizing-software-lifecycle-processes/
  5. KS X ISO/IEC/IEEE 12207 시스템 및 소프트웨어 엔지니어링 - 한국표준정보망, accessed July 1, 2025, https://www.kssn.net/search/stddetail.do?itemNo=K001010137131
  6. The Ultimate Guide to ISO/IEC 12207 in Software Engineering - Number Analytics, accessed July 1, 2025, https://www.numberanalytics.com/blog/ultimate-guide-iso-iec-12207-software-engineering
  7. Mastering ISO/IEC 12207 for Software Project Success - Number Analytics, accessed July 1, 2025, https://www.numberanalytics.com/blog/mastering-iso-iec-12207-software-project-management
  8. Introduction To ISO 12207 - YouTube, accessed July 1, 2025, https://www.youtube.com/watch?v=hIcM-IdRHpo
  9. INTERNATIONAL STANDARD ISO/IEC 12207 SOFTWARE LIFE CYCLE PROCESSES - Globalgbc.org, accessed July 1, 2025, https://globalgbc.org/wp-content/uploads/2022/08/ISO-IEC12207.pdf
  10. ISO 12207 and Related Software Life-Cycle Standards - Angelfire, accessed July 1, 2025, https://www.angelfire.com/in4/nir/ISO_12207_Standards.htm
  11. IEEE 12207 PPT - SlideShare, accessed July 1, 2025, https://www.slideshare.net/slideshow/ieee-12207/2019655
  12. ISO/IEC 12207 - Wikipedia, accessed July 1, 2025, https://en.wikipedia.org/wiki/ISO/IEC_12207
  13. ISO/IEC 12207:Software Life Cycle Process - msritse2012 - WordPress.com, accessed July 1, 2025, https://msritse2012.wordpress.com/2013/01/30/isoiec-12207software-life-cycle-process/
  14. ISO/IEC/IEEE 12207:2017 – Software Life Cycle Processes in the USA - Pacific Blogs, accessed July 1, 2025, https://blog.pacificcert.com/iso-iec-ieee-12207-2017-software-life-cycle-processes-in-the-usa/
  15. Mastering ISO/IEC 12207 in Systems Engineering - Number Analytics, accessed July 1, 2025, https://www.numberanalytics.com/blog/mastering-iso-iec-12207-systems-engineering
  16. Quality Assurance Consultant: ISO / IEC 12207 and IEEE / EIA …, accessed July 1, 2025, https://testmatick.com/quality-assurance-consultant-iso-iec-12207-and-ieee-eia-12207-standards/
  17. ISO 12207: Verification of integration and Unit test validation, accessed July 1, 2025, https://softwareengineering.stackexchange.com/questions/175393/iso-12207-verification-of-integration-and-unit-test-validation
  18. Understanding Software Maintenance and Evolution in ISO 12207 - YouTube, accessed July 1, 2025, https://www.youtube.com/watch?v=hQrrKITDjQM
  19. IEEE 12207 “Software Life Cycle Processes” - AcqNotes, accessed July 1, 2025, https://www.acqnotes.com/Attachments/Briefing%20Introduction%20to%20Software%20Configuration%20Management%20Training.pdf
  20. Software Development Standard and Roadmap - Atlassian, accessed July 1, 2025, https://cnu.atlassian.net/wiki/display/iso/software+development+standard+and+roadmap
  21. ISO/IEC 12207: A Foundation for Systems Engineering Excellence - Number Analytics, accessed July 1, 2025, https://www.numberanalytics.com/blog/iso-iec-12207-systems-engineering-excellence
  22. ISO Standard (12207) in Agile/Scrum? Any suggestions, resources? - Reddit, accessed July 1, 2025, https://www.reddit.com/r/agile/comments/2is44i/iso_standard_12207_in_agilescrum_any_suggestions/
  23. Understanding the Software Lifecycle Process According to ISO 12207 - YouTube, accessed July 1, 2025, https://www.youtube.com/watch?v=6upu3HJutZk
  24. Benefits of Adhering to ISO 12207 - Elevating Software Life Cycle Management - YouTube, accessed July 1, 2025, https://www.youtube.com/watch?v=kv-qLCH4Nuo