2015년 11월 7일 토요일

Devops의 이해와 구현 Part 1

Devops 이해하기 ( 개발과 운영은 남이 아니다 !)

Devops 란 무엇인가 ?
매일 새로운 용어가 등장하는 IT 분야에서 요즘 Devops 란 말이 자주 등장하고 있다 . IT 관리자 및 전문가에게 널리 알려진 CIO 전문지에서 “ 놓치지 말아야 할 필수 IT 프로젝트 ” 경력중 하나로 Devops 를 꼽기도 하였다 . Devops 란 무엇인지 살펴보기 위해 위키피디아 (wikipedia) 에서 정의한 내용을 먼저 살펴보자 .

DevOps 란 ?
DevOps(Devops = Development + Operations) 라는 합성어는 소프트웨어 개발자들과 IT 종사자들 사이의 의사소통 , 협업 , 융합을 강조한 소프트웨어 개발 방법론이며 , 소프트웨어 개발과 IT 운영간의 상호 의존관계에 대한 산물이다 . DevOps 는 조직에서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는 것을 목적으로 한다 .

Devops 가 아닌것은 ?
Devops는 새로운 부서가 아니다

새로운 개발문화로써의 Devops
Devops는 개발과 운영을 자동화해주는 도구를 설치한다고 해서 만들어지지 않는다. Devops를 새로운 개발 문화로써 인정하고 이를 조직에 정착시키는 핵심이다. 개발자와 운영자는 서로 존중하며, 신뢰를 해야 한다. 각자의 전문성과 책임을 인정해야 한다. 운영자는 새로운 기능을 배포하는데 개발자를 믿어줘야 하고, 개발자는 운영자가 제안하는 인프라를 신뢰하고 따라야 한다. 서로가 투명하게 공유하고 협력해 나가는 것이다. 개발자는 자신의 코드가 어떠한 영향을 주는지 알려야 하고, 운영자는 개발자에게 운영할 시스템에서 배포할 방법을 제공하는 것이다.

자세히 보기 →

소프트웨어 개발주기에서 위협모델링의 적용

위협모델링이란 시스템이 직면할 수 있는 보안 위협을 고려할 수 있도록 도와주는 것으로 , 즉 , 시스템의 잠재적인 취약점 제거 전략을 수립할 수 있도록 하며 , 제한된 리소스에 초점을 맞추고 주의를 기울이게 합니다 . 이에 개발중인 애플리케이션에 대해서 위협 모델링 개발의 기본 요소를 제시합니다 .
  • 소프트웨어 개발 주기상 , 초기에 누가 어플리케이션을 공격할지 어떠한 방법으로 공격하는지를 고려하는 것은 중요함
  • 이러한 프로세스는 위협모델링 (threat modeling) 으로 알려져 있으며 , 대부분의 개발팀들에게 이 개념이 익숙하지만 위협 모델링의 많은 기초적인 사항들에 대하여는 전문가들의 비밀 작업장처럼 숨겨져 있음
  • 위협모델링은 복잡하거나 굳이 공식적일 필요는 없는데 , 본 원고에서는 위협 모델링이 무엇이고 어떻게 수행하는지를 다룰 것임

▶ 개요
▶ 위협 모델링 프로세스
▶ STRIDE 에 대한 이해
▶ 결론

요약기반 대규모 소스 코드 유사성 평가

소프트웨어의 개발이 활발해짐에 따라 소스코드 복제 , 도용이 증가하고 있으며 , 이로 인한 분쟁도 증가하고 있습니다 . 따라서 소스코드 복제에 대한 유사도 검사 또한 매우 중요시되고 있습니다 . 개발 시간 단축 , 성능 향상을 위해 소스코드 복제가 일어나고 다른 기업 , 개인 간의 분쟁을 유도하게 됩니다 . 분쟁을 결정짓거나 사전에 방지하기 위해 소프트웨어 유사도 검사가 필요합니다 .

유사성을 측정하는 기존의 도구는 대부분 텍스트 / 토큰 비교 [1, 2, 3, 4] 방법을 사용한다 . 텍스트 / 토큰 비교는 소스코드의 텍스트나 토큰을 나열하여 비교하는 방법으로 다른 비교 방법에 비해 수행속도가 빠르다는 장점이 있습니다 . 하지만 기존의 툴들은 불필요한 소스 코드에 대해서 잘못된 유사성을 감정하는 한계가 있습니다 . 예를 들어 프로그램 개발 툴에 의해 자동으로 삽입된 소스코드 , 주석 , 변수 선언문의 위치 등은 유사도 측정에 있어 방해요소가 될 수 있습니다 . 대규모 소프트웨어의 소스코드를 그대로 비교하면 수행시간의 증가로 인해 기존 툴에 직접 사용하기에는 어려움이 있습니다 . 또한 소스코드를 도용 시 소스코드를 의도적으로 변형을 하게 되면 복제한 소스코드이지만 검출도구에서는 유사하지 않다고 판단 할 수 있습니다 .
  • 대규모 소프트웨어의 유사도 검사 방법
  • 소스코드 요약 기법과 유사도 비교 방법
  • 대규모 소프트웨어의 유사성 비교

요약기반 유사성 평가 절차

자세히 보기 →