2016년 1월 15일 금요일

특징 선택을 이용한 소프트웨어 재사용의 성공 및 실패 요인 분류 정확도 향상

특징 선택은 기계 학습 및 패턴 인식 분야에서 중요한 이슈 중 하나로, 분류 정확도를 향상시키기 위해 원본 데이터가 주어졌을 때 가장 좋은 성능을 보여줄 수 있는데 데이터의 부분집합을 찾아내는 방법입니다. 즉, 분류기의 분류 목적에 가장 밀접하게 연관되어 있는 특징들만을 추출하여 새로운 데이터를 생성하는 것입니다. 소프트웨어 재사용의 성공 요인과 실패 요인에 대한 분류 정확도를 향상 시키기 위해 특징 부분 집합을 찾는 실험을 하였습니다. 기존 연구들과 비교 분석한 결과, 본 원고에서 찾은 특징 부분 집합으로 분류했을 때 가장 좋은 분류 정확도가  보이는 것을 확인하였습니다.

분류 알고리즘(Classification algorithm)
  • SVM
  • RBFNetwork
  • NaiveBayes
  • BatesNet
특징 선택(Feature Selection)
특징선택이란 전체 속성 집합에서 분류에 결정적인 영향을 미치는 부분 집합의 조합을 찾는 기법입니다.



자동화 보안툴을 이용한 데브옵스와 보안의 공존 보안

정보보안은 대부분의 기업들에게 있어 SW출시를 지연시키는 등 이윤은 내지못하고 비용만을 발생시키는 코스트 센터(cost center)로 인식하고 있는 반면, 데브옵스(DevOps)는 SW개발, 출시 등의 시간을 절감하는 측면에서 각광받고 있습니다. 그러나, 데브옵스의 신속성이라는 특성은 보안을 일부 희생시킬 수 있는 여지가 있음에 따라 데브옵스가 성공하기 위해서는 보안성이 더욱 중요시되고 있으며 문제를 해결할 수 있는 대안 중 하나가 될 수 있습니다.

기업 경영측과 IT리더들은 현재 부각되고 있는 데브옵스가 소프트웨어 개발과 제품을 릴리즈하기 위해 필요한 시간을 감소시키는데 있어 최상인 반면, 정보 보안은 소프트웨어 개발과 출시를 늦추는 등의 코스트 센터로 인식하고 있는 등 두 관계가 상반되는 견해를 보입니다.
데브옵스 전문가인 데이비드 그린슈타인에 의하면 데브옵스는 최근 IT 기업에서 경쟁사보다 빠르게 제품이나 기능을 소개해야 할 필요성이 증가하기 때문에 추진될 수 밖에 없는 문화적 변화의 산물이라고 밝힙니다.

  • 보안 툴의 자동화 필요성
  • 최상의 보안 실행에 위한 데브옵스의 새로운 관점

코드 품질을 향상시키는 6가지 코드 리팩토링 패턴

소프트웨어 공학에 있어 코드 리팩토링은 컴퓨터 프로그램의 소스 코드를 수정하는 것을 말하는데, 복잡한 소스를 유지보수 측면에서 편리하게 하거나 내부 구조를 개선하여 확장성을 높이거나 능률을 향상시킬 수 있도록 하는 것입니다. 이에 대해 코드품질을 향상시키기 위해 패턴으로 정규화 시키고 궁극적으로 더 좋은 설계를 얻을 수 있도록 하는 6가지 코드 리팩토링 패턴을 소개합니다.

다섯 가지의 코드 악취(Code Smell)
과거 개발코드를 검토해 본 결과, 코드 품질이 이슈를 가지고 있는 이들 대부분의 코드에 걸쳐 다음과 같은 공통적인 5가지 코드 품질 저하 요인을 발견하게 되었습니다.
  1. 거대한 클래스(Large Class)
  2. 긴 메서드(Long Method)
  3. 몇 개의 메서드 인수(Several Method Parameters)
  4. 전역에 사용된 리터럴 상수(Literal Constants Used Everywhere)
  5. 애매한 메서드 이름(Vague Method Names)
코드 악취를 다루기 위한 6가지 리팩토링 패턴
  1. 클래스 추출 / 메서드 이동(Extract Class / Move Method)
  2. 메서드 추출(Extract Method)
  3. 조건문 분해(Decompose Conditional)
  4. 파라메터 객체 소개/모든 객체보존(Introduce Parameter Objet / Preserve Whole Objet)
  5. 매직 넘버를 기호 상수로 대체(Replace Megic Nember with Symbolic Constants)
  6. 메서드 네임변경(Rename Method)