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. 프로그래밍 공통 스킬셋