반응형

 

소프트웨어 개발 - 4

 

필수암기 363선



101. 소프트웨어의 버전 등록 관련 주요 기능

체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소(Repository)에서 파일을 받아옴

 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)의 파일을 새로운 버전으로 갱신함

 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌(Confict)을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료

 

 

 

 

 

 

102. RCS(Revision Control System)

여러 개발자가 프로젝트를 수행할 때 시간에 따른 파일 변화 과정을 관리하는 소프트웨어 버전 관리 도구이다.

소스 파일을 동시에 수정하는 것을 방지하고, 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.

 

103. 분산 저장소 방식

버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식이다.

대표적인 종류에는 Git이 있다.

 

104. 확인(Validation) / 검증(Verification)

확인(Validation) : 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인하는 것

 검증(Verification) : 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 만들어졌는지를 점검하는 

 

105. 파레토 법칙(Pareto Principle)

● 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다는 법칙이다.

 

106. 결합 집중

● 애플리케이션 대부분의 결함이 소수의 특정 모듈에 집중해서 발생하는 것을 의미한다.

파레토 법칙이 좌우한다.

결함은 발생한 모듈에서 계속 추가로 발생할 가능성이 높다.

 

107. 강도(Stress) 테스트

● 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트이다.

 

108. 화이트박스 테스트(White Box Test) 

● 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법이다.

원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로써 수행된다.

프로그램이 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다.

 

109. 화이트박스(White Box) / 블랙박스(Black Box) 테스트의 종류

화이트박스 테스트 종류 : 기초 경로 검사, 제어 구조 검사(조건 검사, 루프 검사, 데이터 흐름 검사)

 블랙박스 테스트 종류 : 동치 분할 검사, 경곗값 분석, 원인-효과 그래프 검사, 오류 예측 검사, 비교 검사

※ 기초 경로(Base Path = Basis Path) : 수행 가능한 모든 경로를 의미함

 

110. 단위 테스트(Unit Test) 

● 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것이다.

단위 테스트로 발견 가능한 오류 : 알고리즘 오류에 따른 원치 않는 결과, 탈추구가 없는 반복문의 사용, 틀린 계산 수식에 의한 잘못된 결과

 

반응형
반응형

 

소프트웨어 개발 - 3

 

필수암기 363선

 

91. IDE(통합 개발 환경)의 기능

● 코딩(Coding) : C, JAVA 등의 프로그래밍 언어로 컴퓨터 프로그램을 만드는 기능

● 컴파일(Compile) : 개발자가 작성한 고급 언어로 된 프로그램을 컴퓨터가 이해할 수 있는 목적 프로그램으로 번역하여 컴퓨터에서 실행 가능한 형태로 변환하는 기능

● 디버깅(Debugging) : 소프트웨어나 하드웨어의 오류나 잘못된 동작, 즉 버그(Bug)를 찾아 수정하는 기능

● 배포(Deployment) : 소프트웨어를 사용자에게 전달하는 기능

 

 

 

 

 

 

 

92. 빌드 자동화 도구

● Ant : 아파치 소프트웨어 재단에서 개발한 소프트웨어로, 자바 프로젝트의 공식적인 빌드 도구로 사용됨

● Maven : 아파치 소프트웨어 재단에서 Ant의 대안으로 개발한 소프트웨어

● Jenkins : JAVA 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구

● Gradle : 

Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용됨

 

93. 소프트웨어 패키징

● 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다.

● 개발자가 아니라 사용자를 중심으로 진행한다.

 

94. 소프트웨어 패키징 시 고려사항

● 사용자에게 배포되는 소프트웨어이므로 내부 콘텐츠에 대한 암호화 및 보안을 고려한다.

다른 여러 콘텐츠 및 단말기 간 DRM(디지털 저작권 관리) 연동을 고려한다.

 

95. DRM(디지털 저작권 관리)의 구성 요소

● 클리어링 하우스(Clearing House) : 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행하는 곳

콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자

● 패키저(packager) : 콘텐츠를 메타 데이터와 함께 배포 가느안 형태로 묶어 암호화하는 프로그램

● 콘텐츠 분배자(Contents Distributor) : 암호화된 콘텐츠를 유통하는 곳이나 사람

● DRM 컨트롤러(DRM Controller) : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램

● 보안 컨테이너(Security Container) : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

 

96. DRM(디지털 저작권 관리)의 기술 요소 [암, 키, 식, 정, 크]

암호화 : 콘텐츠 및 라이선스 암호화 기술

 키 관리 : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술

 식별 기술 : 콘텐츠에 대한 식별 체계 및 표현 기술

 정책 관리 : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술

 크랙 방지 : 크랙에 의한 콘텐츠 사용 방지 기술

 

97. 소프트웨어 설치 매뉴얼

● 설치 매뉴얼은 사용자를 기준으로 작성한다.

● 기본 사항 : 소프트웨어 개요, 설치 관련 파일, 설치 아이콘, 프로그램 삭제, 관련 추가 정보

 

98. 소프트웨어 사용자 매뉴얼 작성 순서

● 작성 지침 정의 > 사용자 매뉴얼 구성 요소 정의 > 구성 요소별 내용 작성 > 사용자 매뉴얼 검토

 

99. 형상 관리(SCM)

● 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.

소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 한다.

관리 항목 : 소스 코드, 프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 등

형상 관리 도구 : Git, CVS, Subversion 등

 

100. 형상 관리(SCM) 기능

● 형상 식별 : 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업

● 버전 제어 : 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구를 결합시키는 작업

● 형상 통제 : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

● 형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

● 형상 기록 : 형상의 식별, 통제, 감사 작업의 결과를 기록·관리하고 보고서를 작성하는 작업

반응형
반응형

 

소프트웨어 개발 - 2

 

필수암기 363선

 

81. 퀵 정렬(Quick Sort)

● 레코드의 만은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방법으로, 키를 기준으로 작은 값은 왼쪽에, 큰 값은 오른쪽 서브파일로 분해시키는 방식으로 정렬한다.

분할(Dicide)과 정복(Conquer)을 통해 자료를 정렬한다.

 

82. 삽입 정렬(Insertion Sort)

예) 8, 5, 6, 2, 4를 삽입 정렬로 정렬하시오.

1회전 : 두 번째 값 5를 첫 번째 값과 비교하여 첫 번째 자리에 삽입하고 8을 한 칸 뒤로 이동시킨다.

2회전 : 세 번째 값 6을 첫 번째, 두 번째 값과 비교하여 8자리에 삽입하고 8을 한 칸 뒤로 이동시킨다.

3회전 : 네 번째 값 2를 처음부터 비교하여 맨 처음에 삽입하고 나머지를 한 칸씩 뒤로 이동시킨다.

4회전 : 다섯 번째 값 4를 처음부터 비교하여 5자리에 삽입하고 나머지를 한 칸씩 뒤로 이동시킨다.

 

83. 선택 정렬(Select Sort)

n 개의 레코드 중에서 최솟값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 (n-1) 개 중에서 다시 최솟값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬한다.

 

84. 버블 정렬(Bubble Sort)

주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환한다.

 

85. 힙 정렬(Heap Sort)

전이진 트리를 이용한 정렬 방식이다.

평균과 최악 모두 시간 복잡도는 O(nlog2 n)이다.

 

86. 2-Way 합병 정렬(Merge Sort)

 이미 정렬되어 있는 두 개의 파일을 한 개의 파일로 합병하는 정렬 방식이다.

평균과 최악 모두 시간 복잡도는 O(nlog2 n)이다.

 

87. 테스트와 디버깅의 목적

 테스트(Test)를 통해 오류를 발견한 후 디버깅(Debugging)을 통해 오류가 발생한 소스 코드를 추적하며 수정한다.

 

88. 이분 검색(이진 검색)

반드시 순서화(정렬)된 파일이어야 검색할 수 있다.

비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어든다.

탐색 효율이 좋고 탐색 시간이 적게 소요된다.

중간 레코드 번호(M) : (F+L)/2

(단,  F : 첫 번째 레코드 번호, L :  마지막 레코드 번호)

 

89. 주요 해싱 함수

제산법(Division) : 레코드 키(K)를 해시표(Hash Table)의 크기보다 큰 수 중에서 가장 작은 소수(Prime, Q)로 나눈 나머지를 홈 주소로 삼는 방식

 제곱법(Mid-Square) : 레코드 키 값(K)을 제곱한 후 그 중간 부분의 값을 홈 주소로 삼는 방식

 폴딩법(Fording) : 레코드 키 값(K)을 여러 부분으로 나눈 후 각 부분의 값을 더하거나 XOR(배타적 논리합)한 값을 홈 주소로 삼는 방식

 숫자 분석법(Digit Analysis) : 키 값을 이루는 숫자의 분호를 분석하여 비교적 고른 자리를 필요한 만큼 택해서 홈 주소로 삼는 방식

 

90. 스키마 3 계층

 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것

 개념 스키마 : 데이터베이스의 전체적인 논리적 구조로서, 개체 간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의함

 내부 스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조로서, 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의  표현 방법, 내부 레코드의 물리적 순서 등을 나타냄

 

 

반응형

+ Recent posts