태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

서로 맞물려서 돌아가야 하는 기반시스템(Infrastructure System)

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

소프트웨어를 개발하고 있는데, 필수적인 기반시스템에 대해서는 이미 설명한 바가 있습니다.

 

이 기반시스템은 서로 연동이 되어서 맞물려 돌아갑니다.

 

만약에 이 기반시스템들을 사용하고 있지 않다면 기적적으로 개발을 하고 계시거나 정말 쓸데 없는 고생을 하고 계신 겁니다. 어떠한 방법론을 쓰더라도 이 기반시스템을 쓰는 것은 거의 다르지 않습니다. 우선적으로 시급하게 기반시스템들을 도입을 해야합니다. 기반시스템을 써보려고 하는데 어려움이 있거나 궁금한 점은 제가 도와드릴 수 있습니다.

 

그리고 각 기반시스템이 서로 연동되지 않고 따로 돌고 있다면 최대한 활용하고 있는 것이 아닙니다. 각 기반시스템들은 서로 연동이 되고 최대한 자동화를 해야 효율이 높아집니다. 각 기반시스템들이 기본적으로 어떤 것들을 교환하는지 간단하게 예를 들어 보겠습니다. 여기서 예라고 하는 이유는 계속 개량 발전시켜나면 연동하는 것들은 점점 늘어나고 자동화 되면서 효율은 더욱 높아지기 때문입니다.


물론 이 외에도 사용하는 기반시스템들도이 있지만, 아래 그림이 소프트웨어 회사라면 필수록 필요한 최소한만 추린 것입니다. 

 

  

각각의 연동 방식이나 자세한 내용은 많은 양이므로 추후 하나씩 설명하도록 하겠습니다.

그리고 하나하나의 운영 방법도 다양하고 계속 발전하고 있어서 자신의 회사에 적당한 방법을 찾아야 합니다.


이렇게 서로 연동되고 있지 않으면 자동화 될 수 있는 일에 괜히 시간과 노력을 들이고 있는 겁니다. 그렇게 된다면 개발자들은 개발을 해야 할 소중한 시간에 쓸데 없는데 시간을 허비하고 실수에 의한 사고 가능성도 높아집니다. 또 오랫동안 개발 정보가 쌓여도 그리 효율적으로 활용되지 못합니다. 


일단 이런 식으로 잘 갖추워진 기반시스템 하에서 개발을 하다보면 과거의 방식으로는 도저히 돌아갈 수 없고, 과거에 왜 그렇게 개발을 하면서 시간을 낭비했는지 안타까운 마음이 생길 겁니다.

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

전규현 기반시스템

Trackback Address: http://allofsoftware.net/trackback/68 관련글 쓰기
  1. 제 미천한 경험으로 위쪽 세가지 시스템은 다루어 봤는데,
    버그 추적 시스템과 release 시스템은 아직 못 겪어봤네요.

    위쪽 3가지 시스템은 그냥 정책적으로 표준화 시키면 다들 따라오는데,
    버그 추적 시스템은 토론하거나, 의견 수렴하기가 좀 어려운 거 같습니다.
    아무래도 국내 환경에서는 남들이 많이 쓰냐를 의식하는데,
    그런 사례 정보를 못해서 그런 것도 있고, 필요성을 느끼지 못하니
    토론 하거나 의견을 나누기도 좀 어렵더군요.

    Release 시스템은 무얼 의미하시는지 잘 모르겠구요... T.T

  2. 써니님 안녕하세요.
    버그추적시스템을 사용하고 있지 않다면 버그 관리는 어떻게 하시나요? 엑셀파일에 넣어서 관리를 하시나요? 그렇다면 하루라도 빨리 버그추적시스템을 도입하시기를 강력히 권장합니다. 윗분들이나 동료분들을 설득해야 한다면 제가 설득을 해드릴께요. 시중에는 좋은 OpenSource 버그 추적시스템이 많이 있습니다. 버그관리시스템은 사용이 그렇게 어렵지 않고 금방 적응할 수 있을 겁니다. 단 빠짐없이 써야하고 기존의 방식은 버리셔야 합니다.
    그리고 Release System은 일반적으로 관심이 없지만 Release가 복잡한 시스템도 꽤 많습니다. 보통 Build와 Release는 같이 생각합니다. Release가 복잡한 경우는 새로운 패치가 나올 때마다 업데이트 서버에 파일들과 Release Note를 올려야 한다면 이를 자동화 할 수 있고, 업데이트도 Delta업데이트 되어야 한다면 좀더 복잡합니다. Build와 Release는 회사에 맞게 계속 연구하고 개량 해야 하는 부분이 많습니다.

  3. 멋진 그림이군요. JCO 발표할 때 인용해도 될까요?

  4. 영회님 안녕하세요. 블로그의 모든 내용은 출처만 표시하시고 변경만 하지 않으면 비영리 목적으로 이용할 수 있도록 표시 되어 있으니 맘껏 이용하세요.

  5. 정말 깔끔한 그림이군요.
    저희팀은 릴리즈노트 작성시 릴리즈담당자가 SCM의 변경이력을 확인하여 작성하고 있습니다. 이 그림에서는 버그트랙커에서 릴리즈노트를 생성(자동이건 수동이건)하는 것으로 되어있는데
    이에 대해서 나중에 좀더 자세하게 알려주시면 도움될듯 합니다.
    계속 좋은글 부탁드립니다.

  6. 헝그리맨님 안녕하세요.
    그림을 보면 변경이력이 SCM에서 자동으로 버그트랙으로 연동이 되도록 되어 있습니다. 그래서 결국 내용은 같은 것이 됩니다. 그런데, 버그 ID하나에 SCM에서 소스코드는 여러번 바뀔 수가 있습니다. 즉 제품에서는 버그ID하나에 해당하는 버그 하나가 수정되기 위해서 여러가지 일을 수해할 수 있습니다. Release Note에서 이를 한건으로 처리를 하기 때문에 버그트랙과 연동을 하고 있습니다. 그리고 Release Note는 자동으로 뽑아내게 됩니다. 그러기 위해서는 버그 해결 시 해결 Version을 제대로 지정해줘야 합니다. 물론 Release Note를 외부에 공개시는 문장은 다듬어줘야죠.

  7. 그림 잘 보았습니다. 그림에서 build system 으로 src/build script 가 넘어간다고 되어 있는데, 그렇다면 빌드를 위한 모든 리소스들(소스코드/테스트코드/설정파일 등등)이 모두 넘어간다는 것이고 binaries 라는 건 그것들을 모두 묶은 결과물을 이야기하는 것 같습니다.
    그런데 그림을 보면 SCM 에서 release system 으로 file 들이 또 전송되는 것 같은데 이건 어떤 걸 의미하는 건지요?

    release system 에서 release 환경에 맞도록 필요로하는 추가적인 것들을 의미하는 거라면 release system 에서도 릴리즈 환경에 맞도록 build script / test script 등을 다운로드 받아 빌드해야 할 것 같고, 위에서의 "build system" 은 "통합 테스트 system" 정도로 명칭을 바꾸어야 하는 건 아닌지요?

  8. 우울한딱따구리님 안녕하세요.

    이 그림에는 테스트 시스템은 표현하지 않았습니다. 그리고 모든 연동을 다 표현한 것은 아닙니다. 위에서 언급했다시피 회사마다 조금씩 달라질 수 있습니다.

    대부분의 경우 빌드, 팩킹이 한꺼번에 이루어지고, 릴리즈는 자동화 할 것이 없습니다. 따라서 그냥 상상하기는 어렵습니다. 하지만 복잡한 릴리즈 절차를 가지고 있는 회사라면 당연히 자동화를 해야 하는 것이 효과적이고, 당연히 자동화된 Release Script를 만들게 됩니다. 이때 Release Script는 빌드 시스템에서 빌드한 바이너리나 팩킹된 이미지와 릴리즈에 필요한 여러 데이터를 주변 기반 시스템에서 가져오게 되고, 그 예를 설명한 것입니다. 이러한 파일들은 제품에 포함되는 파일은 아니고 부가적으로 제공하는 파일 정도로 보면 될 것 같습니다.
    복잡한 릴리즈 절차를 가지고 있는 경우가 아니라면 별로 고민할 필요가 없습니다. 나중에 고민할 필요가 있을 때 생각하면 됩니다.

  9. mail 시스템은 하나 있는게 좋은거 같더라구요
    회사서버에서 서버마다 sendmail 설정하려니 삽질하는거 같고...
    괜히 그거 하나때문에 sendmail 설정하는 쓸데없는 시간이 낭비되는거 같더라구요

  10. nakada님 안녕하세요.
    sendmail설정하느라고 고생하셨군요. ^^ 개발자이신가 봐요? 만나서 반갑습니다.

  11. 결국 설정안했어요 ^^ㅋ;
    저는 이제 시작하는 신입 개발자에요 ^^

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

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

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

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

설계가 필요할까?

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

Software Architect를 양성하는 나라

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

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

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

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

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

프로토타입이란?

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

같이 일하려면 적어라.

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

우리 식대로
우리 식대로 2011/10/30

"우리 식대로" 마치 북한에서 하는 얘기 같지만, "우리 식대로"를 주장하는 소프트웨어 회사는 의외로 많다. 체계가 하나도 없이 완전 주먹구구 방식의 소프트웨어 회사가 있는가 하면 "우리 식대로"를 주장하여 정말 많은 일을..

문서는 얼마나 적어야 할지?

소프트웨어 개발 프로젝트에서 문서는 적게 적어야 한다. 다시 말하면 "보통의 회사에서는 문서는 필요한만큼만 가장 적게 적어야 한다." 물론 문서를 많이 적으면 여러 각도에서 상세히 적기 때문에 중복은 많이 발생하지만 잘못된..