2016년 1월 9일 토요일

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

Source Tree 를 이용한  GIT Flow  실습


그동안 터미널 (Terminal) 에서  GIT Flow 를 사용하는 법을 학습했습니다 . GIT Branch  전략을 매번 터미널에서 작업하기란 쉽지 않습니다 .  그러나  UI  툴을 이용한다면 빠르게  GIT  명령어와  GIT Flow  명령어를 통해 능률을 높일 수 있습니다 .  대표적인  GIT UI  툴인  Source Tree(http://www.sourcetreeapp.com) 를 이용해서 쉽게  GIT  명령어 뿐 아니라  GIT Branch  전략을 사용해 효율을 높이도록 실습하고자 합니다 .  소스 간의 충돌을 최소화하여 효율적인 개발이 가능해 특히 대규모 인원의 개발에서 주로 쓰이는  GIT Flow 를 소개하고 ,  예제를 통해 실무 활용 방안을 살펴보고자 합니다 .


Source Tree 는  < 그림  1> 과 같이 좌측 화면에서  Branch, Tag  정보를 가운데 화면에서는 히스토리 (History)  이력 ,  하단에서는 무엇을 수정했는지 파일 이력 ,  우측 하단에서는 파일  diff  이력을 보며 개발의 편이성을 높인 툴입니다 .  자주 쓰는  GIT  명령어는 상단 아이콘 바 (Bar) 에 위치하고 있어서 터미널 없이도 개발할 수 있는  UX 를 제공하고 있습니다 .

클라우드 테스팅 설계를 위한 우선순위 설정하기

클라우드 환경이 점차 일반화됨에 따라 클라우드 환경 하에 새롭게 개발되거나 또는 기존 애플리케이션이 클라우드 환경으로 이식되고 있습니다 .  이에 클라우드 테스팅은 클라우드 환경 하에서 트래픽 등을 고려한 부하 테스팅 ,  성능 테스팅 등을 포함하여  SW 품질 제고를 위한 주요한 프로세스로 부각되고 있음에 따라 ,  클라우드 테스팅 설계를 위한 우선순위 설정 등이 매우 중요합니다 .

현재의 애플리케이션을 클라우드 환경으로 전환 시 ,  새로운 차원의 테스팅 이슈에 직면함에 따라 올바른 기술과 경험을 보유하는 것은 대규모 클라우드 테스트 설계 시 필수적입니다.
애플리케이션 환경을 클라우드로 이동하는 첫 번째 근본원인은 바로 확장성 (scalabilit) 인데 ,  데이터 트래픽과 데이터 전송을 처리하는 용량 (Capacity) 은 컴퓨팅 자원을 추가하는 것으로 쉽게 증가시킬 수 있습니다.

이러한 자원의 설정방법은 다양하고 이에 따른 여러 가지 예상치 못한 오류나 실패가 발생할 수 있음에 따라 현실세계에서 발생할 수 있는 시나리오를 시뮬레이션 할 수 있고 유지 가능한 테스트 설계는 선행 계획 수립에 상당한 시간이 걸립니다.


 

GA-SVM을 이용한 결함 경향이 있는 소프트웨어 모듈 예측

현대 사회는 소프트웨어가 강조된 제품과 시스템들 ,  그리고 다양한 운영 환경에 의존하고 있t습니다 .  또 시스템들의 기능이 매우 많고 복잡하며 높은 신뢰성을 요구하지만 시스템의 시험 기간이 매우 길고 시험에 대한 충분한 정보도 부족합니다 .  과거에 개발한 시스템의 정보를 이용하여 현재 시스템의 결함 경향을 분석하면 현재 시스템의 시험을 수행하는데 많은 중요한 정보를 줄 수 있습니다 .  즉 ,  어떤 모듈에서 결함이 발생할 경향이 높은 것으로 예측되면 이 모듈을 재설계하여 재개발하거나 시스템의 시험을 주의 깊게 할 수 있는 정량적 기준을 제시할 수 있습니다 .
이러한 결함 발생 경향이 높은 모듈예측을 위해 회귀모델 (regression model) 과 분류모델 (classification model) 을 사용합니다 .  결함경향성 여부를 판단하는 많은 연구들에서 제안한 모델들은 대부분 메트릭 벡터들로 설계 개체들을 정량화한 후 이들을 위험 그룹과 비 위험 그룹으로 분류하는 분류모델들이었습니다 .  의사결정트리 분류기 ,  규칙기반 분류기 ,  신경망 ,  지지도벡터기계 ,  나이브베이지안 분류기 등의 분류모델들이 결함유발 소프트웨어를 증명하는데 사용되고 있고 훈련 알고리즘으로는 복잡한 통계기법들이나 인공지능기법들이 사용되고 있습니다 .