기본 콘텐츠로 건너뛰기

MEDISW-01. IEC 62304의 개념 체계: 프로세스, 활동, 태스크

IEC 62304는 의료기기 소프트웨어의 오작동으로 인한 환자 안전사고를 방지하기 위해, 개발부터 폐기까지 전 수명주기에 걸쳐 요구되는 프로세스를 정의한 핵심 국제 표준입니다. 이 표준은 "무엇을 해야 하는가(What)"에 초점을 맞추며, 구체적으로 "어떻게 할 것인가(How)"는 조직의 재량에 맡깁니다. 표준의 요구사항은 다음과 같은 계층적 구조를 통해 체계적으로 관리됩니다.

  • 프로세스 (Process): 가장 큰 단위의 목적별 집합 (예: 소프트웨어 개발)
    • 활동 (Activity): 프로세스를 구성하는 주요 단계 (예: 소프트웨어 요구사항 분석)
      • 태스크 (Task): 활동을 완료하기 위한 구체적인 과업 (예: 기능 요구사항 문서화)

1. 프로세스 (Process)

프로세스는 소프트웨어 수명주기의 주요 단계를 나타내는 가장 상위 레벨의 집합입니다. IEC 62304는 다음과 같은 핵심 프로세스를 정의합니다.

  • 소프트웨어 개발 프로세스 (Clause 5): 새로운 소프트웨어를 기획하고, 개발하고, 테스트하고, 릴리스하는 전 과정입니다.
  • 소프트웨어 유지보수 프로세스 (Clause 6): 이미 릴리스된 소프트웨어의 문제를 수정하거나 기능을 변경할 때, 새로운 위험을 유발하지 않고 안전성을 유지하도록 체계적으로 관리하는 과정입니다.
  • 소프트웨어 위험 관리 프로세스 (Clause 7): 소프트웨어와 관련된 잠재적 위험을 식별, 분석, 통제하는 과정입니다. (ISO 14971과 밀접하게 연관됨)
  • 소프트웨어 형상 관리 프로세스 (Clause 8): 소프트웨어 개발 과정에서 발생하는 모든 산출물(소스 코드, 설계 문서, 테스트 케이스 등)의 변경 이력을 체계적으로 추적하고 관리하여, 특정 시점의 버전을 정확하게 재현할 수 있도록 보장하는 과정입니다.
  • 소프트웨어 문제 해결 프로세스 (Clause 9): 사용자와 시장으로부터 피드백 및 문제 보고를 접수하고, 분석하여 처리하는 과정입니다.

2. 활동 (Activity)

활동은 각 프로세스를 구성하는 논리적인 작업 단위입니다. 하나의 프로세스는 여러 개의 활동으로 나뉩니다. 예를 들어, 가장 핵심적인 소프트웨어 개발 프로세스(Clause 5)는 다음과 같은 활동들로 구성됩니다.

  • 5.1 소프트웨어 개발 계획 (Software development planning): 개발에 필요한 활동, 책임, 산출물을 계획합니다.
  • 5.2 소프트웨어 요구사항 분석 (Software requirements analysis): 소프트웨어가 수행해야 할 기능, 성능, 인터페이스 등을 정의합니다.
  • 5.3 소프트웨어 아키텍처 설계 (Software architectural design): 요구사항을 만족시키기 위한 소프트웨어의 전체적인 구조를 설계합니다.
  • 5.4 소프트웨어 상세 설계 (Software detailed design): 아키텍처를 기반으로 각 소프트웨어 단위를 더 상세하게 설계합니다.
  • 5.5 소프트웨어 단위 구현 및 검증 (Software unit implementation and verification): 상세 설계를 바탕으로 코드를 작성하고(구현), 각 단위가 올바르게 동작하는지 검증합니다.
  • 5.6 소프트웨어 통합 및 통합 시험 (Software integration and integration testing): 개발된 단위들을 결합(통합)하고, 통합된 시스템이 올바르게 상호작용하는지 시험합니다.
  • 5.7 소프트웨어 시스템 시험 (Software system testing): 완성된 소프트웨어 시스템이 모든 요구사항을 만족하는지 최종적으로 시험합니다.
  • 5.8 소프트웨어 릴리스 (Software release): 시험이 완료된 소프트웨어를 사용자에게 배포하기 위한 절차를 수행합니다.

3. 태스크 (Task)

태스크는 활동을 수행하기 위해 실행해야 하는 가장 구체적인 행동 또는 요구사항으로, 마치 '체크리스트'의 각 항목과 같습니다. 표준은 각 활동별로 '제조사는 ~을(를) 문서화해야 한다(shall document)'와 같은 구체적인 태스크를 의무 조항(shall)으로 명시하며, 이는 개발 과정에서 반드시 준수해야 할 법적 요구사항이 됩니다.

예를 들어, 5.2 소프트웨어 요구사항 분석 활동에는 다음과 같은 태스크들이 포함될 수 있습니다.

  • 소프트웨어의 기능 및 성능 요구사항을 명세화한다.
  • 위험 통제 조치로부터 도출된 요구사항을 포함한다.
  • 요구사항이 검증 가능한 방식으로 작성되었는지 확인한다.
  • 사용자 인터페이스(UI) 및 시스템 인터페이스 요구사항을 정의한다.

소프트웨어 안전 등급(Software Safety Classification)의 역할

IEC 62304의 핵심 특징은 소프트웨어 안전 등급(Class A, B, C)에 따라 요구되는 태스크의 범위와 문서화의 깊이가 달라진다는 점입니다.

  • Class A (상해 가능성 없음): 가장 낮은 등급으로, 최소한의 태스크 수행이 요구됩니다.
  • Class B (심각하지 않은 상해 가능성): 중간 등급으로, Class A보다 더 많은 태스크와 문서화가 필요합니다.
  • Class C (사망 또는 심각한 상해 가능성): 가장 높은 등급으로, 표준에 명시된 거의 모든 태스크를 수행하고 이를 상세히 문서화해야 합니다.

예를 들어, '소프트웨어 아키텍처 설계(5.3)' 활동에서 외부 소프트웨어(SOUP) 목록을 문서화하는 태스크는 Class B와 C에만 요구됩니다. 또한, '소프트웨어 상세 설계(5.4)' 활동 자체는 가장 위험도가 높은 Class C 소프트웨어에만 의무적으로 요구됩니다. 이처럼 위험 등급에 따라 활동 전체 또는 특정 태스크의 적용 여부가 결정됩니다.

이러한 체계적인 구조를 통해 제조사는 소프트웨어의 잠재적 위험 수준에 맞춰 합리적이고 효율적으로 개발 프로세스를 관리할 수 있습니다.

4. 결론

IEC 62304는 '프로세스-활동-태스크'라는 명확한 계층 구조와 위험 기반의 '소프트웨어 안전 등급'을 통해 의료기기 소프트웨어 개발의 복잡성을 관리합니다. 이 구조를 이해하고 적용하는 것은 불필요한 절차는 줄이면서도 환자 안전과 직결된 부분은 더욱 엄격하게 관리하여, 궁극적으로 안전하고 효과적인 의료기기를 시장에 출시하기 위한 필수적인 첫걸음입니다.

댓글

이 블로그의 인기 게시물

Windows에 AMP와 MediaWiki 설치하기

1. 들어가기     AMP는 Apache + MySQL +  Perl/PHP/Python에 대한 줄임말이다. LAMP (Linux + AMP)라고 하여 Linux에 설치하는 것으로 많이 소개하고 있지만 Windows에서도 간편하게 설치하여 사용할 수 있다.       이 글은 Windows 7에 Apache + MySQL + PHP를 설치하고 그 기반에서 MediaWiki를 설치하여 실행하는 과정을 간략히 정리한 것이다. 2. MySQL     * 버전 5.6.12     1) 다운로드         http://dev.mysql.com/downloads/installer/         MySQL Installer 5.6.12         Windows (x86, 32-bit), MSI Installer         (mysql-installer-web-community-5.6.12.0.msi)     2) 다운로드한 MSI 파일을 더블클릭하여 설치를 진행한다.           설치 위치:                   C:\Program Files\MySQL               선택 사항:                       Install MySQL Products             Choosing a Se...

MATLAB Rutime 설치하기

MATLAB Rutime 설치하기 미설치시 에러 MATLAB Runtime 을 설치하지 않은 환경에서 MATLAB 응용프로그램이나 공유 라이브러리를 사용하려고 하면 아래와 같은 에러 메시지가 표시될 것입니다. 처리되지 않은 예외: System.TypeInitializationException: 'MathWorks.MATLAB.NET.Utility.MWMCR'의 형식 이니셜라이저에서 예 외를 Throw했습니다. ---> System.TypeInitializationException: 'MathWorks.MATLAB.NET.Arrays.MWArray'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.DllNotFoundException: DLL 'mclmcrrt9_3.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 위치: MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 위치: MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR.processExiting(Exception exception) 해결 방법 이 문제를 해결하기 위해서는 MATLAB Runtime 을 설치해야 합니다. 여러 가지 방법으로 MATLAB Runtime 을 설치할 수 있습니다. MATLAB 이 설치되어 있는 경우에는 MATLAB 설치 폴더 아래에 있는 MATLAB Runtime 설치 프로그램을 실행하여 설치합니다. ...

Wi-Fi 카드 2.4GHz로만 동작시키기

Wi-Fi 카드 2.4GHz로만 동작시키기 별도의 Wi-Fi AP 장치를 두지 않고 아래와 같은 기기들로만 Wi-Fi 네트워크를 구성하고자 할 때 주변 기기들이 2.4GHz만 지원하기 때문에 PC에서 실행하는 AP가 항상 2.4GHz를 사용하도록 Wi-Fi 카드를 설정해 주어야 합니다. 기기 Wi-Fi 카드 주파수 대역 Wi-Fi Direct 지원 PC (Windows 10) 2.4GHz, 5GHz O 주변 기기들 2.4GHz X Wi-Fi 카드별 주파수 대역 선택 방법 Windows 시작 메뉴에서 설정 을 클릭합니다. Windows 설정 화면에서 네트워크 및 인터넷 을 클릭합니다. 설정 화면의 왼쪽 메뉴바에서 Wi-Fi 를 클릭합니다. 화면 오른쪽 관련 설정 구역에 있는 어댑터 옵션 변경 을 클릭합니다. 설정을 바꾸고자 하는 Wi-Fi 카드 항목을 선택하고 마우스 오른쪽을 누른 다음 속성 메뉴를 클릭합니다. 대화상자의 네트워킹 탭 화면에 있는 구성 버튼을 클릭합니다. 장치 속성 대화상자의 고급 탭 화면으로 이동합니다. 제시되는 속성 항목들은 제품별로 다르며 자세한 사항은 아래의 제품별 설명을 참고하여 값을 설정하시기 바랍니다. Intel Dual Band Wireless-AC 7265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 선택합니다. Wireless Mode 1. 802.11a => 5GHz 4. 802.11b/g => 2.4GHz (이 항목 선택) 6. 802.11a/b/g => 2.4GHz, 5GHz Intel Dual Band Wireless-AC 8265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 ...