신년이면 늘 하던 다이어트 계획.
81~2에서 머물러 버렸다. 3~4 킬로는 빠졌는데 먹는 것을 줄여서 뺀 것이다.
저녁을 보통 사람 먹는 것처럼 먹는 것.
보통 저녁에 밥도 2그릇씩 먹었는데 그것만 빼도 체중이 빠진다.
이제 78까지 4킬로 더 빼려면 뭔가 새로운 것이 필요하다.
우선 2일에 걸치는 생각을 하기로 했다.
보통 매일매일 이라고 하는데
팔굽혀 펴기가 50개는 하게 되었으니 세트를 나누어서 첫째날은
10 20 개 하고 둘째날은 30 개 40 개
즉 매일 하루도 거르지는 않지만 이틀에 걸쳐서 하기로 했다.
이는 다른 운동이나 공부도 마찬가지다.
헬스클럽 다닐 때 운동의 경우 부위별로 시간을 두라고 했는데
이는 매일 아예 거르지 않는 것이 포인트다.
헬스클럽은 거를 수 있지만 집에 돌아가서 하는 맨손 체조는 스킵하지 않아도 되서 좋다.
자 일단, 88(87.8)까지 찍었던 최 고점 시절과 비교하면
이제 80대 초반까지 왔다.
잘하고 있고, 앞으로는 더 잘해야 한다.
근육량을 줄여야 하는데 가슴 근육이 너무 발달되어 있다보니(전에 말했듯이 모든 부위 근육 과다긴 해도)
여성 유방화 때문에 팔굽혀 펴기는 어쩔 수 없는 운동이 되어 버렸다.
ㅠㅠ
그럼 또 달려보자.
올 한해 목표는 20킬로 감량이다.
0-=0-=0-=0-=0-=0-=0-=0-=0-0-=0-=0-=0-=0-=
TCP 포트UDP 포트 292513포트 <- 찾기 쉬라고. 내가.
블리자드 Battle.net 데스크톱 앱 | 80, 443, 1119 | 80, 443, 1119 |
블리자드 음성 대화 | 80, 443, 1119 | 3478-3479, 5060, 5062, 6250, 12000-64000 |
블리자드 다운로더 | 1119, 1120, 3724, 4000, 6112, 6113, 6114 | 1119, 1120, 3724, 4000, 6112, 6113, 6114 |
디아블로 | 6112-6119 | 6112-6119 |
디아블로 II | 6112, 4000 | 없음 |
디아블로 III | 80, 1119 | 1119, 6120 |
하스스톤 | 1119, 3724 | 1119, 3724 |
오버워치 | 1119, 3724, 6113, 80 | 3478-3479, 5060, 5062, 6250, 12000-64000 |
스타크래프트 | 6112 | 6112 |
스타크래프트 II & 히어로즈 오브 더 스톰 |
1119, 6113, 1120, 80, 3724 | 1119, 6113, 1120, 80, 3724 |
워크래프트 II Battle.net Edition | 6112-6119 | 6112-6119 |
워크래프트 III | 6112 (기본값), 6113-6119 | 없음 |
월드 오브 워크래프트 | 3724, 1119, 6012 | 3724, 1119, 6012 |
0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0-=0=-0-=0-=
소프트웨어 검증도 그렇고, ISO 26262도 그렇고 권고 사안이지 강제는 아니다. 그러나 항상 생각하고 있어야 한다. 도덕성의 문제니.
웹진자료
제목작성일작성자조회수첨부파일
<웹진 141호: 인사이드 이슈> 의료기기용 SW특징과 검증시스템 | |||||
2015.07.31 | 관리자 | 3605 | |||
등록된 파일이 없습니다. |
|||||
의료기기는 환자의 생명을 다루기 때문에 그 어떤 기계보다도 ‘안전’이 매우 중요하다. 의료기기 인증 및 판매 허가가 힘든 이유도 각종 의료기기 법과 규정에서 요구하는 ‘성능’과 ‘안전 기준’이 높기 때문이다. 그렇기 때문에 국내 및 해외 의료기기 인증에 있어 임상 평가, 설계 관리와 함께 소프트웨어에 대한 검증이 점점 중요해지고 있다. 즉, 의료기기용 소프트웨어에 대한 안전을 입증해야만 의료기기 인증을 받을 수 있다는 의미이다.
‘자동심장충격기(Automated External Defibrillator. AED)’를 개발하여 판매하고 있는 나눔테크는 2012년에 FDA(Food and Drug Administration: 미국 식품의약국)와 CE(Conformity European: 유럽공동체제품인증) 의료기기 인증을 준비했는데, 이때 의료용 소프트웨어 밸리데이션(Validation)에 문제가 발생했다고 한다. 이슈는 ‘의료용 소프트웨어에 대한 안전을 객관적으로 어떻게 증명할 것인가’ 였다. 처음에는 각종 문서와 관련 규격을 참고하여도 막상 현장에 적용하기엔 무척 어려웠다고 한다. 어느 누구에게도 도움을 요청할 수 없었기 때문에 막막했다.
이렇게 의료용 소프트웨어에 대한 검증을 고심하던 중, 정보통신산업진흥원(NIPA) 부설 SW공학센터(Software Engineering Center)를 알게 되었고, 2013년부터 2년간 SW공학센터의 ‘소프트웨어공학기술 현장적용 사업’ 지원을 받아 의료용 소프트웨어의 설계관리와 검증 시스템을 구축하였다. 이 과정에서 막연하게만 다가왔던 의료기기용 소프트웨어 검증이 지금은 명확해졌으며, 선진국과 비교해도 뒤지지 않을 정도로 자신감이 생겼다고 한다.
더 자세한 이야기를 나눔테크 이병석 부소장으로부터 들어보았다.
사진1. 이병석 부소장(나눔테크)
의료용 소프트웨어 검증 시스템 구축 배경
자동심장충격기(AED: Automated External Defibrillator)는 심정지 환자에게 전기충격(약 1,500V, 7 ~ 24ms)을 주어 심장박동을 되살리는 응급의료기기이며, 일반인이 병원 밖 응급 현장에서 손쉽게 사용할 수 있도록 간편화시킨 의료기기입니다. 세동(細動)을 제거한다는 의미로 자동제세동기(自動除細動器)라고도 부르며, 식약처 전자의료기기 기준규격에서는 ‘저출력심장충격기’로 명시하고 있습니다. 자동심장충격기에는 환자의 심장 리듬을 분석한 후 전기충격 여부를 판단하고, 자동제세동기의 동작과 고전압을 제어하며, 심폐소생술을 안내하는 소프트웨어가 내장되어 있습니다. 실제 저희 연구원의 70%가 소프트웨어 개발 인력입니다. 다시 말해, 자동심장충격기에서 있어 소프트웨어의 역할이 매우 중요하다고 이야기 할 수 있습니다.
사실, 몇 년 전만 하더라도 의료기기 인증에 있어 소프트웨어의 비중은 크지 않았습니다. 물론, 의료기기 인증을 받기 위해서는 소프트웨어 밸리데이션 보고서를 제출했지만, 하드웨어적인 성능과 안전과 비교하면 큰 비중을 차지하지는 않았습니다. 그러다가 의료기기 국제 규격과 각종 의료기기 법에서 의료용 소프트웨어에 대한 검증이 강화되면서 지금은 매우 중요한 인증 기준이 되었습니다. 최근 의료기기 국제 인증의 추세를 보면 임상시험평가, 사용성과 함께 설계 관리, 소프트웨어에 대한 검증을 중요하게 보고 있습니다.
전 세계에서 가장 큰 시장인 유럽과 미국에 자동제세동기를 수출하기 위해서는 CE(유럽 공동체 제품 인증)와 FDA(미국 식품의약국) 인증을 받아야 합니다. CE는 3판으로 개정되면서 IEC 60601-1에 대한 시험 성적을 요구하고 있으며, FDA는 소프트웨어 생명 주기에 대한 모든 산출물을 요구하고 있습니다. 해외 의료기기 인증을 받기 위해서는 의료기기 국제 규격에 따라 안전성이 검증된 소프트웨어가 중요하게 되면서, 소프트웨어 공학 기술을 적용한 소프트웨어 관리와 프로세스는 필수 사항이 되었습니다. 의료기기에서 소프트웨어 정의 의료기기 법에 소프트웨어가 의료기기에 포함되고, 의료기기 국제 규격에서 소프트웨어 대한 검증 평가가 포함되면서, 이제는 의료기기 인증에 있어 소프트웨어 개발 활동 및 검증은 선택이 아니라 ‘필수’가 되었습니다. 의료용 전기기기에서 가장 기본인 의료기기 국제 공통규격 IEC 60601-1 Medical electrical equipment - Part 1: General requirements for basic safety and essential performance (의료용 전기기기 ? 제1부: 기본 안전 및 필수 성능에 관한 일반 요구사항)이 3판으로 개정되면서 그 동안 보조 규격이었던 IEC 60601-1-4 Medical electrical equipment ? Part 1-4: General requirements for safety - Collateral Standard: Programmable electrical medical systems (프로그램 가능한 전기 의료 시스템)이 본문에 포함되었습니다. 이에 따라, 의료기기 시험과 인증을 신청할 때 제출하는 기술 문서에 소프트웨어 밸리데이션 자료도 필수로 제출하게 되었습니다. (자료 1)
[자료 1. 자동심장충격기 관련 의료기기 국제 규정]
각종 의료기기 법과 규격에서 의료용 소프트웨어에 대하여 명확하게 정의하고 있습니다. 먼저, 국내 식약처 (식품의약품안전처) 의 '의료기기의 전기·기계적 안전에 관한 공통기준규격'의 '의료기기의 전기 ? 기계적 안전에 관한 공통기준 및 시험방법'과 IEC 60601-1:2005에서 의료용 전기기기와 소프트웨어는 다음과 같이 정의하고 있습니다.
유럽 연합의 의료기기 고시인 MDD (Medical Devices Directive)도 93/42/EEC에서 2007/47/EC로 개정하는 이유 중 하나가 의료기기에서 소프트웨어의 중요성을 반영하기 위해서입니다. MDD 2007/47/EC에서는 소프트웨어에 대하여 1조;2a항으로 정의하고 있으며, 부속서 I.12.1의 활동을 요구하고 있습니다. 즉, 순수한 소프트웨어든 의료 전기기기에 내장된 소프트웨어든 환자에 대한 진단이나 치료의 목적이 있으면 의료기기로 보고 있으며, 안전에 대한 활동과 검증을 요구하게 된 것입니다.
의료용 소프트웨어 테스트 환경 구축 의료용 소프트웨어에 대한 의료기기 국제 규정으로 IEC 62304 Medical device software ? Software life cycle processes (의료기기 소프트웨어 ? 소프트웨어 생명주기)가 있습니다. 하지만, 이 표준규격에서는 구체적인 수명주기 모델을 특정하지 않고 있으며, 해당 소프트웨어 프로젝트에 어떤 수명주기 모델을 사용할지는 이 표준규격 사용자들이 스스로 정해야 합니다. 또한, 이 표준규격에서 요구하는 프로세스, 활동, 태스크를 그 모델에 어떻게 대응시킬지를 스스로 결정해야 한다고 명시하고 있습니다. 의료용 소프트웨어에 대한 유효성 확인과 검증을 요구하면서 이에 대한 방법은 사용자가 찾아야 하기때문에 이러한 문제로 어려움이 많았습니다.
의료기기 국제 인증을 위해 소프트웨어에 대한 검증 방법을 찾다가 광주정보문화산업 진흥원을 통해 소프트웨어에 대한 테스트 방법과 공학 도구를 알게 되었습니다. 그리고 정보통신산업진흥원(NIPA) 산하 소프트웨어 공학센터에서 현장 방문을 통해 소프트웨어 개발 프로세서 중 V 모델을 알게 되었습니다. 이 때, “소프트웨어공학기술 현장적용 지원사업”을 알게 되었습니다. 의료용 소프트웨어 코딩 규칙과 정적 분석 자동심장충격기는 하나의 임베디드 시스템입니다. 이점을 착안하여 ISO 26262 자동차 기능 안전성 국제 표준을 부족한 의료용 소프트웨어 검증에 적용했습니다.
의료기기 국제 규정에서 의료기기용 소프트웨어에 대한 코딩 표준은 없으며, 강제 사항도 아닙니다. 꼭 코딩 규칙을 적용할 필요는 없습니다. 하지만, 위험관리 측면에서 바라보면 코딩 규칙을 적용할 필요는 있습니다. 개발자가 프로그램을 개발하다 보면 소스 코드 레벨에서 실수를 하는 경우가 종종 발생합니다. 예를 들어, 임베디드 시스템에서는 MCU의 종류에 따라 정수형의 크기가 달라집니다. 이러한 소스 코드는 컴파일을 할 때에는 경고나 에러가 없고 일반적인 환경에서는 정상적으로 동작합니다. 그러다가 어떤 특정한 상황에서 오버 플로우(Overflow)가 발생하면 오동작하면서 심각한 경우에는 환자의 생명에 위험을 줄 수 있습니다. 사전에 위험을 방지하고 안전한 소프트웨어를 개발하기 위해서는 코딩 규칙이 필요합니다.
IEC 62304 기준으로 자동심장충격기는 등급 C의 요구사항을 수행해야 합니다. 임베디드 소프트웨어는 C 언어로 개발하고 있으며, MCU에서 동작합니다. 위험관리와 함께 소스 코드에 대한 검증까지 수행해야 합니다. 이러한 모든 사항을 고려하여 MISRA-C를 기반으로 의료 전기기기를 위한 코딩 규칙을 정의했습니다.
MISRA-C는 MISRA(Motor Industry Software Reliability Association)에서 개발된 C 프로그래밍에 대한 개발 표준입니다. MISRA-C의 목적은 ISO C 언어로 작성된 임베디드 시스템의 코드 안전성, 호환성, 신뢰성 확보입니다. MISRA-C는 자동차 산업으로부터 작성된 모델이지만, 자동차 산업 이외의 산업에도 다양하게 쓰이고 있습니다. MISRA-C는 반드시 지켜야 하거나(Required) 지키면 좋은(Advisory) 코딩 규칙(Rule)으로 이루어져 있습니다. 의료 전기기기용 소프트웨어 대한 의료기기 국제 표준인 IEC 60601-1과 IEC 62304의 요건을 검토하여 반영했으며, 총 39개의 의료 전기기기용 SW 코딩 규칙을 정의하였습니다. 다음으로 개발자가 참고할 수 있도록 코드 표준서를 정의했으며, 소프트웨어 코드 표준은 LDRA 정적 분석 도구에 적용했습니다. LDRA 정적 분석 도구를 이용하여서 소스 코드를 가지고 의료 전기기기용 코딩 규칙과 위배되는 사항이 있는지를 점검하고, 코드의 복잡도, 테스트가능 수준, 유지보수 용이성 등의 품질 지표를 산출하였습니다. 의료 전자기기의 코딩 규칙을 적용하면 소스 코드 단계부터 안전성 확보가 가능합니다. 소프트웨어 테스트 전 단계에서 문제점이나 위험을 파악할 수 있으며, 안전한 소프트웨어 개발이 가능합니다. 의료기기의 위험 관리 입장에서 보면, 소프트웨어 버그로 인하여 발생할 수 있는 위험 확률을 낮출 수 있어, 위험 통제의 수단으로는 매우 효과적입니다. (자료 2)
[자료 2. MISRA-C 기반 의료 전기기기용 소프트웨어 코딩 규칙]
의료용 소프트웨어의 동적 분석 의료기기 국제 인증을 받기 위해서는 객관적인 검증 자료가 필요합니다. 하드웨어는 공인시험기관의 시험을 통해 객관적인 검증이 가능합니다. 하지만, 소프트웨어는 객관적인 검증이 매우 힘듭니다. 지금까지 의료기기가 정상적으로 동작하는지를 확인하는 수준으로 검증을 진행했습니다. 이러한 방법은 소프트웨어에 대한 안전성을 증명하기에는 부족한 부분이 있습니다. 소프트웨어 공학 도구를 이용하여 구현된 의료용 소프트웨어 유닛과 소프트웨어 시스템을 검증합니다. 의료용 소프트웨어의 특성상 고품질, 고신뢰성, 고안전성 등을 충족시키기 위해서는 자동화된 분석 도구의 활용이 필요합니다. 이러한 방법은 소프트웨어에 대한 품질과 안전을 높일 뿐만 아니라 객관적인 증명 자료로 활용할 수 있습니다.
소프트웨어 공학 도구를 이용하여 의료용 소프트웨어의 단위 시험(Unit Test)과 시험 커버리지(Test Coverage) 분석은 ISO 14971에서 위험 통제와 IEC 62304의 소프트웨어 유닛 구현 및 검증, 소프트웨어 통합 및 통합 시험 활동에 매우 중요합니다. 단위 테스트 및 통합 테스트 도구는 테스트 케이스 생성/관리 및 리그레션 테스트 수행하며, 자동으로 드라이브 및 스텁(Stub)을 구성하며 베리피케이션 테스트 케이스(Verification Test Case)를 자동으로 연동시켜 손쉽게 테스트할 수 있습니다. 하드웨어나 모듈이 완성되지 않더라도 드라이브를 스텁으로 구성하면 상위 모듈에 대한 테스트를 진행할 수 있어 테스트를 진행할 수 있습니다. 또한, 결함들을 수정해나가면서 의료용 소프트웨어의 구조적 설계를 지원하기 위하여 커버리지(coverage) 산출법을 도입합니다. 테스트 커버리지 달성을 통해 의료용 소프트웨어에 잠재된 결함들을 예방합니다. 커버리지는 Statement Coverage(코드라인 당 구조적 검증을 통해 결함을 찾음), Branch Coverage(코드의 분기문 구조적 검증을 통해 결함을 찾음), MC/DC Coverage(다중 조건문 구조적 검증을 통해 결함을 찾음) 방법을 사용합니다. (자료3,4)
[자료 3.의료용 소프트웨어 테스트 절차]
[자료 4.자동심장충격기용 임베디드 소프트웨어에 대한 시험 결과 보고서]
[자료 5. 자동심장충격기 리콜 원인에 대한 FDA 분석 결과]
의료용 소프트웨어와 직접 관련된 국제 규정은 IEC 62304 (의료용 SW의 생명주기)와 IEC 60601-1(의료용 전기기기의 공통 안전성)이 있습니다. 이와 함께 ISO 14971(의료기기 위험 관리)와 ISO 13485(의료기기 품질경영시스템)에 대한 활동을 요구하고 있습니다. (자료 6) 여기에 각 국가별로 요구하는 의료기기 규정이 별도로 있습니다. 소프트웨어는 하드웨어보다 설계 및 개발 관리가 복잡하고 정형화된 문서를 작성하기가 어렵습니다. 의료기기 인증을 받기 위해서는 의료용 소프트웨어에 대한 의료기기 국제 규정에 따른 설계관리가 필요하고, 이를 통괄적으로 관리하고 유지할 수 있는 시스템이 필요하게 된 것입니다.
[자료 6.의료용 소프트웨어에 있어 설계 관리를 위한 국제 표준 및 규정 관계]
IEC 62304에서 소프트웨어 개발 프로세스에 대한 적합성 요구사항에서는 세부적으로 소프트웨어 개발 계획을 수립하고 그 내용을 준수할 것을 요구합니다. 개발 수명주기, 요구사항 명세, 아키텍처, 설계 및 구현, 검증에 대한 IEC 60601-1의 PEMS 요구사항과 관련이 있습니다. ISO 13485-7.3, FDA 21 CFR 820.30, GHTF/SG3/N998-8~9에서는 의료기기 설계관리 및 제어활동을 규정하고 있습니다. 사용자 요구(User Needs/SRS)에 따른 설계 입력(Design Input/SDS), 설계 출력(Design Output/Source), 각각의 활동에 대한 검증과 유효성 평가(Verification & Validation) 활동을 요구하고 있으며, 개발 과정 중에서 변경사항 및 출력물을 모두 관리하는 설계이력(Design History/SCM)을 중요하게 보고 있습니다.
IEC 60601-1과 IEC 62304에서는 위험관리를 ISO 14971에 따라 수행할 것을 요구합니다. 소프트웨어 위험 분석, 평가, 통제 및 위험 해소를 위한 활동과 이러한 활동의 결과를 관리할 필요가 있고, ISO 14971의 요구에 따라 위험관리 프로세스에 소프트웨어 공학을 적용할 필요가 있습니다.
ISO 13485 7.3.7에서는 설계 및 개발변경 관리를, 7.5.3에서는 식별 및 추적성을 규정하고 있습니다. 특히, 국제 의료기기 인증을 위한 심사 중에서 설계이력 관리가 중요하면서 의료기기 소프트웨어의 형상관리가 중요해졌습니다. 소프트웨어의 시스템 형상을 구성하는 형상 항목 및 그 버전을 문서화하여야 하며, 승인된 변경 요청에 응하는 경우에 한하여 형상 항목을 변경해야 하는데요. 변경 요청, 관련된 문제 보고, 변경승인 요청에 대한 관리 및 추적성 방법을 제공해야 하며, 사용자 요구사항이나 설계입력이 변경되면 관련된 위험분석부터 다시 수행해야 합니다. 이후, 소프트웨어가 수정되면 검증활동을 수행해야 하는데, 이러한 과정이 반복되면서 모든 활동이 기록되면서 추적이 가능해야 합니다. 이러한 활동은 개발이 완료된 이후에도 시판 후 조사(Post Marketing Surveillance & Vigilance. PMSV), 시정 및 예방조치(Corrective and Preventive Action. CAPA)에 따른 형상관리를 수행해야 합니다.
[자료 7. FDA 설계 제어 가이드에 따른 의료용 소프트웨어 설계 관리]
의료기기의 설계 관리를 위해서는 사용자의 요구사항 분석, 설계 입력과 출력(산출물), 이에 따른 위험 분석, 설계 검증 및 형상 관리까지 일괄적이면서 추적할 수 있어야 합니다. 개발이 완료되어도 시판 후 조사나 시정 및 예방 조치에 따른 수정사항이 발생되면 변경 이력에 대한 추적 관리도 필요합니다. 이러한 모든 활동은 산출물로 관리되어야 하며, 의료기기 인증에 있어 중요한 문서가 됩니다. 그리하여 저희는 최근, 의료기기용 소프트웨어의 생명 주기를 관리하는 ‘ALM (Application Life-Cycle Management) 도구’를 도입하여 관리 사이트를 구축하였습니다. ALM은 IEC 62304를 기반으로 사용자 요구사항 입력 관리 및 추적(사용자 요구사항에 따른 설계 입력, 개발, 검증 등의 활동에 대한 관리 및 추적성 제공), 위험 관리(ISO 14971 기반의 위험분석 및 관리 제공), 형상관리 연동(Git, SVN 등 형상관리 도구와 연동하여 요구사항에 대한 형상관리 및 추적성 제공), IEC 62304 활동 지원 및 문서 생성(의료기기 소프트웨어 개발 계획, 요구사항 분석, 아키텍처 설계, 상세 설계, 유닛 구현 및 검증, 통합 및 통합 시험, 시스템 시험, 배포 등 IEC 62304의 소프트웨어 프로세스 활동을 기록하고 관리하며, 의료기기 인증을 위한 문서 생성 제공)을 지원하고 있습니다. (자료 8.)
[자료 8.나눔테크에서 구축한 의료기기용 ALM 사이트]
최근 고령화 사회로 진입하면서 의료기기 시장이 그 무엇보다도 뜨거운 주목을 받고 있다. 이에, 보건산업진흥원은 2014년 의료기기 시장에 이슈가 될만한 요인으로 ‘국제규격’ 을 1위로 꼽았다. 그만큼 글로벌 차원의 규격수준에 우리의 제품을 맞추는것이 의료기기 시장의 가장 큰 화두로 떠오른것이다. 글로벌 규격수준에 제품수준을 맞추지 못하면 빠른 시일내에 국내외 시장에서 도태될 것이 분명하고, 우리의 중소 의료기기업체들은 더이상 설자리가 없어질 수 밖에 없다.
지난 2년 동안 나눔테크는 ‘소프트웨어공학기술 현장적용 사업’을 통해 의료용 소프트웨어에 대한 코딩 규칙, 정적 및 동적 테스트 도구 지원, 소프트웨어 공학 도구를 이용한 테스트 환경 구축, ALM 시스템 지원 등의 지원을 받았다. 이 부소장은 이를 통해 의료용 소프트웨어 검증에 있어 아무것도 몰랐던 황무지 같은 환경에서, 선진국 수준으로 성장할 수 있는 배경이 되었다며 고마움을 감추지 않았다. 앞으로도 더욱 다각적인 지원을 통하여 국내 중소 의료기기 기업이 더욱 성장하고 발전할 수 있는 계기가 되었으면 한다며 바람을 드러냈다.
|
최근댓글