2016년 1월 6일 수요일

모바일 개발을 위한 데브옵스(DevOps) 적용방안

개인 또는 기업을 막론하고 모바일 컴퓨팅은 사용자뿐만 아니라 개발팀과 운영팀에게도 가장 뜨거운 화두 중 하나입니다 . 이에 따라 각각의 운영체제와 각각의 기기에서 발생하는 수많은 이슈들을 개발과 운영 측면에서 대응할 수 있도록 데브옵스를 모바일 환경에 적용할 수 있는 기본적인 방안을 제시합니다 .

본 원고에서는 데브옵스를 통해 각기 다른 모바일 기기에 설치된 다른 버전의 애플리케이션들의 활용 방법에 관한 이슈들을 다루는 방법에 관해 살펴보고자 합니다.
따라서 기업들이 단순히 모바일 앱 개발뿐만 아니라 환경변화 속에서도 배포방법과 기능의 연속성과 안정성을 담보할 수 있는 방법을 모색하는 것이 중요합니다. 전 세계 기업들은 모바일 컴퓨팅을 더 쉽게 만드는 애플리케이션을 고객들과 사용자들에게 제공하는 것으로 모바일 시장을 더욱 확장하고 보편화되길 원합니다.
모바일 컴퓨팅은 요즘 개발팀과 운영팀에서 가장 인기 있는 주제일 것이며 , 크고 작은 회사들의 대부분 직원들도 작업 수행에 개인 소유의 다양한 모바일 기기를 활용하고 있습니다.
  • 모바일 애플리케이션: 새로운 모색 과정과 행동
  • 모바일 애플리케이션 개발의 위험성
  • 데브옵스의 성능

2016년 1월 5일 화요일

소프트웨어 생산성 향상 - 자동화 도구 편

최근의 소프트웨어는 개발 환경이 일반화되어 있어 프로세스나 개발 도구들이 거의 유사하기 때문에 소프트웨어 개발에 필요한 많은 자동화 도구들이 개발되고 있습니다. 개발자가 직접 하던 일들을 대신하는 자동화 도구는 시간과 장소의 제약을 없애주고 개발자가 하는 것보다 더 많고 정확한 결과를 제공하고 있습니다. 최근 들어 자동화 도구 사용을 필수로 하는 프로젝트가 점차 늘어나고 있습니다.

소프트웨어 개발 프로젝트는 사람이 하기 때문에 완벽한 개발과 일관된 테스트를 할 수 없었고, 시스템 구성과 인터페이스도 개발자의 성향에 따라 결정되기도 하였습니다. 자동화 도구는 수많은 케이스를 일관되게 적용할 수 있어 사람이 직접 하는 것보다 빠르고 정확한 결과를 나타냅니다.
테스트 분야에서 시작된 자동화 도구는 개발 효율을 높이기 위한 자동화 도구에 이어 컴포넌트 기반의 개발, UI/UX 자동화 도구까지 선을 보이고 있습니다. 이러한 자동화 도구를 통해 소프트웨어 생산성을 탁월하게 높였다는 다양한 사례가 발표되고 있습니다.

자동화에 많은 발전을 보이고 있는 테스트와 성능 측정, 빌드를 중심으로 자동화 도구의 종류와 구동 방법에 대해서 살펴보도록 합니다.

테스트 자동화
  • 외부 요인에 접근하지 않고 영향을 받지 않아야 한다.
  • 리소스가 반드시 있다고 전제하지 않는다.
  • 테스트 중에 사용자가 개입을 하지 않는다.
  • 테스트 수행 시간이 오래 걸리지 않도록 한다.
소프트웨어 성능 검증 자동화
  • 목표 TPS(Transaction per Second)
  • 목표 응답 시간
  • System Utilization
  • Availability
  • 지표의 품질

IEC 6230와 Agile Scrum의 통합

현재 전세계 의료기기 시장은 성장에 대한 미래가 밝습니다. 최근 의료 IT 융합 및 고령화 추세에 따라 그 수요가 확장되고 있기 때문입니다. 한국보건산업진흥원이 최근 발간한 보고서에 따르면, 우리나라의 의료기기 시장규모는 세계 11위(52억달러)로, 세계의료기기 시장에서 1.5%를 차지하는 것으로 나타났습니다.
이처럼 우리나라 의료기기 산업은 최근 꾸준한 성장세를 보이고 있으나, 가장 어려운 부분은 전세계적으로 의료기기 및 관련 SW에 대한 규제가 점점 더 강화되고 있다는 것입니다. 특히 의료기기는 생명과 직결된 부분이기 때문에 SW의 품질과 안전성의 확보가 가장 중요할 수 밖에 없는 것은 자명합니다. 우리나라 업체들도 연구개발에 지속적인 투자를 하고 있지만, 선진국들과 맞붙을 수 있는 수출경쟁력을 가지기에 어려운 부분이 많습니다.

의료용 SW의 경우 FDA, CE 등의 인증을 위하여 의료용 SW 생명주기의 국제규격인 IEC 62304를 반드시 적용해야 하는데, IEC 62304는 의료부문 기능 안전 필수사항이지만 구체적인 개발 방법론을 규정하지는 않습니다.

IEC 62304와 대표적인 애자일 방법론 중 하나인 Scrum을 어떻게 통합하였고 어떠한 효과가 있었는지, (주)디알텍의 김현준 책임으로부터 그 과정과 노하우에 대해 들어보았습니다.
  1. IEC 62304
  2. Scrum 도입 사유
  3. 두 체계의 통합 및 구축 방법
  4. 도입효과

[SW공학 동영상 11화] SW 아키텍처 설계예시편_Part 2

  • 아키텍처 설계 - 런타임 뷰, 얼로케이션 뷰, 모듈 뷰
  • 아키텍처 평가

http://www.sw-eng.kr/member/customer/Learn/BoardView.do?boardId=00000000000000036203&currPage=&searchPrefaceId=&searchCondition=TOT&searchKeyword=



2016년 1월 1일 금요일

[공고] 2016년 SW품질역량 강화를 위한 공통교육(GCS School) 운영

용역입찰 재공고
  • 입찰건명: 2016년 SW품질역량 강화를 위한 공통교육(GCS School) 운영
  • 용역기간: 계약체결일로부터 약 7개월
  • 제안서(입찰참가신청)제출(시간 초과시 서류 제출이 불가합니다.)
  • 제출마감일:  2016.01.05(화)15시까지
  • 입찰방법:제한경쟁입찰
낙찰자 선정방법 : 협상에의한계약 ( 기술 : 가격 = 90:10)
제안서를 제출받아 평가한 후 협상대상자를 선정 ( 개별통지 ) 하여 , 기술 / 가격협상에 참가할 수 있는 자격을 부여하고 제안서 평가 1 순위 업체부터 협상하여 우리 원에 가장 유리하다고
인정되는 업체를 낙찰자로 결정합니다 .

입찰참가자격 (아래의 자격을 모두 갖춘 자이어야 합니다)

 ▶ 국가를당사자로하는계약에관한법률 시행령 제 12 조 규정 및 동법 시행규칙 제 14 조 규정  에의한 유자격 업체
 ▶ 국가를 당사자로 하는 계약에 관한 법률 시행령 제 76 조 규정에 의한 부정당업자에 해당
하지 않은 업체
 ▶ 입찰참가신청시 우리 원의 선정방식에 이의가 없음을 확약한 업체
 ▶ 중소기업기본법에 의한 소기업 , 소상공인 업체 또는 비영리법인

GIT Flow를 활용한 효과적인 소스 형상 관리 Part 1


산업계에서는 단순히 GIT 를 사용하기도 하지만 대다수의 대규모 프로젝트에서는 어느 정도 프로세스화된 GIT Branch 전략을 사용하여 개발하고 있습니다 . 이 중에서 가장 널리 사용되고 있는 GIT Branch 전략 중의 하나인 GIT Flow 를 살펴보고자 합니다 .

GIT Flow 는 GIT 의 가장 큰 장점인 GIT Branch 를 활용합니다 . 일반적으로 소프트웨어를 버전 단위로 릴리즈하는 유지보수 관점에서 GIT Flow 는 매우 훌륭합니다 . GIT Flow 는 배포관점의 형상 관리를 담당한다고 볼 수 있는데 원활한 소스코드 관리를 가능하게 하는 것이 핵심입니다 .
보통은 개발 중인 버전 (Develop) 과 이미 배포된 버전 (Master) 을 먼저 분리한 후 사용하는데 , GIT Flow 는 개발 중인 버전 (Develop) 을 바탕으로 중 / 단기 단위로 개발 (Release, Feature) 할 수 있도록 합니다 . 만약 치명적인 결함이 발생하더라도 이미 배포된 버전 (Master) 를 바탕으로 Hotfix 버전을 생성하여 빠른 패치를 진행하고 , 개발 중인 버전 (Develop) 으로 소스 병합 (Merging) 작업을 통해서 소스 형상관리를 최대한 활용할 수 있도록 합니다 .

본고에서는 소스 간의 충돌을 최소화하여 효율적인 개발이 가능해 특히 대규모 인원의 개발에서 주로 쓰이는 GIT Flow 를 소개하고 , 예제를 통해 실무 활용 방안을 살펴보고자 합니다 .

  • GIT Flow 소개
  • Breach 전략

iOS 애플리케이션 GUI 테스팅을 위한 영향 관계 기반 커버리지 및 테스트 케이

iOS 의 사용자 인터페이스는 멀티 터치 제스처에 의한 직접 조작 (Direct Manipulation) 을 기반으로 한다 [1]. 직접 조작이란 , 사용자에게 시각적인 요소를 제공함으로써 , 시스템을 제어할 수 있도록 하는 것을 의미하며 [2], 그래픽 사용자 인터페이스 (GUI) 와 유사한 개념입니다 . 애플에서는 코코아 터치 프레임워크 (Cocoa Touch Framework) 를 통하여 사용자에게 직접 조작을 기반으로 한 인터페이스를 제공한합니다 . 코코아 터치 프레임워크는 터치스크린을 내장하고 있는 모바일 장치를 위한 사용자 인터페이스 프레임워크입니다 . 즉 , iOS 는 터치스크린 기반의 GUI 를 제공하며 그 위에서 동작하는 iOS 애플리케이션 역시 GUI 를 사용자 인터페이스로 갖습니다 . 따라서 iOS 애플리케이션에서 GUI 가 갖는 비중은 매우 크다 . 따라서 GUI 의 문제 여부가 iOS 애플리케이션의 품질에 커다란 영향을 미칠 수 있습니다 . iOS 애플리케이션의 품질을 향상시키기 위해서는 GUI 에 대한 충분한 테스트가 필요합니다 .

  1. 이벤트 핸들러 기반의 테스트 커버리지
  2. 애플리케이션 상태와 영향 관계
  3. 영향 관계 기반의 테스트 케이스 생성 기법