태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Search results for '자동화'

  1. 2009/08/28 -- 게으른 개발자가 되라! (6)
  2. 2009/08/06 -- 한방에 빌드 (2)

게으른 개발자가 되라!

2009/08/28 20:21 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed
"게으른 개발자가 되라!"라고 하면 무슨 봉창 두드리는 소리냐고 할 겁니다. 진짜 게을러지라는 의미가 아니고 쓸데없는 일에 부지런하지 말자는 의미입니다.

항상 괜히 바쁜 개발자들이 있습니다. 본연의 연구 개발작업 이외의 과외 업무로 바쁜 것을 말합니다.
이런 개발자들은 개발도 열심히 하지만 과외 업무로 인해서 상당히 많은 시간을 빼앗깁니다.
가만히 보고 있으면 항상 열심히 하는 것 같지만, 헛고생하고 있는 것이 많습니다. 이런 과외 업무들은 최대한 자동화를 해 놓고 개발 본연의 업무에 충실해야 합니다.

개발자가 하루 종일 하는 일을 분석해보면 자동화를 해야 할 부분이 상당히 많다는 것을 알게 될 것입니다. 그럼 상당 부분 자동화할 수 있는 것들의 간단한 예를 들어보죠.
  • Engineering Unit Test
  • System Test
  • Daily Build
  • 소스코드관리시스템 Audit
  • Build 전반의 프로세스
  • Release 전반의 프로세스
  • Packaging 프로세스
  • Patch 업데이트를 위한 프로세스
  • 소스코드 Merge
  • 소스코드 정적/동적 테스트
이중에서 빌드를 예를 들어 보면 Build를 하면서 자동으로 소스코드 관리시스템에 Baseline을 설정하고 Build number를 갱신하고, 자동으로 Compile을 진행합니다. 또 빌드를 하면서 발생하는 Warning과 Error를 체크하고 자동으로 소스코드관리시스템에서 해당 Warning과 Error를 유발한 개발자를 찾아내고 이를 보고서로 만들어서 관리자와 담당자들에게 Email을 보내며 빌드 기록을 보관하게 됩니다.

이 과정에서 사람이 개입하는 것은 Build Script를 실행하는 것 뿐입니다. 공식 빌드를 하기 위해서 개발자들이 평상 시에 하는 Engineering Build처럼 Visual Studio나 Eclipse를 열어서 빌드를 하고 FTP로 서버로 파일을 옮기고 필요한 파일을 모아서 Install Shield를 실행하여 설치 프로그램도 만들고 Diff 프로그램을 이용해서 바뀐 파일도 찾아내서 Path update 파일을 서버에 등록하고 하는 일련의 작업을 직접 수동으로 하고 있다면 자동화 할 부분이 굉장히 많으니 기뻐하십쇼. 앞으로 개선된 일이 무궁무진하니까요.

개발 프로세스는 회사마다 다르기 때문에 자동화할 부분을 획일적으로 정할 수는 없습니다. 따라서 아직 자동화가 많이 부족하다면 자동화를 했을 때 효과가 크고 자동화가 쉬운 부분부터 차근차근 자동화를 해 나가야 합니다. 그 중에서 대표적인 것이 빌드입니다. 

자동화가 잘 된 조직과 그렇지 못한 조직은 개발 생산성에서 몇십% 차이가 나고 자동화가 잘된 조직은 그렇지 못한 조직이 밤새고 혼돈 속에서 고생하고 있을 때 제품에 아키텍처에 대해서 더 고민하고 신기술도 더 익힐 수 있고 그러면서도 퇴근은 더 빨리 할 수 있습니다.

게으른 개발자가 되십시오. ^^

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
(image by Dr_Heat)

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

'사람과 기술' 카테고리의 다른 글

시한부 프로그래머  (13) 2009/09/22
부지런한 개발자가 되라  (9) 2009/09/11
게으른 개발자가 되라!  (6) 2009/08/28
과거의 개발자 vs. 미래의 개발자  (18) 2009/04/28
개발자는 억울하다.  (10) 2009/04/21
거만한 속빈 강정  (14) 2009/04/09

전규현 사람과 기술 빌드자동화, 자동화

Trackback Address: http://allofsoftware.net/trackback/142 관련글 쓰기
  1. 2009/11/16 01:21
    게으른 개발자가 될 수 없는 이유 Tracked from 3마리 토끼의 소프트웨어 세상
  2. 2009/12/05 17:37
  1. Blog Icon
    김경록

    좋은글 잘 읽었습니다.

    제가 회사에서 개발 효율 개선 관련 작업을 하는데 도움이 되는 글이네요

    다른 글들도 조금 읽어봤는데 제가 관심있는 정보가 상당히 많네요^^

    RSS 등록해 놓고 읽도록 하겠습니다.

    앞으로도 좋은 글 많이 올려주세요

  2. 안녕하세요. 김경록님
    도움이 되었다고 하니 기쁩니다. Email을 통해서 직접 연락을 주셔도 언제든지 도움을 드릴 수 있습니다.
    앞으로 자주 들려주세요.

  3. 원래 개발자는 천성적으로 게으른 인종들입니다 ㅋㅋㅋ
    게을러서 자기가 하고 싶지 않아 컴퓨터에게 시키려는 종족이죠 ㅋㅋ


    조금 더 정확하게 말하려면
    "개발자들이여 조금 더 게을러 져라!" 여야 하려나요?

  4. 구차니님 안녕하세요.
    ㅎㅎㅎ 예리합니다. ^^

  5. '게으른 개발자가 되라!'
    보다는

    '지혜로운 개발자가 되라!'
    고 말하는 것 같습니다.

    우리는 더 많은 일을 하기 보다, 더 지혜로워져야 할 필요가 있지요.

  6. 김현남님 안녕하세요.
    척하면 척이죠. ^^

한방에 빌드

2009/08/06 20:37 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

Visual Studio나 Eclipse를 실행해야만 빌드를 할 수 있습니까?

"Yes"라고 대답하는 개발자들은 대부분은 이것이 무슨 문제인지 모르고 있는 상황입니다. 

Joel Test 12개 항목 중 하나를 차지할 정도 한방에 빌드를 만들어 내는 것은 중요합니다. Visual Studio나 Eclipse에서 버튼 하나만 누르면 빌드가 된다고 이것을 한방에 빌드를 만들어 내는 것이라고 착각하면 곤란합니다. 일단 Command line이 아니고 빌드를 위해서 사람의 손을 통해서 무슨 프로그램을 실행해야 한다면 한방의 빌드와는 거리가 먼 겁니다.

그럼 왜 한방에 빌드를 만들어 낼 수 있을까요? 

빌드는 반복적인 작업이며 대단히 귀찮은 작업이면서 전문적인 작업이기도 하고 실수하기 쉽기도 하며 개발에서 많은 시간을 소모하는 작업입니다. 한번의 빌드는 큰 시간 소모가 아니라고 생각할지 몰라도 개발 프로젝트 전체를 놓고 보면 아주 큰 시간과 비용입니다.

그래서 빌드는 자동화되어야 하고, 전문화 되어야 하고, 통제가 되어야 하며, 별도의 담당자가 할당되게 됩니다. 빌드의 효율성을 높이기 위해서 전과정을 자동화 하기 위해서는 Build Technology에 대한 연구가 이루어져야 합니다. 빌드는 일반 개발자가 개발도 하면서 매우 잘 해내기 힘든 전문 분야입니다. 

한방에 빌드란 개발자들이 해당 빌드에 추가될 모든 기능을 구현해서 소스코드 관리시스템에 등록을 한 상태에서 단 한번의 명령어 실행으로 빌드 전과정을 자동으로 실행해서 최종 마스터가 마스터 보관소에 저장이 되는 것을 말합니다. 이 빌드 전과정은 회사마다 제품마다 상당히 다르며 어떤 제품은 5분이면 끝나고 어떤 제품은 24시간이 넘게 걸리는 것도 있습니다. 또 어떤 제품은 수십개가 넘는 OS에서 빌드를 해야 하고, 어떤 제품은 빌드를 위해서 수십개의 빌드시스템을 동시에 실행하기도 합니다. 

5분짜리 빌드만 해본 개발자들이라면 한방에 빌드와 IDE를 통한 수동 빌드가 별로 차이가 없어 보이지만, 규모가 커지고 빌드가 복잡해지기 시작하면 그 차이는 확연히 드러납니다. 사실 5분짜리 빌드도 자동화의 잇점이 상당으로 작기는 하지만 자동화를 하는 것이 더 유리하죠. 그래야 자동화의 필요성도 깨닫게 되구요.

개발자가 분석, 설계, 구현하는 작업 외에 다른 작업에 많은 시간을 소모하고 있다면 그런 작업은 최대한 자동화하고 개발자들은 개발에 집중할 수 있도록 해야 합니다. 한번의 자동화가 귀찮다고 조금씩 갉아 먹는 시간은 대단히 큰 비용입니다.

아직 빌드 자동화에 대한 경험이 부족하다면 막상 시작하려면 막막한 경우들이 있습니다. 궁금하신 내용들이 있아면 제게 메일을 보내주세요. 제가 아는 한 최대한 성심껏 답변드리겠습니다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
(image by OCReactive)


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

'기반시스템 > 빌드/릴리즈' 카테고리의 다른 글

한방에 빌드  (2) 2009/08/06
Build Script를 C언어로 작성하기  (2) 2009/02/24
Daily Build를 하십니까?  (0) 2009/02/04
빌드와 컴파일의 차이  (6) 2008/11/14
빌드가 먼저일까? 베이스라인 설정이 먼저일까?  (8) 2008/11/12
Broken tree  (0) 2008/11/12

전규현 기반시스템/빌드/릴리즈 빌드, 자동화, 한방

Trackback Address: http://allofsoftware.net/trackback/138 관련글 쓰기
  1. 한방에 빌드 만들기.. 완전 순수히 귀찮아서 만들기 시작했는데 한번 스크립트로 만들고 나니 이거 없었으면 어떻게 했냐 싶습니다. 명령 한방으로 빌드, 셋업, CVS 관리까지 한번에 끝나니..

    그래서 팀에 자주 하는 말이 있습니다. 프로그래머는 귀차니스트가 되어야한다. 반복적인 작업 귀찮아.. 자동으로 할 수 있는 방법없나?? 라고 말이지요.

    아직 daily 빌드는 하지 못했는데, 글을 읽다가 다시 생각이 나네요.. 이것도 시도해봐야겠네요.

  2. Whitekid님 안녕하세요.
    귀찮아서 자동화하지 않는 개발자도 많습니다. ^^

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..