반응형

 

데이터베이스 구축 - 2

 

필수암기 363선



134. 물리적 설계

● 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.

물리적 설계 단계에서는 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.

저장 레코드의 형식, 순서, 접근 경로, 조회가 집중되는 레코드와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사한다.

 물리적 설계 시 고려할 사항 : 트랜잭션 처리량, 응답 시간, 디스크 용량, 저장 공간의 효율화 등

 

 

 

 

 

 

135. 데이터 모델에 표시할 요소

구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함

 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구임

 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건임

 

 

136. E-R 다이어그램

E-R 모델의 기본 아이디어를 시각적으로 표현하기 위한 그림이다.

기호 이름 의미
사각형 개체(Ently) 타입
마름모 관계(Relationship) 타입
타원 속성(Attribute)
이중 타원 다중값 속성(복합 속성)
선, 링크 개체 타입과 속성을 연결

 

 

137. E-R(개체 - 관계) 모델

 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 피터 첸(Poter Chen)에 의해 제안된 기본적인 구성 요소가 정립되었다.

E-R 모델은 개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법으로 많이 사용되고 있다. 

E-R 모델은 특정 DBMS를 고려한 것은 아니다.

 

138.  튜플(Tupel)

 릴레이션을 구성하는 각각의 행을 말한다.

파일 구조에서 레코드와 같은 의미이다.

튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응수라고 한다.

 

139.  속성(Attribute)

 데이터베이스를 구성한느 가장 작은 논리적 단위이다.

파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.

속성은 개체의 특성을 기술한다.

속성의 수를 디그리(Degree) 또는 차수라고 한다.

 

140.  도메인(Domain)

 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합이다.

메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는 데에도 이용된다.

 

141.  후보 키(Candidate Key)

릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, 유일성과 최소성을 모두 만족한다.

 

142.  릴레이션의 특징

 한 릴레이션에 포함된 튜플들은 모두 상이하다.

한 릴레이션에 포함된 튜플 사이에는 순서가 없다.

튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.

릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.

속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.

속성은 더 이상 쪼갤 수 없는 원자값만을 저장한다.

 

143.  기본 키(Primary Key)

 후보 키 중에서 특별히 선정된 키로 중복된 값과 NULL값을 가질 수 없다.

한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.

 

144.  대체 키(Alternate Key)

 후보 키가 둘 이상일 때 기본 키를 제외한 나머지 후보 키를 의미한다.

보조 키라고도한다.

 

145.  슈퍼 키(Super Key)

 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다. 

슈퍼 키는 릴레이션을 구성하는 모든 튜플에 대해 유사성은 만족시키지만, 최소성은 만족시키지 못한다.

반응형
반응형

 

소프트웨어 개발 - 6

 

필수암기 363선



123. 외계인 코드(Alien Code)

● 아주 오래되거나 참고문서 또는 개발자가 없어 유지 보수 작업이 어려운 코드를 의미한다.

 

124. 소스 코드 품질 분석 도구 - 정적 분석 도구

 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인한다.

 자료, 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾을 수 있다.

  종류 : pmd, checkstyle, cppcheck 등

 

125. EAI의 구축 유형

 Point-to-Point : 애플리케이션을 1:1로 연결함

 Hub & Spoke : 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식

 Message bus(ESB 방식) : 애플리케이션 사이에 미들웨어를 두어 처리하는 방식

 Hybird : Hub & Spoke와 Message Bus의 혼합 방식

 

126. JSON(JavaScript Object Notation)

 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.

 

127 AJAX(Asynchronous JavaScript and XML)

 자바 스크립트(JavaScript)  등을 이용하여 클라이언트와 서버 간에 XML 데이터를 교환 및 제어함으로써 이용자가 웹 페이지와 자유롭게 상호 작용할 수 있도록 하는 비동기 통신 기술을 의미한다.

 

128. IPSec(Ip Security)

 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜이다.

● 암호화와 복호화가 모두 가능한 양방향 암호 방식이다.

 

 

129. 인터페이스 보안 기능 적용 - 네트워크 영역

 인터페이스 송·수신 간 스니핑 등을 이용한 데이터 탈취 및 변조 위험을 방지하기 위해 네트워크 트래픽에 대한 암호화를 설정한다.

 암호화는 인터페이스 아키텍처에 따라 IPSec, SSL, S-HTTP 등의 다양한 방식으로 적용한다.

 

130. 데이터 무결성 검사 도구

 시스템 파일의 변경 유무를 확인하고, 파일이 변경되었을 경우 이를 관리자에게 알려주는 도구이다.

 크래커 등이 시스템에 침입하면 백도어를 만들어 놓거나 시스템 파일을 변경하여 자신의 흔적을 감추는 무결성 검사 도구를 이용하여 이를 감지할 수 있다.

 종류 : Tripwire, AIDE, Samgain 등

 

131. 인터페이스 구현 검증 도구

 xUnit : JUnit, CppUnit, HttpUnit 등 다양한 언어에 적용되는 단위 테스트 프레임워크

 STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

 FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원한느 테스트 프레임워크

 NTAF : FitNess와 STAF의 장점을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

 Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크

 

 

 

데이터베이스 구축  -  1

 

132. 개념적 설계(정보 모델링, 개념화)

 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.

 개념적 설계 단계에서는 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행한다.

 개념적 설계 단계에서는 요구 분석 단계에서 나온 결과인 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다.

 DBMS에 독립적인 개념 스키마를 설계한다.

 

 

133. 논리적 설계(데이터 모델링)

 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환(Mapping)시키는 과정이다.

 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다.

 개념적 설계가 개념 스키마를 설계하는 단계라면 논리적 설계에서는 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다.

 트랜잭션의 인터페이스를 설계한다.

 관계형 데이터베이스라면 테이블을 설계하는 단계이다.

반응형
반응형

 

소프트웨어 개발 - 5

 

필수암기 363선



111. 인수 테스트의 종류

알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법

 베타 테스트 : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법으로, 필드 테스트(Field Testing)이라고도 불림

 

112. 통합 테스트

 하향식 통합 테스트 : 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법으로, 깊이 우선 통합법이나 넓이 우선 통합법을 사용함

 상향식 통합 테스트 : 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법

 

113. 테스트 드라이버(Test Driver)

● 테스트 대상의 하위 모듈을 호출하는 도구로, 매개 변수(Parameter)를 전달하고, 모듈 테스트 수행 후의 결과를 도출한다.

● 상위 모듈 없이 하위 모듈이 있는 경우 하위 모듈을 구동한다.

● 상향식 통합 테스트에 사용된다.

 

114. 테스트 스텁(Test Stub)

● 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 시험용 모듈이다.

상위 모듈은 있지만 하위 모듈이 없는 경우 하위 모듈을 대체한다.

하향식 통합 테스트에 사용된다.

 

115. 테스트 케이스(Test Case)

● 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서이다.

테스트 케이스는 테스트 목표와 방법을 설정한 후 작성한다.

 

116. 테스트 오라클(Test Oracle)

 참(True) 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출할 수 있음

 샘플링(Sampling) 오라클 : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클

 추정(Heuristic) 오라클 : 특정 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클

 일관성 검사(Consistent) 오라클 : 애플리케이션의 변견이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클

 

117. 테스트 케이스 생성 도구

 자료 흐름도 : 자료 원시 프로그램을 입력받아 파싱 한 후 자료 흐름도를 작성함

 기능 테스트 : 주어진 기능을 구동시키는 모든 가능한 상태를 파악하여 이에 대한 입력을 작성함

 입력 도메인 분석 : 원시 코드의 내부를 참조하지 않고, 입력 변수의 도메인을 분석하여 테스트 데이터를 작성함

랜덤 테스트 : 입력 값을 무작위로 추출하여 테스트함

 

118. 성능 테스트 도구(Performance Test Tool)

● 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률 등을 인위적으로 적용한 가상의 사용자를 만들어 테스트를 수행함으로써 성능의 목표 달성 여부를 확인한다. 

 

119. 결함(Fault)

● 오류(Error) 발생, 작동 실패 등과 같이 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것을 의미한다.

 

120. 주요 최악의 시간 복잡도

O(1) 입력값(n)에 관계 없이 일정하게 문제 해결에 하나의 단계만을 거침
예) 스택의 삽입(PUSH), 삭제(POP)
O(nlog2n) 문제 해결에 필요한 단계가 (nlog2n)번 만큼 수행됨
예) 힙 정렬(Heap Sort), 2-Way 합병 정렬(Merge Sort)

 

 

121. 순환 복잡도(Cyclomatic Complexity) 계산

예제) 제어 흐름 그래프가 다음과 같을 때 McCabe의 Cyclomatic 수를 계산하시오.

- 내부 영역 3(1, 2, 3) + 외부 영역 1(4) = 4

 

121. 클린 코드 작성 원칙 [가, 단, 의, 중, 추]

가독성 : 누구든지 코드를 쉽게 읽을 수 있도록 작성함

● 단순성 : 코드를 간단하게 작성함

● 의존성 배제 : 코드가 다른 모듈에 미치는 영향을 최소화함

● 중복성 최소화 : 코드의 중복을 최소화함

● 추상화 : 상위 클래스 / 메서드 / 함수에서는 간략하게 애플리케이션의 특성을 나타내고, 상세 내용은 하위 클래스 / 메서드 / 함수에서 구현함

반응형

+ Recent posts