20200729 필기 기술 오답노트
소프트웨어 설계
럼바우(Rumbaugh)의 객체지향 분석 절차
- 객체 모델링
- 객체 다이어그램으로 표시
- 가장 중요하며 가장 선행되어야 함
- 동적 모델링
- 상태 다이어그램을 이용해 시간의 흐름에 따른 객체간의 제어흐름, 상호작용, 동작순서 등 동적인 행위를 표현하는 모델링
- 기능 모델링
- 자료 흐름도를 이용해 다수의 프로세스 간 자료흐름을 중심으로 처리
객체지향 기법에서 클래스들 사이 부분-전체(part-whole) 또는 부분(is-a-part-of)의 관계로 설명되는 연관성을 나타내는 용어
- 집단화: 클래스 간의 구조적인 집약관계, (part) 가 들어가면 집단화 고려할 것
- 일반화: is a 클래스 간 개념적 포함 관계, 자식인 a 클래스는 부모인 b 클래스의 일종이다(is-a)
- 캡슐화: 데이터와 메소드를 묶어 객체로 구성
- 추상화: 현실세계를 객체 모델로 구성
객체지향 분석 방법론 중 E-R 다이어그램으로 객체 행위 모델링하며, 객체식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 것은?
- Wirfs-Brocks 방법 아님
- Coad와 Yourdon 방법
소프트웨어 개발
정렬된 N개의 데이터를 처리하는 데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘음?
- 선택정렬 O(n^2)
- 삽입정렬 O(n)
- 버블정렬 O(n^)
- 합병(merge)정렬 O(n log2 n)
White Box Testing에 대한 설명으로 옳지 않은 것은?
- White Box Testing
- 모듈 안 작동을 직접 관찰 가능
- Condition Testing, Loop Testing, Data Flow Testing 등
- 소스 코드 모든 문장이 한 번 이상 수행됨
- 산출물의 각 기능별 적절한 프로그램의 제어구조에 따라 선택, 반복을 수행
- Black Box Testing: 모듈 안 작동을 직접 관찰 불가
소프트웨어 품질 측정을 위해 개발자 관점에서 고려해야 할 항목으로 거리가 먼 것은?
인터페이스 구현 검증도구 중 아래에서 설명하는 것은?
- 서비스 호출, 컴포넌트 재사용 등 다양한 환경 지원
- 각 테스트 대상 분산 환경에 데몬 사용해 테스트 수행하고 통합, 자동화하는 검증 도구
트리 순회 종료
- 전위순회: 루트 먼저 방문
- 중위순휘: 왼쪽 하위트리 방문한 후 루트 방문
- 후위순회: 하위트리 방문한 뒤 루트 방문
반정규화 유형 중 중복 테이블을 추가하는 방법에 해당하지 않는 것은?
- 빌드 테이블의 추가
- 집계, 진행, 특정 부분 포함 테이블 추가로 중복테이블을 추가한다
트리의 차수와 노드
- 차수: 전체 트리에서 가장 큰 차수(자식 수)
- 단말 노드: 자식이 없는 노드
시간복잡도 O(I)가 의미하는 것
- 알고리즘 수행시간이 데이터와 무관하게 일정 O(1) 과 같은 듯?
- O(n): 데이터 갯수만큼 증가
- O(log n): 처음에 급증 나중에 조금 증가
- O(n^2): 데이터 갯수 제곱으로 증가
검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서, 통제된 환경에서 개발자와 함께 확인하는 검사
데이터베이스 구축
데이터베이스의 논리적 설계 단계에서 수행하는 작업
- 데이터베이스의 논리적 설계
- 현실 세계 자료를 저장할 수 있게 논리적 자료구조로 변환하는 작업(데이터의 추상화)
- 개념 세계 데이터를 데이터 타입과 타입간 관계로 표현되는 데이터로 모델화
- 논리적 데이터베이스 구조로 매핑
- 트랜잭션 인터페이스 설계
- 스키마의 평가 및 정제
- 레코드 집중의 분석 및 설계는 물리적 설계 단계에서 수행한다
이행적 함수 종속 관계
- A -> B && B -> C = A -> C
- 자식의 자식은 내 자식인 관계
하나의 어트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은?
- 도메인
- 어트리뷰트: 데이터의 가장 작은 논리적 단위, 원자 값만을 허용
- 같은 타입의 모든 원자 값들의 집합을 도메인이라 한다
- 도메인은 같은 도메인 값 끼리 비교 가능
- 하나의 도메인의 여럿 어트리뷰트 가능
- 한 릴레이션에서 어트리뷰트는 이름이 모두 달라야 한다
튜플 === Row (문제 잘 읽을 것)
트랜잭션의 특성
- Durability (영속성): 성공적으로 완료된 트랜잭션 결과는 시스템 고장나도 영구적 반영돼야 한다.
- Consistenct (일관성): 트랜잭션이 성공적으로 완료되면 언제나 일관적인 데이터베이스 상태로 변환한다.
- Atomicity (원자성): 트랜잭션은 모두 반영하든가 모두 반영하지 말아야 한다.
- Isolation (격리성): 트랜잭션 실행 중 연산 결과는 다른 트랜잭션이 접근 불가하다.
분산 데이터베이스의 목표
- 위치 투명성: 데이터베이스의 실제 위리를 알 필요 없이 논리적 명칭으로 엑세스
- 중복 투명성: 데이터가 여러 곳에 중복되어 있어도 하나의 데이터처럼 사용 가능
- 병행 투명성: 다수의 트랜잭션이 동시에 실현되더라도 그 결과는 영향을 받지 않음
- 장애 투명성: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션 정확히 처리
데이터 제어 언어의 기능
- 데이터 보안, 무결성 유지, 병행 제어, 회복
병행제어의 로킹 단위의 대한 설명
- 데이터베이스, 파일, 레코드 등이 로킹 단위
- 로킹 단위가 커지면 로킹 오버헤드 감소
- 로킹 단위가 작아지면 데이터베이스 공유도는 증가
- 한꺼번에 로킹 할 수 있는 객체의 크기를 로킹 단위라 한다
후보키는 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 한다
정규화 과정
- 1NF 조건: 원자값으로 구성
- 2NF 조건: 부분 함수 종속 제거(완전 함수적 종속관계)
- 3NF 조건: 이행 함수 종속 제거
- BCNF 조건: 결정자 함수 종속
- 4NF 조건: 다중값(다치) 종속성 제거
- 5NF 조건: 조인 종속성 제거
프로그래밍 언어 활용
IPv6는 임의로 큰 크기의 패킷을 주고받을 수 있다.
TCP/IP 프로토콜
- HTTP/FTP/SMTP: OSI 7 계층 중 7층인 응용계층에서 동작
- TCP(Trasmission Control Protocol): 4 계층인 전송계층에서 동작
모듈 간 결합도에 대한 설명
- 약하게 결합할 수록 유지보수 쉽고 모듈 독립성이 향상된다
- 내용결합도는 자료결합도보다 결합도가 높다
은행가 알고리즘은 교착상태 해결 방법 중 회피기법이다
교착 상태 발생의 필요충분조건
OSI-7 계층 중 종단 간 신뢰성있고, 효율적인 데이터를 전송하기 위해 오류검출과 복구, 흐름 제어하는 계층
IPv6의 주소체계
- Unicast
- Anycast
- Multicast
- 어디서나 묶어서 여러개
TCP/IP 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜은?
스레드에 대한 설명
- 한 프로세스에 여러 스레드
- 커널 스레드는 운영체제에 의해 스레드 운용
- 사용자 스레드는 사용자가 만든 라이브러리를 사용해 운용
- 스레드를 사용해 하드웨어, 운영체제의 성능과 처리율 향상
IEEE 802.11 워킹 그룹의 무선 LAN 표준화 현황 중 QoS 강화를 위해 MAC 지원 기능을 채택한 것은?
C에서 변수명에 -를 사용할 수 없다.