테스트 관련 서적2018. 9. 23. 00:00

 

소프트웨어 개발의 모든 것
국내도서
저자 : 김익환,전규현
출판 : 페가수스 2010.06.01
상세보기


1. 리스크관리에 대한 핵심내용과 리스크 인지에 대한 핵심내용을 각각 설명하고, 리스크를 수집하는 방법 4가지는 무엇인지 설명하시오. 또한, 학습자의 기업이나 조직에서는 어떤 방식으로 리스크를 관리하고 있는지 내용을 설명하시오.




1. 리스크 관리에 대한 핵심내용
프로젝트에서 가장 중요한 활동 중 하나가 리스크관리이다. 프로젝트 실패 원인의 대부분이 리스크관리를 하지 않거나 하더라도 부실하게 하는 데 있다. 성공하는 프로젝트 관리자는 우수한 리스크 관리자이다. 위험이라고 부르지 않고 리스크라고 부르는 이유는 모든 리스크가 꼭 위험 요소는 아니기 때무이다. 대부분의 리스크는 부정적인 위협이지만 리스크 중 일부는 기회 요소가 되기도 한다.

2. 리스크 인지에 대한 핵심내용

리스크를 관리하려면 가정 먼저 어떤 리스크가 있는지 알아내야 한다. 리스크를 찾는것은 프로젝트 관리자나 리스크관리책임자만의 임무가 아니다. 모든 프로젝트 관련자는 아무리 작은 것이라도 리스크라고 생각되면 리스크관리 책임자에게 알려야 한다. 리스크에 따른 문제가 리스크를 발견한 사람이 생각하는 것보다 의뢰로 큰 경우가 많다. 쉽게 생각하거나 귀찮다고 누락시킨 리스크가 나중에 프로젝트에 치명적인 영향을 줄 수도 있다. 따라서 생길 만한 리스크들은 모두 기록을 남겨서 관리하는 것이 좋다.
리스크를 수집하다보면 프로젝트의 특정인에게 민감한 내용들이 있을 수 있다. 따라서 이러한 경우 리스크를 제기한 사람이 누구인지를 숨기는 것이 좋다. 리스크 인지는 프로젝트 초반에만 잠깐 하는 것이 아니고, 프로젝트가 끝날 때까지 지속해야 하는 활동이다. 

3. 리스크를 수집하는 방법 4가지

브레인 스토밍 : 일반적인 리스크 수집 방법으로서 프로젝트 팀 뿐만 아니라 외부 전문가도 참여를 할 수 있다. 가장 많은 리스크를 수집하는 방법으로서 이 방법을 통해서 리스크 관리 대장의 기본목록을 작성한다.
인터뷰 : 경험이 많은 프로젝트 팀원과 각 분야의 전문가와 인터뷰를 통해서 리스크를 수집할 수 있다. 유용한 리스크를 수집할 수 있는 좋은 방법이다.
델파이 기법 : 각 분야의 전문가들에 대한 설문을 통하여 그들의 전문가적인 직관을 객관화 하는 예측 방법이다. 이 방법은 중소규모의 소프트웨어 프로젝트에서는 거의 사용되지 않으며 "전자정부구축", "차세대 고속 인터넷망 구축" 등 그 리스크를 쉽게 예측하기 어려운 대규모 프로젝트에서 주로 사용이 되고, 이를 토대로 국가나 대기업의 사업 방향을 결정하기도 한다.
SWOT 분석 : 프로젝트의 강점, 약점, 기회 및 위협의 관점으로 검토아혀 리스크를 수집하는 방법이다. 프로젝트의 사업성 분석에서 주로 사용한다.


4 기업이나 조직에서는 어떤 방식으로 리스크를 관리하는지 설명
우리 조직에서는 인터뷰 방식으로 리스크를 관리하고 있다. 각 모듈별로 담당자가 있고 해당 모듈 개발자들, 각 모듈 담당자가 인터뷰를 통해서 엑셀파일로 리스크를 관리하고 있다. 리스크 관리엑셀파일은 파일서버를 통해 프로젝트 관련자는 누구나 접속하여 확인 가능하도록 하고 있다.


1. 리스크 관리에 대한 핵심내용을 설명하시오.
: 프로젝트에서 가장 중요한 활동 중 하나가 리스크관리이다. 프로젝트 실패 원인의 대부분이 리스크관리를 하지 않거나 하더라고 부실하게 하는 데 있다. 성공하는 프로젝트 관리자는 우수한 리스크관리자이다. 위험이라고 부르지 않고 리스크라고 부르는 이유는 모든 리스크가 꼭 위험 요소는 아니기 때문이다. 대부분의 리스크는 부정적인 위협이지만 리스크 중 일부는 기회 요소가 되기도 한다.
이번에 개발 중인 보안 제품이 법령이 개정된다면 수요가 폭발적으로 늘 수 있는 상황을 생각해보라. 목표 매출액이 몇 십배로 늘어난다면, 이에 대한 대처를 해야 한다. 제품의 스펙도 일부 바뀌어야 하며, 영업이나 고객 지원 인력도 보강해야 한다. 이러한 일이 일어날 것에 대비하여 미리 계획을 가지고 있어야 하며, 설령 구현은 미뤄지더라도 제품의 스펙에 미리 반영해 두어야 한다. 제품의 설계에 있어서도 미리 대비하여 바뀔 기능을 추후 반영하기 쉽도록 해야 한다.

성공하는 프로젝트는 대부분 성공 가능한 범위 및 일정을 가지고 시작한 프로젝트라도 리스크관리에 거의 신경을 쓰지 않으면 예상치 못한 돌발 변수로 인해 프로젝트가 실패하기 쉽다. 프로젝트 리스크관리를 하다 보면 소프트웨어 프로젝트는 정말 가시밭길과도 같다는 생각이 든다. 웬만한 크기의 프로젝트에서 리스크 수십 개를 찾아내기란 그리 어렵지 않다. 하지만 미리 발견되고 관리가 되는 리스크들은 그 위험을 현저히 낮출 수 있고, 다른 대처 방법들이 얼마든지 있다.

2. 리스크 인지에 대한 핵심내용을 설명하시오. 
: 리스크를 관리하려면 가장 먼저 어떤 리스크가 있는지 알아내야 한다. 리스크를 찾는 것은 프로젝트관리자나 리스크관리책임자만의 임무가 아니다. 모든 프로젝트 관련자는 아무리 작은 것이라도 리스크라고 생각되면 리스크관리책임자에게 알려야 한다. 리스크에 따른 문제가 리스크를 발견한 사람이 생각하는 것보다 의외로 큰 경우가 많다. 쉽게 생각하거나 귀찮다고 누락시킨 리스크가 나중에 프로젝트에 치명적인 영향을 줄 수도 있다. 따라서 생길 만한 리스크들은 모두 기록을 남겨서 관리하는 것이 좋다.
리스크를 수집하다 보면 프로젝트의 특정인에게 민감한 내용들이 있을 수 있다. 따라서 이러한 경우 리스크를 제기한 사람이 누구인지를 숨기는 것이 좋다. 리스크 인지는 프로젝트 초반에만 잠깐 하는 것이 아니고, 프로젝트가 끝날 때까지 지속적으로 해야 하는 활동이다.

3. 리스크를 수집하는 방법 4가지는 무엇인지 각각 설명하시오. 
리스크를 수집하는 방법에는 다음과 같은 방법들이 있다. 

1) 브레인 스토밍 : 일반적인 리스크 수집 방법으로서 프로젝트 팀 뿐만 아니라 외부 전문가도 참여를 할 수 있다. 가장 많은 리스크를 수집하는 방법으로서 이 방법을 통해서 리스크관리 대장의 기본 목록을 작성한다. 

2) 인터뷰 : 경험이 많은 프로젝트 팀원과 각 분야의 전문가와 인터뷰를 통해서 리스크를 수집할 수 있다. 유용한 리스크를 수집할 수 있는 좋은 방법이다. 

3) 델파이 기법 : 각 분야의 전문가들에 대한 설문을 통하여 그들의 전문가적인 직관을 객관화하는 예측 방법이다. 이 방법은 중소규모의 소프트웨어 프로젝트에서는 거의 사용되지 않으며 ""전자정부구축"", ""차세대 고속 인터넷망 구축"" 등 그 리스크를 쉽게 예측하기 어려운 대규모 프로젝트에서 주로 사용이 되고, 이를 토대로 국가나 대기업의 사업 방향을 결정하기도 한다. 

4) SWOT 분석 : 프로젝트를 강점, 약점, 기회 및 위협의 관점으로 검토하여 리스크를 수집하는 방법이다. 프로젝트 사업성 분석에서 주로 사용한다.

 

 

 


 


 

 


 2. 소스코드관리시스템에서 보관해야 할 자료 11가지와 보관하지 말아야 할 자료 4가지는 무엇인지 각각 작성하고, 소스코드 충돌 방지 방법 2가지에 대해 자세히 설명하시오. 그리고 학습자의 기업이나 조직에서는 소스코드를 어떻게 관리하고 있는지 내용을 설명하시오.


1. 소스코드관리시스템에서 보관해야 할 자료 11가지

- 자사에게 작성한 소스코드(C, C++, Java 등)

- 외부 라이브러리(빌드해서 만들어 낼수 없는 것은 보관)

- 빌드 스크립트

- 인스톨 프로그램 제작에 필요한 모든자료

- 이미지 파일

- 도움말

- 다국어 관련 파일

- 개발 관련 문서(스펙문서, 설계서 등)

- 매뉴얼

- 백서(White paper)

- 프로젝트 관련 문서


2. 소스코드관리시스템에서 보관하지 말아야 할 자료 4가지

- 운영체제 및 개발 툴과 같은 개발 환경

- 빌드 개발물인 마스터 파일아니 바이너리 파일(*.exe)

- 빌드 도중 생기는 중간 파일들(*.o, *.obj)

- 제품 마케팅, 영어에 필요한 자료


3. 소스코드 충돌 방지 방법 2가지에 대해 자세히 설명

소스코드관리시스템에 소스코드를 충돌 없이 관리하는 방법은 락킹(Locking)과 머징 두가지가 있다. 락킹 방법은 소스코드를 수정하려고 할때 소스코드에 락을 걸어서 다른 사람이 수정할 수 없도록 하는 방법이다. 대부부분의 소스코드 관리시스템이 이 기능을 가지고 있다. 이 방법의 단점은 락을 걸고 있는 도중에는 다른 개발자가 작업을 할수 없다는 것이다. 

머징 방법은 소스코드에 락을 걸지 않고 여러명이 동시에 수정을 하다가 나중에 소스코드를 체크인하는 사람이 먼저 갱신된 소스코드와 자신이 작성한 소스코드를 머지해서 등록하는 방법이다. 소스코드관리시스템이 이용하는 방법이 '3-way 머지'다. 머징을 이용한 방법의 장점은 락을 거는 시간을 절약 할수 있고, 개발자들이 동시에 하나의 소스코드를 병행해서 수정 할수 있어서 업무 효율을 높일 수 있다는 점이다. 하지만 소스코드가 충돌했을 경우, 특히 동일한 부분을 수정해서 머지가 어려운 상황이 발생하느 경우 이를 해결하기 위해 번거러운 작업을 해야 한다는 약점도 있다.


4. 기업이나 조직에서는 소스코드를 어떻게 관리하고 있는지 내용을 설명

우리 조직에서는 Plastic SCM이라는 소스코드관리프로그램으로 관리를 하고 있다.

Branching 과 Merging 이 가능하고 개발자는 자신의 로컬 컴퓨터에 저장소 복제복을 가지고 있고 주 서버에 연결하지 않고 체크인, 분기 및 병합할수 있다. 또한 GUI 시각화를 통해서 개발자가 아닌 사람도 쉽게 소스코드를 가져올수 있다.



1. 소스코드관리시스템에서 보관해야 할 자료 11가지를 작성하시오. 

: 기본적으로 소스코드관리시스템에는 제품에 관련된 모든 자료가 저장된다. 소스코드관리시스템에 있는 자료만으로 제품을 만들어 낼 수 없다면 뭔가 빠진 것이다. 보관해야 할 자료에는 다음과 같은 것들이 있다. 


1)자사에서 작성한 소스코드


2)외부 라이브러리


3)빌드 스크립트


4)인스톨 프로그램 제작에 필요한 모든 자료


5)이미지 파일


6)도움말


7)다국어 관련 파일


8)개발 관련 문서


9)매뉴얼


10)백서


11)프로젝트 관련 문서



2. 소스코드관리시스템에 보관하지 말아야 할 자료 4가지를 작성하시오. 

: 소스코드관리시스템에 다음과 같은 자료는 보관하지 말아야 한다. 


1)운영체제 및 개발 틀과 같은 개발 환경


2)빌드 결과물인 마스터 파일이나 바이너리 파일


3)빌드 도중 생기는 중간 파일들


4)제품 마케팅, 영업에 필요한 자료



3. 소스코드 충돌 방지 방법 2가지에 대해 자세히 설명하시오.

1)락킹 방법은 소스코드를 수정하려고 할 때 소스코드에 락을 걸어서 다른 사람이 수정할 수 없도록 하는 방법이다. 대부분의 소스코드관리시스템이 이 기능을 가지고 있다. 이 방법의 단점은 락을 걸고 있는 도중에는 다른 개발자가 작업을 할 수 없다는 것이다. 많은 경우 개발자들이 락을 아주 오랫동안 걸어 놓고 해지를 하지 않기도 한다. 락을 걸어 놓고 휴가를 가거나, 심지어 락을 걸고 퇴사를 하는 경우도 있다. 이 경우 관리자가 강제로 락을 풀어 줘야 한다.


2)머징 방법은 소스코드에 락을 걸지 않고 여러 명이 동시에 수정을 하다가 나중에 소스코드를 체크인하는 사람이 먼저 갱신된 소스코드와 자신이 작성한 소스코드를 머지해서 등록하는 방법이다. 소스코드 머지를 해본 개발자들은 알겠지만 머지가 그렇게 쉽지는 않다. 머지를 해야하는 상황은 되도록 피하면 좋지만 항상 발생한다. 소스코드관리시스템은 매우 효율적으로 머지를 해주기 때문에 사용자가 별로 고생을 하지 않아도 된다. 이때 소스코드관리시스템이 이용하는 방법이 '3-way 머지'다. 머징을 이용한 방법의 장점은 락을 거는 시간을 절약할 수 있고, 개발자들이 동시에 하나의 소스코드를 병행해서 수정할 수 있어서 업무 효율을 높일 수 있다는 점이다. 하지만 소스코드가 충돌했을 경우, 특히 동일한 부분을 수정해서 머지가 어려운 상황이 발생한 경우 이를 해결하기 위해 번거로운 작업을 해야 한다는 약점도 있다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터