노무현 대통령 배너



오늘 지인분과 테스트 커버리지에 대해 나눈 이야기를 간단하게 정리해봤습니다.


테스트 커버리지를 측정하는게 필요할까요?

저는 필요하다고 생각합니다. 커버리지를 측정하지 않으면 현재 가진 문제점이 드러나지 않습니다. 현재 얼마나 테스트 코드를 작성하고 있는가에 대한 대답을 할 수 있어야 합니다.


테스트 커버리지를 어떻게 가이드 해야 할까요?

N사에 있을때는 80% 이상이면 Gold, 70% 이상이면 Silver 이런식으로 등급을 나누어서 이를 각 조직에서 달성하도록 했습니다. 그러면 각 팀이 현재 어느수준에 와있고 어떤 노력을 해야 하는지 조금은 명확해 집니다. 아래 그림은 CI 서버를 이용해 자동으로 커버리지를 계산하여 등급을 보여주는 화면입니다.



테스트 커버리지를 높히기 위해서 경쟁하게 될거 같은데요

맞습니다. 그래서 커버리지를 측정한다고 해도 이를 강요해서는 안됩니다. 커버리지는 현재 테스트 코드 수준을 판단하는 한가지 지표일 뿐입니다. 


그럼 얼마나 높은 수준을 유지해야 할까요?

80%. 사실 테스트 코드를 작성하는 수준이 높아지면 테스트 커버리지는 의미가 없어집니다. 테스트 커버리지로 테스트 코드의 질을 평가할수는 없기 때문입니다. 어떻게 하면 좋은 테스트 코드를 작성할 수 있을까를 고민하는 개발자에게 '너 왜 코드 커버리지가 이렇게 낮아. 이 부분을 보강해.' 이런 식의 강요는 의미없죠.


너무 테스트 코드가 많으면 테스트 코드를 유지하느라 많은 비용이 들거 같아요.

소스가 변경되었을때 테스트가 실패하는것은 당연합니다. 그게 바로 테스트 코드가 해야하는 일입니다. 테스트 코드를 수정하는 일을 비용으로 보는것은 잘못된 시각입니다. 깨지는것, 버려지는것을 테스트 코드의 라이프 사이클로 보세요.


테스트 커버리지에 대한 논란이 있다는건 아직 테스트 코드 작성에 대한 마인드가 개발조직에 자리잡지 못했다는 징후라고 생각합니다. 숫자에 얽메이지 마세요. 

버그를 막아주는 좋은 테스트 코드를 작성하는데 집중하세요. 


참고자료

[1] http://googletesting.blogspot.kr/2010/07/code-coverage-goal-80-and-no-less.html


저작자 표시 비영리 변경 금지

glu 모델

Work & Study/TechTalk 2013/05/27 00:42 posted by k16wire

glu는 배포에 필요한 작업을 모델에 정의합니다. 이 모델은 json 형태로 되어있으며 모델이 갖는 정보는 3가지입니다.: 애플리케이션을 배포하기 위해서 무엇을, 어디에, 어떻게 할것인지  

튜토리얼에 들어있는 샘플 모델을 보겠습니다.


{
  "fabric": "prod-chicago",
  "entries": [
  {
   "agent": "node01.prod",
   "mountPoint": "/search/i001",

   "script": "http://repository.prod/scripts/webapp-deploy-1.0.0.groovy",
   "initParameters": {
      "container": {
        "skeleton": "http://repository.prod/tgzs/jetty-7.2.2.v20101205.tgz",
        "config": "http://repository.prod/configs/search-container-config-2.1.0.json",
        "port": 8080,
      },
      "webapp": {
        "war": "http://repository.prod/wars/search-2.1.0.war",
        "contextPath": "/",
        "config": "http://repository.prod/configs/search-config-2.1.0.json"
      }
   }
  }
  ]
}
  • 위 예에서 어디에 해당하는것이 agent와 mountPoint 이며 
  • 어떤 스크립트를 이용해서 배포를 하겠다는 부분이 script 이며 
  • 마지막으로 무엇을 배포하겠다는 정의가 initParameters 입니다.

glu 오케스트레이션 엔진은 이 모델파일을 읽어서 다음과 같은 작업을 진행합니다.

  1. 현재 배포되어 있는 상태와 모델에 정의된 상태를 비교한다.
  2. 실행 명령을 가지고 배포 계획을 만든다.
출처: http://pongasoft.github.io/glu/docs/latest/html/index.html

저작자 표시 비영리 변경 금지

칸반과 스크럼

Life & Culture/서평 2013/05/21 00:39 posted by k16wire

오늘 인사이트에서 최근 출간된 '칸반과 스크럼' 책을 받았습니다. 이미 원서로 한번 본 책인데다가 책도 얇아서 받자마다 한 숨에 읽어버렸네요. 이 책의 저자 헨리크리닉버그는 요즘 많이 인정을 받는 애자일러입니다. 그의 전작의 번역판인 '스크럼과 XP'역시 많은 사람들의 사랑을 받았습니다.


책 서두에 나오는 아래 이미지는 RUP,XP,Scrum,Kanban이 비교했을때 어떤 애자일 방법론이 얼마나 규범적인지를 잘 나타내는 도표입니다. 이 도표를 잘 이해하면 스크럼과 칸반의 차이를 확 느끼게 됩니다.



저는 2009년 애자일 컨퍼런스를 다녀온 이후로 국내에 칸반게임을 전파한 장본인이기도 하며 수많은 교육에서 칸반게임을 진행했습니다. 그러면서 늘 가져던 궁금증이 '왜 Queue가 효과적인 경우를 보기 힘든걸까?'였는데 책에서 든 '예:칸반에 WIP 리밋 실험하기'를 읽으면서 그 이유를 찾을 수 있었습니다.


이 책은 그리 친절하지는 않습니다. 상세한 이론을 담고 있지도 않구요. 그보다는 두명의 애자일러가 칸반을 적용하면서 자신들의 생각을 즉석에서 정리해놨다가 묶어서 책으로 만든 느낌입니다. 하지만 그 느낌이 나쁘지 않습니다. 책 마지막에 이런 말이 나옵니다. 

유일하게 실패라고 부를수 있는 때는 실패로부터 아무것도 배우지 못했을 때이다.(The only failure is the failure to learn from failure)


칸반을 제대로 이해했는지 궁금하시나요? 

스크럼이 무겁게 느껴진다면 반은 맞았다고 해드리겠습니다. :)


참고자료

[1] http://www.infoq.com/minibooks/kanban-scrum-minibook


저작자 표시 비영리 변경 금지

'Life & Culture > 서평' 카테고리의 다른 글

탐스 스토리  (0) 2014/04/09
칸반과 스크럼  (0) 2013/05/21
시작하는 습관(Poke the Box)  (0) 2013/05/12
남자의 물건과 가까이  (0) 2013/05/06
단순한 디자인이 성공한다.  (0) 2012/12/31
린 스타트업(Running Lean)  (0) 2012/12/20

glu는 무엇인가

오픈소스 배포 모니터링 자동화 플랫폼


glu로 무엇을 할수 있는가

- 많은 노드에 애플리케이션을 배포하고 모니터링 할 수 있다.

- 배포 시간때문에 발생하는 불일치를 막아준다.

- 문제가 발생했을때 이를 재빨리 알아내서 해결할 수 있게 해준다.


어떻게 동작하는가

glu는 필요한 작업을 model에 정의해 놓으면 이를 바탕으로 동작한다. glu가 동작하는 방식을 나눠보면

- 어플리케이션을 배포/업그레이드하는 일련의 작업을 계산한다.

- 일관성을 유지하기 위해 얼마나 시간이 걸리는지 확인한다.

- 배포가 잘못되면 확인해서 알려준다.


glu 아키텍처

glu는 크게 ZooKeeper, glu 오케스트레이션 엔진, 에이전트로 구성된다. ZooKeeper는 glu 에이전트가 보내주는 정보를 받아서 애플리케이션이 배포된 서버가 살아있도록 유지해주는데 사용한다. glu 에이전트는 애플리케이션이 배포될 서버에 설치되어 실행된다. glu 엔진이 이 시스템이 중요한 부분이다.



출처: http://pongasoft.github.io/glu/docs/latest/html/index.html

저작자 표시 비영리 변경 금지



눈을 감은 사람은 손이 미치는 곳까지가

그의 세계요.


무지한 사람은 아는 것까지가

그의 세계요.


위대한 사람은 비전이 미치는 곳까지가

그의 세계다.


- 폴 하비 -


저작자 표시 비영리 변경 금지

'Life & Culture > 생각지도' 카테고리의 다른 글

진짜는 귀하다.  (0) 2013/10/08
나는 시간이 있으면 늘 상상을 하오  (0) 2013/07/02
비전이 미치는 곳까지가 그의 세계다.  (0) 2013/05/18
Nothing  (0) 2013/05/05
마케팅/PR/광고/브랜드의 차이  (0) 2013/04/29
관찰의 네가지 관찰법  (0) 2013/04/26

시작하는 습관(Poke the Box)

Life & Culture/서평 2013/05/12 00:58 posted by k16wire

이 책의 원제는 Poke the Box 입니다. 하지만 시작하는 습관도 그리 나쁜거 같지는 않네요. 세스고딘(Seth Godin)은 뭐 하도 유명한 마케터이자 저자라서 따로 설명할 필요는 없을거 같습니다.



Poke the Box는 어떤 의미 일까요? 뭐가 들어있는지 모르는 블랙박스 같은 상자를 포크로 쿡쿡 찔러 보는것을 의미합니다. 서두에서 이 책을 이렇게 정의해 놨습니다. 

이 책은 시작에 관한 선언문이다. 

무언가를 처음 시도하는것이 얼마나 중요하며 왜 그래야 하는지를 책 전체에 걸쳐 다양한 사례와 인용문을 통해 설명하고 있습니다. 


사람들은 왜 처음 시도하지 않는가? 

위험하다고 생각하며 실패를 두려워 하기 때문입니다. 하지만 저자는 이런 생각에 정체되어 있는 때가 더 위험하다고 이야기합니다. 새로 시작하는 일의 대부분이 실패하지만 다행스럽게도 우리는 수많은 실패는 기억하지 못하고 성공만을 기대합니다. 오프라는 쇼를 망치고 많은 일에 실패했지만 우리는 그런 일을 전혀 기억하지 못합니다.


평범함에 안주하지 말라

우리 스스로 평범한 식당,서비스에 불평하지만 완전히 엉망이지만 않으면 평범함을 받아들이는 경향이 있다. 문제는 자기들끼리 힘을 모아 잘못된 것을 고치는 경우는 없다. 기회는 당신이 힘과 의지를 찾아 평범함에 도전하는 데 있다.


모든 일에는 대가가 따른다

시도하는 사람은 매우 드물다.

그래서 귀하다.

기꺼이 유용한 프로젝트를 시작할 만큼 똑똑한 사람을 구하는 일은 정말 어렵다.


제멜바이스의 책임

이그나즈 제멜바이스는 1800년대 살았언 헝가리 출신의 산과의이다. 그는 의사들의 불결한 위생 상태, 특히 손을 잘 소독하지 않는 관행이 환자들의 질병과 사망의 주요 원인임을 알아냈다. 하지만 이 중대한 사실을 알아내고도 이 주장에 대한 과학적 원리를 설명하고 사람들에게 알리는데는 실패했다.


-> 사람들은 자기 좋다고 생각하는 사실,지식에 대해 다른 사람들이 그 사실을 경험하고 느낄수 있는 기회를 박탈하는 경향이 있습니다. 애자일을 말하는 사람들중에도 이런 사람들을 왕왕 볼수 있습니다.


호기심이 기회를 가져온다.

호기심은 우리로 하여금 어떤 일을 시작하게 하고, 세상에 어떤 일을 가져오게 한다. 그 일을 자세히 살피고 다듬고 그 과정을 반복하게 한다.


3000번 테드 강연의 비밀

애초에 TED 컨퍼런스는 과학과 문학 분야의 거장들을 강연자로 선정하는 것이 특징이었기 때문에 테드 강연이 인터넷에서 인기를 끈 것도 별로 놀라운 일은 아니다. 정작 놀라운 것은 TEDx 이다. 당신에게 테드 토크에서 강연할 기회가 주어진다면 무슨 이야기를 할 것인가? 당신이 발견한 사실과 알고 있는 사실, 가르칠 수 있는 것은 무엇인가? 당신은 강연을 해야만 한다. 강연을 하지 않더라도 준비는 되어 있어야 한다.


-> TEDx의 가치를 다시 한번 느끼게 된 부분입니다. 저도 TEDxNHN을 통해 TEDx의 가능성을 몸소 느꼈지만 이 말처럼 와 닿는 설명은 보지 못했던거 같습니다. 무엇을 이야기 할지 항상 준비해야 한다는데 100% 공감합니다. 


가장 많이 실패한 사람이 성공한다.

성공한 사람들과 이야기를 나눠보라. 당신에게 기꺼이 무수한 실패담을 애기해줄 것이다. 성공한 사람은 실패로부터 배움을 얻는다.


시작하지 않으면 기회는 없다.

오늘날에느 시작하지 않는 것이 일을 잘못하는 것보다 훨씬, 아주 훨씬 더 나쁘다. 시작했다면 발전의 여지가 있고, 잘못한 일을 바로 잡을 기회가 있다. 하지만 시작하지 않았다면 기회조차 가질 수 없다.


시작하는 길이 안전한 길이다.

-> 일전에 안철수 교수님이 무릅팍 도사에서 하신 말씀이 생각났습니다. 강호동씨가 '왜 의사라는 안정적인 직업을 버리고 보안회사를 시작했나요?' '세상에 안정적인 직업이란 없습니다.' 맞다. 구성에 웅크린채 가만히 있는다고 안전한게 아닙니다. 평범해 질 뿐입니다. 


그보다는 중요한 일을 시작하는게 낫다. Go Go Go



시작하는 습관

저자
세스 고딘 지음
출판사
21세기북스 | 2011-11-30 출간
카테고리
자기계발
책소개
떠오르는 순간, 바로 시작하라!머뭇거리는 순간, 기회는 지나간다...
가격비교









저작자 표시 비영리 변경 금지

'Life & Culture > 서평' 카테고리의 다른 글

탐스 스토리  (0) 2014/04/09
칸반과 스크럼  (0) 2013/05/21
시작하는 습관(Poke the Box)  (0) 2013/05/12
남자의 물건과 가까이  (0) 2013/05/06
단순한 디자인이 성공한다.  (0) 2012/12/31
린 스타트업(Running Lean)  (0) 2012/12/20



2012년 9월1일에 열렸던 Agile Korea 2012 영상을 모두 공개합니다. Agile Korea Conference에 대해 잘 모르시는 분은 컨퍼런스 사이트(http://agilekorea.org/event/2012)를 참고하세요.

  1. 애자일을 실천하는 사람들이 격는 어려움(최보나)
  2. Lean Startup in Practice(정지웅)
  3. 애자일하게 스펙 작성하기(황상철)
  4. OEC facilitation Season2(채홍미)
  5. Traditional vs Agile(경기원)
  6. 애자일을 통하여 얻은것(황순삼)
  7. 협업도구를 활용한 Agile Practice 활용사례(한문근)
  8. 개인이 조직을 바꾸는 법(김창준)
  9. 유니콘 목장(정기원)
  10. User stories workshop(박준표, 최보나)
이번에 공개된 영상들은 발표자 분들로부터 사전에 영상촬영 및 공개에 대한 허락을 받은 영상들입니다. 컨퍼런스 프로그램에 있으나 영상이 없는 발표들은 다음과 같은 사항때문에 영상 자체가 없습니다.
  • 발표자 분이 영상촬영 거부하신 경우
  • 촬영 자체를 진행하지 못한 경우
  • 촬영을 했으나 잘못되어 제대로 촬영되지 못한 경우
2012년 행사에 참석하지 못하신 분들은 본 영상을 통해서 뒤늦게나마 행사를 즐기셨으면 좋겠습니다. 그리고 2013년 8월말에 개최될 Agile Korea 2013도 많은 성원과 도움 부탁드립니다. 

ps) 애자일 코리아 페이스북 그룹(https://www.facebook.com/groups/267408126612451/)에도 많이 참여해 주세요. 참석자 수가 많은것도 행사를 진행하는데 큰 힘이 됩니다.



저작자 표시 비영리 변경 금지

GTAC 2013

Work & Study/TechTalk 2013/05/07 22:55 posted by k16wire

GTAC은 Google Test Automation Conference 입니다. 지난 4월23~24일 양일간 뉴욕에서 열렸는데요. 이 멋진 컨퍼런스의 모든 발표자료와 영상이 무료로 공개되었습니다. 

GTAC 2013 WrapUp

GTAC2013: Presentations

제목만 봐도 끌릴만한 발표들이 즐비합니다. 잘 준비해서 내년에는 직접 한번 가보고 싶네요.


저작자 표시 비영리 변경 금지

'Work & Study > TechTalk' 카테고리의 다른 글

glu 모델  (0) 2013/05/27
배포 모니터링 자동화 플랫폼 glu  (0) 2013/05/20
GTAC 2013  (0) 2013/05/07
Play2 특징을 소개하는 영상  (0) 2013/05/01
나는 프로그래머로서 어느정도 수준인가  (0) 2013/04/25
초간단 웹서버 띄우기  (0) 2013/04/18