- 사례발표1: 의료용 SW 안전성을 위한 IEC 62304체계 구축 사례
- 사례발표2: 철도 산업 부문의 기능 안전 사례
- 사례발표3: 원전계측제어 소프트웨어 V&V 적용기술
- 사례발표4: NIPA주관 ISO 26262 기능안전 표준 동향 및 사례
- 키노트: SW안전성 확보를 위한 프로세스 구축
2015년 11월 4일 수요일
2015 SW 안전성 컨퍼런스 발표자료
2015년 11월 3일 화요일
트리 형태를 이용한 클래스의 단계별 상태 다이어그램 도출 기법에 대한 연구
개발된 소프트웨어 시스템의 안정성 및 품질을 향상시키기 위해서는 소프트웨어의 테스트 과정이 필요하다 . 일반적인 소프트웨어 테스팅은 소프트웨어 시스템 내의 결함을 검출하는 작업을 말하며 프로그램을 실행시켰을 때 결과가 명세서에 기술된 대로 산출되는가를 조사한다 . 소프트웨어 테스트는 설계 단계부터 철저한 검증을 통해 안전성을 확보하기 위한 모델 기반 혹은 정형명세 기반의 테스트와 관련된 연구들이 활발히 진행되어 오고 있다 . 최근에는 상태 다이어그램을 기반으로 한 테스트 기법들이 연구되고 있는데 이러한 상태 다이어그램 기반 연구들은 커버리지를 이용하여 전이를 측정하거나 유 ㆍ 무효한 테스트 케이스를 생성하여 소프트웨어 시스템을 테스트 하는 방법들로 개발된 소프트웨어 시스템의 안정성을 테스트하는 방식으로 연구되고 있다.
- 상태 다이어그램 도출 및 표기
- 단계별 상태 다이어그램 도출 기법 적용
SW개발 방법론 : Scrum과 Kanban의 비교
애자일 개발방법론의 대두와 함께 떠오른 Scrum 은 많은 개발자들에 점차 친숙해지고 있으며 , 최근에는 Kanban 이 떠오르고 있어 Scrum 을 마스터한 조직들은 점차 Kanban 으로 옮겨가고 있는 추세에 있습니다 . 이에 따라 Scrum 과 Kanban 을 구분 짓는 차이점과 , 개발방법론 이행시 차별성 , 방법론 간 상호보완 관계 등에 대한 여러 가지 시사점을 제시합니다 .
Scrum 은 개발자들 사이에서 애자일과 동의어로 받아들일 정도로 일반화되었으며 , 최근에는 Kanban 이 점차 떠오르고 있는 추세입니다.
Scrum 을 이행한 많은 조직들이 Kanban 으로 이동하고 있고 많은 ALM 밴더들이 제품에 Kanban 의 특징을 추가하고 있으며 수 많은 컨퍼런스에선 Kanban 의 사용을 의미하는 ‘ 린 (lean)’ 생산방식과 ‘ 흐름생산 (continuous flow)’ 에 관한 세션을 많이 열고 있습니다.
그러나 분명 Kanban 이 무엇이며 Scrum 과 어떻게 다른가 ? 이 둘이 함께 사용될 수 있는가 ? 이번 원고를 통하여 프로젝트 관리자들 및 팀 리더들은 Scrum 과 Kanban 이 어떻게 다르고 어떻게 상호보완적이 될 수 있는지 보다 자세히 살펴보게 될 것입니다.
▶ Scrum 과 Kanban 의 산출물 차이
▶ 개발 프로세스의 진척을 추적하기 위해 사용되는 척도의 차이
▶ 역할과 미팅에 있어 Scrum 과 Kanban 의 차이
▶ 이행측면에서의 Scrum 과 Kanban 의 차이
웹 프론트엔드 엔지니어링의 스킬셋 part 2
UI 개발에 필요한 어드밴스 스킬셋
Ⅰ . 코드 품질관리
프론트엔드 개발분야 역시 프로그래밍을 한다는 관점에서 일반적인 품질관리 기법이 필요로 한다 . 프론트엔드 개발자들은 품질관리에 필요한 것이 무엇이고 , 그것들을 어떻게 자동화과정을 통해 효율적인 코드 관리를 할 수 있는지 까지 알아둘 필요가 있다 .
프론트엔드 개발에서 필요한 품질관리 관련 스킬은 다음과 같다 .
1. code 에 대한 품질측정 방법
2. 단위 테스트 구현
3. CI(Continuous Integration) 지원 도구의 효율적인 활용
Ⅱ . 성능 개선 스킬
1. 대규모 프로그램의 구현 방법
2. 다양한 라이브러리와 스펙의 이해
3. 그 밖의 스킬들
자세히 보기 →
프론트엔드 개발자가 되기 위한 기본 스킬셋으로 Part 1 에서 다음과 같은 부분을 정의했습니다 .
- 다양한 라이브러리의 사용법에 앞서 순수한 HTML, CSS, Javascript 의 이해
- 브라우저 렌더링 과정의 이해
- 기초적인 물리와 수학
- 프로그래밍 공통 지식
고급 스킬셋은 Part1 에 언급한 기본지식을 기초로 꽤 복잡하고 미려한 UI 를 개발하면서 필요한 스킬들이라 할 수 있습니다 . 간단하고 단조로운 UI 개발인 경우에도 뛰어난 성능을 필요하거나 끊김없는 자연스러운 애니메이션을 구현해야 한다면 역시 기초 지식을 뛰어넘는 기술이 필요할 것입니다 . 프론트엔드 엔지니어링을 다루는 개발자의 고급 스킬셋을 하나하나 알아보겠습니다 .
Ⅰ . 코드 품질관리
프론트엔드 개발분야 역시 프로그래밍을 한다는 관점에서 일반적인 품질관리 기법이 필요로 한다 . 프론트엔드 개발자들은 품질관리에 필요한 것이 무엇이고 , 그것들을 어떻게 자동화과정을 통해 효율적인 코드 관리를 할 수 있는지 까지 알아둘 필요가 있다 .
프론트엔드 개발에서 필요한 품질관리 관련 스킬은 다음과 같다 .
1. code 에 대한 품질측정 방법
2. 단위 테스트 구현
3. CI(Continuous Integration) 지원 도구의 효율적인 활용
Ⅱ . 성능 개선 스킬
1. 대규모 프로그램의 구현 방법
2. 다양한 라이브러리와 스펙의 이해
3. 그 밖의 스킬들
자세히 보기 →
2015년 10월 31일 토요일
지속적인 통합을 위해 갖추어야 할 4 가지 기본 요건
지속적인 통합 (Continuous Integration) 은 팀의 구성원들이 자신들의 작업한 내용을 자주 ( 통상 최소 매일 주기 ) 통합하는 개발 지침을 말합니다 . 이러한 지속적인 통합은 복잡한 프로젝트 수행 시 야기되는 문제점들을 적시에 제거해주며 프로젝트 진행을 좀 더 손쉽게 하는 장점이 있음에 따라 , 지속적인 통합을 위해 갖추어야하는 관리방안 , 시스템 환경 등 4 가지 기본요건에 대해 소개합니다 .
▶ 원칙 1: 관리(Management)
지속적 통합이 실행방안이 되기 위해 개발자들은 소스코드관리(Source code management:SCM)시스템을 이행할 필요가 있음.
▶ 원칙 2: 자동화 테스팅(Automated testing)
• 애플리케이션의 자가 테스팅 자동화(Automated self-test)는 지속적통합에 있어서 매
우 중요한 부분인데, 이는 테스트 프레임워크인 ‘xUnit1)’와 같은 도구를 사용함에 따라 얻을 수 있음.
▶ 원칙 3: 자동화된 빌드(Automated build)
자동화된 테스트와 함께 ‘지속적통합’ 프로세스의 또 다른 중요한 부분은 시스템이 용이하게 작업 애플리케이션으로 변형될 수 있도록 하는 것임.
▶ 원칙 4: 리포팅 서버(Reporting server)
앞서 밝힌 3가지 이슈가 다루어졌을 때 프로젝트는 ‘지속적 통합 원칙’이 부합된다고 볼 수 있음.
자세히 보기 →
출시제품의 SW 품질확보를 위한 DevOps 도입 접근법
오늘날 대부분의 조직들은 개발단계에서의 SW 품질확보에 주력하고 있으나 , 일단 제품이 출시된 이후에는 SW 품질유지에 무관심한 경향이 있습니다 . 이러한 문제점은 주로 개발팀과 운영팀 간의 협업이 이루어지고 있지 않음에서 기인하고 있으며 , 제품출시 이후 SW 품질관리의 책임이 누구에게 있는가도 불확실함에 따라 , 이를 위한 DevOps 도입 접근법을 제시합니다.
▶ 소프트웨어 배포 전 개발팀과 운영팀의 팀워크
“소프트웨어 개발 후반부에 문제를 지니고 있다면 소프트웨어 배포의 위험은 매우
심각해진다. 그것이 DevOps 팀워크가 배포 전에 상당히 이루어져야 하는 이유이다.”라고 ALM Consultant인 Howard Deiner는 말함.
▶ QA의 또다른 이름
SW 생산 QA절차는 생산 모니터링이라 불리며 생산엔지니어에 의해 수행되고 생산 디렉터에게 보고 함.
▶ 생산 QA의 애자일 방법론
애자일의 주요 공헌은 개발과 운영의 협업이라는 DevOps 프로세스를 가능하게 한 것임.
웹 프론트엔드 엔지니어링 (web front-end engineering) 의 스킬셋 part 1
UI 개발에 필요한 베이직 스킬셋
Ⅰ. 웹 프론트엔드에서의 공학
1. 웹 프론트엔드란?
웹 프론트엔드(Web Front-end)는 웹 개발에서 UI(User-Interface)부분이다.
Server-side의 반대 개념이며 웹 브라우저(web-browser)를 통해서 표현되는 부분이다.
다시 말해 웹브라우저를 탑재하고 있는 기기에서는 웹이 존재하고 웹UI영역이 존재한다고 할 수 있다.
2. 웹 프론트엔드에서의 다양한 공학지식이 필요한 이유
소프트웨어 개발은 어느 분야에서나 공학적인 지식이 필요하다. 웹 프로그래밍의 영역도 공학적인 요소가 필요한데 일반적으로 서버사이드 관련 된 기술에 집중되어 있다.
프론트엔드 개발도 소프트웨어를 만들어가는 과정이라는 점에서 역시 일반적인 공학적 지식이 필요할 것이며, 프론트엔드에 특화된 지식들과 기술도 존재한다.
3. 국내 웹 프론트엔드 분야의 상황
국내에서는 웹개발자 대비 프론트엔드 전문 개발자는 상대적으로 부족하다. 웹 UI개발자는 일반적으로 HTML/CSS만을 주로 다루거나 Javascript 언어만을 집중적으로 다루는 경우가 많고 디자인과 HTML/CSS와 같은 측면을 다루는 분들도 많다.
UI개발분야 다시 말해, 프론트엔드 개발 분야는 ‘구조/스타일/동적인제어’가 조화롭게 이루어져야 하는 것인데 아직까지 이를 모두 전문적으로 다루는 개발자가 부족한 현실이다.
Ⅱ. 기본 Skill-set
1. 프론트엔드의 필수지식 : HTML, CSS, Javascript
2. Browser 동작의 이해
3. 기초 학문의 필수적인 지식들 (물리와 수학)
4. 프로그래밍 공통 스킬셋
피드 구독하기:
글
(
Atom
)
