목차
📌 소프트웨어 사용자 매뉴얼은 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서이다.
💡 컴포넌트(Component) ? 컴포넌트는 독립적인 업무 또는 기능을 수행하는 단위이며, 실행 코드 기반으로 작성된 모듈이다.
💡 컴포넌트 명세서 ? 컴포넌트 명세서는 컴포넌트의 개요 및 내부 클래스의 동작, 외부와의 통신 명세 등을 정의한 문서이다.
💡 컴포넌트 설계서 ? 컴포넌트 설계서는 컴포넌트 구현에 필요한 컴포넌트 구조도 컴포넌트 목록, 컴포넌트 명세, 인터페이스 명세로 구성된 설계서이다.
📌 서문에는 문서 이력, 사용자 매뉴얼의 주석, 기록 보관을 위해 필요한 내용을 기술한다.
버전 | 작성자 | 작성일 | 검토자 | 일시 | 검수인 |
v0.1 | 홍길동 | 2024-01-06 | 강감찬 | 2024-02-05 | 신세경 |
변경 내용 | 최초 작성 | ||||
v0.1 | 홍길동 | 2024-02-10 | 강감찬 | 2024-03-05 | 신세경 |
변경 내용 | 제품 등록 방법 변경 |
📌 소프트웨어와 관련하여 기본적으로 설명되어야 할 항목들은 다음과 같다.
항목 | 설명 |
소프트웨어 개요 | - 소프트웨어의 주요 기능 및 UI 설명 - UI 및 화면 상의 버튼, 프레임 등을 그림으로 설명 |
소프트웨어 사용 환경 | - 소프트웨어 사용을 위한 최소 환경 설명 - CPU, 메모리 등의 PC 사양, 운영체제(OS) 버전 설명 - 최초 구동에 대한 설명 - 소프트웨어 사용 시 발생할 수 있는 프로그램 충돌이나 개인정보 보안 등에 관한 주의사항을 설명한다. |
소프트웨어 관리 | 소프트웨어의 사용 종료 및 관리 등에 관한 내용 설명 |
모델, 버전별 틍직 | 모델 및 버전별로 UI 및 기능의 차이점을 간략하게 요약한다. |
기능, 인터페이스의 특징 | 제품의 기능과 인터페이스의 특징을 간략하게 요약한다. |
소프트웨어 구동 환경 | - 개발에 사용한 언어 및 호환 가능한 운영체제(OS)에 대해 설명한다. - 설치 후 구동하기까지의 과정을 운영체제(OS)별로 설명한다. |
📌 사용자 매뉴얼은 사용자가 사용 방법을 이해하기 쉽도록 상황 별로 누락 없이 캡처하여 순서대로 상세히 설명한다.
📌 소프트웨어 사용자 매뉴얼을 다음과 같은 순서로 작성한다.
📌 형상 관리(SCM : Software Configuration Management)는 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.
💡 형상 ? 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서 데이터 등을 통칭하는 말이다.
💡 Git : Git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작옵을 조율하기 위한 분산 버전 관리 시스템이다.
💡 CVS(Concurrent Versions System) : 특수한 저장소에서 동일한 소프트웨어 프로젝트의 다른 버전을 관리하도록 설계된 오픈 소스 소프트웨어 구성 관리 유틸리티이다.
💡 SVN은 SubVersion의 줄일말로 중앙 집중 관리식 형상관리 소스 관리 툴이다.
💡 가시성(Visibility) ? 일반적으로 가시성이란 대상을 확인할 수 있는 정도를 의미한다.
📌 형상 관리는 품질 보증을 위한 중요한 요소로서 다음과 같은 기능을 수행한다.
💡 기준선(Base Line, 변경 통제 시점) ? 기준선은 정식으로 검토되고 합의된 명세서나 제품으로, 소프트웨어 개발 시 소프트웨어 변경을 적절히 제어할 수 있도록 도와준다.
💡 무결성 ? 결점이 없다는 것으로, 정해진 기준에 어긋나지 않고 조건을 충실히 만족하는 정도라고 이해할 수 있다.
📌 소프트웨어 개발 과정에서 코드와 라이브러리, 관련 문서 등의 버전을 관리하기 위해 자료를 등록하고 갱신하는 과정에서 사용되는 주요 용어와 의미는 다음과 같다.
항목 | 설명 |
저장소(Repository) | 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳이다. |
가져오기(Import) | 버전 관리가 되고 있지 않은 아무것도 없는 저장소(Repository)에 처음으로 파일을 복사한다. |
체크아웃(Check-Out) | - 프로그램을 수정하기 위해 저장소(Repository)에서 파일을 받아온다. - 소스 파일과 함께 버전 관리를 위한 파일들도 받아온다. |
체크인(Check-In) | 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)의 파일을 새로운 버전으로 갱신한다. |
커밋(Commit) | 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌(Conflict)을 알리고 diff도구를 이용해 수정한 후 갱신을 완료한다. |
동기화(Update) | 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화 한다. |
💡 diff 도구 ? 비교 대상이 되는 파일들의 내용(소스 코드)을 비교하며 서로 다른 부분을 찾아 표시해 주는 도구이다.
📌 소프트웨어 버전 등록은 다음과 같은 순서로 진행한다.
💡 버전 관리 프로그램에 따라 방법은 다를 수 있지만, diff <commit> <commit2> 와 같이 지정하면, 지정한 두 커밋(Commit) 사이의 수정 내역을 확인할 수 있다. 이와 가이 이전 개발자들의 수정 내역을 확인하고 싶을 때 diff 명령을 사용한다.
📌 공유 폴더 방식은 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식으로, 다음과 같은 특징이 있다.
💡 RCS(Revision Control System) : 여러 개발자가 프로젝트를 수행할 때 시간에 따른 파일 변화 과정을 관리하는 소프트웨어 버전 관리 도구로 소스 파일을 동시에 수정하는 것을 방지하고 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.
💡 QVCS : Quma Software에서 발표한 버전 제어 시스템 제품군이다.
📌 클라이언트/서버 방식은 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식으로, 다음과 같은 특징이 있다.
💡 CVS(Concurrent Versions System) ? 특수한 저장소에서 동일한 소프트웨어 프로젝트의 다른 버전을 관리하도록 설계된 오픈 소스 소프트웨어 구성 관리 유틸리티이다.
💡 SVN ? SubVersion의 줄임말로 중앙 집중 관리식 형상관리 소스 관리 툴이다.
💡 CVSNT ? 협업 프로그래밍을 하는 서버
💡 Clear Case ? 모든 종류의 파일과 디렉터리에 대한 버전 관리 기능을 제공한다.
💡 Perforce ? 소스 버전 관리 툴의 일종이다.
📌 분산 저장소 방식은 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식으로, 다음과 같은 특징이 있다.
💡 Git ? Git은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.
💡 GNU arch ? 분산형 리비전 관리 소프트웨어의 일종으로 소스 트리에서 일어나는 변경들을 추적하며 통합을 비롯해 여러 사람에 의해 또는 서로 다른 여러 시간대에 일어나는 변화들을 처리하는 도구이다.
📌 Subversion은 CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 2000년에 발표하였다.
💡 trunk ? trunk는 '몸통', '줄기'라는 의미로 개발 과정에서 가장 중심이 되는 디렉터리이다. trunk 디렉터리 안에 소스 파일과 추가 작업을 위한 서브 디렉터리인 branches 디렉터리가 있다.
💡 branches ? '가지', '부문' 이라는 의미로 메인 개발 과정과는 별도로 새로운 기능의 테스트와 같이 추가적인 작업을 수행하기 위한 디렉터리이다. branches 디렉터리 하위에 작업 별로 디렉터리를 만들어 그 안에서 개발을 진행한다. 이후 별도의 디렉터리 에서 진행된 개발 결과를 trunk와 병합할 수 있다.
💡 리비전 ? 커밋의 버전으로, 처음 저장소를 만들면 리비전은 0이 된다. 이후 커밋이 수행될 때마나 리비전이 1씩 증가한다.
명령어 | 의미 |
add | - 새로운 파일이나 디렉터리를 버전 관리 대상으로 등록한다. - add로 등록되지 않은 대상은 commit이 적용되지 않는다 |
commit | 버전 관리 대상으로 등록된 클라이언트의 소스 파일을 서버의 소스 파일에 적용한다. |
update | - 서버의 최신 commit 이력을 클라이언트의 소스 파일에 적용한다. - commit전에는 매번 update를 수행하여 클라이언트에 적용되지 않은 서버의 변동 내역을 클라이언트에 적용한다. |
checkout | 버전 관리 정보와 소스 파일을 서버에서 클라이언트로 받아온다. |
lock/unlock | 서버의 소스 파일이나 디렉터리를 잠그거나 해제한다. |
import | 아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장하는 명령으로 한 번 사용하면 다시 사용하지 않는다. |
export | 버전 관리에 대한 정보를 제외한 순수한 소스 파일만을 서버에서 받아온다. |
info | 지정된 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보를 표시한다. |
diff | 지정된 파일이나 경로에 대해 이전 리비전과의 차이를 표시한다. |
merge | 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병합한다. |
💡 Subversion을 이용해 버전 관리 작업을 시작할 때는 먼저 'import' 명령으로 모든 소스 파일을 서버에 등록한다. 이후 버전 관리는 'checkout' > 작업 > add > update > commit' 과정으로 진행한다. 나머지 명령은 작업 과정이나 자료 송수신 과정 에서 필요에 의해 수행된다.
📌 Git은 리누스 토발즈(Linus Torvalds)가 2005년 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노(Junio Hamano)에 의해 유지 보수되고 있다.
💡 브랜치(Branch) ? Git에서는 저장소가 처음 만들어지면 마스터(Maste) 브랜치가 생성되고 브랜치에서 기본적인 버전 관리가 진행된다. 새로운 기능을 추가하는 작업은 새로운 브랜치를 만들어 작업을 수행하며, 작업이 정상적으로 마무리되면 작업 내역을 마스터 브랜치에 병합한다. 이렇게 마스터 브랜치와 별도로 생성하는 브랜치를 토픽(Topic) 브랜치 또는 피어(Feature) 브랜치라고 한다. 각각의 브랜치는 다른 브랜치에 영향을 주지 않으므로 독립적인 여러 작업을 동시에 진행할 수 있다.
💡 스냅샷(Snapshot) ? 스냅샷은 영문자와 숫자가 혼합된 40자리 문자열로 표시된다.
명령어 | 의미 |
add | - 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역(Staging Area)에 추가한다. - '--all' 옵션으로 작업 디렉터리의 모든 파일을 스테이징 영역에 추가할 수 있다. |
commit | 작업 내역을 지역 저장소에 저장한다. |
branch | - 새로운 브랜치를 생성한다. - 최초로 commit을 하면 마스터(master) 브랜치가 생성된다. - commit 할 때마다 해당 브랜치는 가장 최근의 commit한 내용을 가리키게 된다. - 'd' 옵션으로 브랜치를 삭제할 수 있다. |
checkout | - 지정한 브랜치로 이동한다. - 현재 작업 중인 브랜치는 HEAD 포인터가 가리키는데, checkout 명령을 통해 HEAD 포인터를 지정한 브랜치로 이동시킨다. |
merge | 지정한 브랜치의 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영함으로써 두 브랜치를 병합한다. |
init | 지역 저장소를 생성한다. |
remote add | 원격 저장소에 연결한다. |
push | 로컬 저장소의 변경 내역을 원격 저장소에 반영한다. |
featch | 원격 자장소의 변경 이력만을 지역 저장소로 가져와 반영한다. |
💡 스테이징(Staging) 영역 ? 작업 내역을 바로 commit 지역 저장소에 저장하지 않고 스테이징 영역에 저장했다가 commit을 하는 이유는 스테이징 영역에서 작업 내용을 한번더 확인하여 선별적으로 지역 저장소에 반영하기 위함이다. 이렇게 하면 스테이징 영역을 사용하지 않을 때보다 시간은 더 소요되지만 좀 더 안정된 버전 관리 작업이 가능하다.
💡 Git을 이용해 버전 관리 작업을 시작할 때는 먼저 'init' 명령으로 지역 저장소를 만들고, 'remote add' 명령으로 원격 저장소 에 연결한 후 'add --all > commit > push'를 한다. 이후 버전 관리는 'fetch > 작업 > add > commit > push' 과정으로 진행한다. 나머지 명령은 과정이나 자료 송수신 과정에서 필요에 의해 수행된다.
📌 애플리케이션 테스트/테스트의 분류/테스트 기법에 따른 애플리케이션 테스트 (2) | 2024.02.06 |
---|---|
📌 제품 소프트웨어 패키징 - 빌드 자동화 도구 (0) | 2024.02.06 |
📌 제품 소프트웨어 패키징 - 디지털 저작권 관리(DRM)/설치 매뉴얼 작성 (0) | 2024.02.05 |
📌 제품 소프트웨어 패키징 - 릴리즈 노트 작성 (0) | 2024.02.05 |
📌 통합 구현 - 단위 모듈 구현/단위 모듈 테스트/개발 지원 도구 (2) | 2024.02.05 |