508. 클래스 다이어그램
- 클래스 다이어그램의 개념
- 객체지향 모델링에서 가장 자주 사용하는 방법
- 객체의 멤버, 연산(메서드)의 구성과 객체들과의 연관, 의존, 상속 등의 정적인 관계를 나타내는 UML 다이어그램
- 객체 : 현실세계에서 실재하는 사물
- 클래스 : 이들 객체를 추상화한 개념
- 여러 개의 클래스들은 서로 연관이나 상속, 의존 관계 등으로 서로 간의 상호작용 표현
- 클래스 다이어그램의 구성 요소
- 클래스 명 (Class Name) : 공통의 속성, 연산, 관계, 의미를 가진 객체들의 집합을 정의
- 속성 (Attribute) : 클래스의 속성, 접근지정자, 데이터타입 등 구조적 특징을 표현
- 연산 (Operation) : 메서드(method), 클래스에서 정의한 동작을 호출하는 연산자, 접근 지정자, 리턴타입, 파라메터를 표현
509. 마스터-슬레이브 아키텍처
- 마스터-슬레이브 아키텍처의 개념
- 아키텍처의 구성 : 마스터, 슬레이브
- 마스터-일을 분배, 슬레이브-전달된 기능 수행
- 마스터가 업무 지시, 슬레이브는 그 일을 완료하여 결과물을 전달하는 방식
- 마스터 컴포넌트는 동등한 구조를 지닌 슬레이브 컴포넌트들로 작업을 분산하고, 슬레이브가 반환한 결과 값으로부터 최종 결과 값을 계산
- 마스터는 자신의 Work을 1/Slave(n)을 통해 슬레이브에게 분산 처리 요청하여 결과값을 받음
- 장점 : 정확성 - 서비스의 실행은 각기 다른 구현체를 가진 슬레이브들에게 전파되어 설계된 로직대로 동작
- 마스터-슬레이브 아키텍처 예시
- 데이터베이스 복제에서 마스터 데이터베이스는 신뢰할 수 있는 데이터 소스로 간주, 슬레이브 데이터베이스는 마스터베이스와 동기화
- 컴퓨터 시스템에서 버스와 연결된 주변장치 : 마스터 드라이버와 슬레이브 드라이버
514. 애자일 소프트웨어 개발 기법
- 어느 특정 개발 방법론을 가리키는 말은 아님, 애자일 개발을 가능하게 해주는 다양한 방법론 전체를 일컫는 말
- 지속적인 요구사항의 분석, 반영을 통해 변화에 신속하게 대응하는 개발방법론
- 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 등장하게 된 방법론
- 애자일 방법론의 테스트는 잦은 개발-테스트 주기를 통하여 많은 시간과 비용이 들어가기 전에 기능을 검증하게 됨
- 애자일 선언문
- 공정(프로세스)과 도구보다 개인과 상호작용에 더 가치를 둠
- 포괄적인 문서보다 작동하는 소프트웨어에 더 가치를 둠
- 계약 협상보다는 고객과의 협업에 더 가치를 둠
- 계획을 따르기보다는 변화에 대응하는 것에 더 가치를 둠
515. Rumbaugh(럼바우) 방법론
- 가장 일반적으로 사용되는 방법
- 분석 호라동을 객체모델, 동적 모델, 기능 모델로 나누어 수행하는 방법
- 모든 소프트웨어 구성 요소를 그래픽 표기법을 활용하여 모델링하는 기법
- 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석 기법
- 럼바우 방법론의 순서 : 객체 모델링 -> 동적 모델링 -> 기능 모델링
- 객체 모델링 (Object Modeling)
- 객체 다이어그램을 이용
- 정보 모델링이라고도 함
- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 고나계 규정
- 가장 중요하며 가장 선행되는 단계
- 동적 모델링 (Dynamic Modeling)
- 상태도를 이용
- 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현
- 기능 모델링 (Functional Modeling)
- 자료 흐름도 (DFD) 이용
- 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
- 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현
- 객체 모델링 (Object Modeling)
516. 순차 다이어그램
- 문제 해결을 위한 객체를 정의하고 객체 간 상호작용 메시지를 시간의 흐름으로 나타내는 동적 다이어그램
- 구성 요소 : 생명성, 활성객체, 메시지, 활성박스
- 가장 기본적인 메시지 유형
- 동기 : 요청 후 응답 대기
- 비동기 : 요청만 표시
- 자체 : 객체 자신에 요청
- 반환 : 응답(회신) 메시지
520. 소프트웨어 아키텍처
- 소프트웨어 아키텍처의 개념
- 소프트웨어 시스템의 구조를 비롯한 시스템 개발에 중요한 영향을 미치는 결정들
- 소프트웨어 시스템 개발에서 특정 시스템에 대하여 요구되는 기능과 품질을 확보하고 품질속성에 반영
- 소프트웨어 시스템의 구축 및 지속적인 개선이 용이하도록 하는 역할
- 소프트웨어 아키텍처의 특징
- 소프트웨어 아키텍처의 역할
- 요구사항 분석 활동에 의해 도출된 요구사항을 모두 충족시킬 수 있는 시스템이 만들어지도록 하는 설계 활동
- 설계 및 구현을 위한 구조적/비구조적틀을 제공
- 틀 : 아키텍처 설계의 결과물, 실행을 요구하는 결정 또는 모델을 의미
- 구조적 틀 : 시스템 개발을 위해 결정된 컴포넌트의 구조 모델
- 비구조적 틀 : 구조모델 이외의 다른 아키텍처 설계의 결정틀
- 아키텍처 설계의 입력과 출력
- 시스템 개발은 모든 요구사항을 달성대상으로 하지만 아키텍처 설계는 아키텍처에 관련된 대표적인 요구사항들만이 주된 관심의 대상, 이와 같은 특별한 요구사항들을 아키텍처 드라이버
- 설계의 결과는 아키텍처를 문서화한 아키텍처 문서가 주된 출력물이 되고 이에 대한 추가적인 관련사항을 정리한 아키텍처 가이드라인이 이차적인 출력물
- 소프트웨어 아키텍처의 역할
- 파이프-필터 구조
- 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴
- 각 처리 과정은 필터 컴포넌트에서 이루어지며, 처리되는 데이터는 파이프를 통해 단방향으로 흐름
- 병렬적으로 데이터처리가 가능, 파이프는 버퍼링 또는 동기화 목적으로 사용될 수 있음
- 데이터 중심(Data-Centered)
- 데이터 중심의 개념
- 데이터 저장공간을 두고 Client가 데이터를 호출하여 사용하는 형태
- 공유 데이터 저장소를 통해 Client간의 통신이 이루어지므로 각 Client의 수정과 확장이 용이
- 데이터 개념의 종류
- 저장소형 (Repository)
- Repository에 저장되는 데이터를 중심으로 Client들이 데이터를 교환하는 구조
- Repository : 수동적, Client : 능동적으로 동작
- Repository의 확장과 데이터의 백업, 복구가 용이
- 데이터 저장소의 데이터 구조와 Client 간에 의존성이 크고, 따라서 데이터 구조의 변경에 따라 많은 영향을 받으며, 데이터 이동에 따른 네트워크 비용이 발생
- 일반적인 DBMS에서 사용
- 칠판형 (Blackboard)
- Repository와 비슷한데, 반대로 Data Store는 능동적, Client는 수동적으로 동작
- 명확히 정의된 해법 전략이 존재하지 않은 도메인에서 문제를 해결하려 할 때 사용
- 부분적인 해법, 대략적인 해법을 수립하기 위해 특수한 서브시스템의 지식을 조합
- AI와 같은 복잡한 문제를 해결할 때 사용
- 저장소형 (Repository)
- 데이터 중심의 개념
522. 버블 정렬
- 왼쪽부터 모든 인접한 두 키를 비교한 후 왼쪽의 키가 더 크면 오른쪽의 키와 자리바꿈을 통하여 정렬해 나가는 방법
- 문제 풀이 : 9, 6, 7, 3, 5
- Pass 1 : 9, 6, 7, 3, 5 -> 6, 9, 7, 3, 5 -> 6, 7, 9, 3, 5 -> 6, 7, 3, 9, 5 -> 6, 7, 3, 5, 9
- Pass 2 : 6, 7, 3, 5, 9 -> 6, 3, 7, 5, 9 -> 6, 3, 5, 7, 9
- Pass 3 : 6, 3, 5, 7, 9 -> 3, 6, 5, 7, 9 -> 3, 5, 6, 7, 9
527. 스택
- 스택의 주요 용어
- TOP : 스택의 가장 상단의 데이터를 가리킴
- PUSH : 스택에 데이터를 추가, 스택의 Top이 하나 증가
- PEEK : 스택에서 가장 상단의 데이터를 제거하지 않고 읽어오기만 하는 것, 스택의 Top에는 변화가 없음
- POP : 가장 상단의 데이터를 읽어오면서 스택에서 제거, 스택의 Top이 하나 감소
- 문제 풀이
If Top = 0 Then
Underflow
Else {
remove S(Top)
Top = Top - 1
}
If Top = 0 Then | 스택 포인트가 0일 경우 스택이 비어 있음을 의미 |
Underflow | 스택이 비어 있으면 Underflow 발생 |
Else { remove S(Top) |
스택이 비어 있지 않다면 스택에서 Top 포인트의 데이터 삭제 |
Top = Top - 1 } |
Top 포인트의 값을 1 감소 |
528. 사용자 매뉴얼 작성 순서
- 작성 지침 정의
- 사용자 매뉴얼을 작성하기 위한 지침을 설정
- 사용자 매뉴얼은 실제 사용자 환경에 필요한 정보를 제공할 수 있는 형태로 작성될 수 있도록 함
- 사용자 매뉴얼 구성 요소의 정의
- 제품 소프트웨어의 기능
- 구성 객체 목록
- 객체별 메소드
- 메소드의 파라미터 및 설명
- 실제 사용 예제
- 사용자 환경 셋팅 방법
- 구성 요소별 내용 작성
- 제품 소프트웨어 구성 요소별 내용을 작성
- 사용자 매뉴얼 검토
- 작성된 사용자 매뉴얼이 개발된 제품의 기능을 정확하게 설명하는지 혹은 잘못된 정보가 없는지 검사
- 개발자와 함께 검토하면 기능 내용이나 인터페이스, 메소드나 메소드의 파라미터 등을 보다 정확히 반영할 수 있어서 더욱 효과적
529. 스택의 입출력 예시
- 스택의 자료 구조 : Last-in, First-out이 수행되는 후입선출 기반
- 입력(PUSH) : Last-in
- 출력(POP) : First-out
- 문제 풀이
항목 | 설명 | |||||||
D, C, B, A | D | D (출력) | ||||||
C | C | C (출력) | ||||||
B | B | B | B (출력) | |||||
A | A | A | A | A | A | |||
B, C, D, A | B | B (출력) | C | C (출력) | D | D (출력) | ||
A | A | A | A | A | A | A | A (출력) | |
C, B, A, D | C | C (출력) | ||||||
B | B | B (출력) | ||||||
A | A | A | A | A (출력) | D | D (출력) | ||
D, B, C, A | D | D (출력) | ||||||
C | C | C | ||||||
B | B | B (출력) | ||||||
A | A | A |
530. 검증, 확인
- 검증 (Verification)
- 소프트웨어개발 라이프 사이클의 각 단계의 산출물이 이전 단계에서 설정된 개발규격과 요구들을 충족시키는지의 여부를 판단하기 위한 활동
- 과정 : the product right?
- 확인 (Validation)
- 소프트웨어 개발 라이프사이클의 각 단계의 산출물이 최초 사용자 요구 또는 소프트웨어 요구에 적합한지를 입증하기 위한 활동
- 과정 : the right product?
531. 단위 테스트
- 단위 테스트의 개념
- 구현된 단위 모듈의 기능 수행 여부를 판정하고 내부에 존재하는 논리적 오류를 검출하는 활동
- 단위 테스트 항목
- 통합 테스트 (통합 검사) : 모듈 간의 인터페이스 연계를 검증하고 오류를 확인, 모듈 간의 상호 작용 및 연계 동작이 제대로 기능하는지를 점검
- 시스템 테스트 (시스템 검사) : 단위, 통합 테스트 후 전체 시스템이 정상적으로 작동하는지 판정하는 기능을 점검
- 인수 테스트 (인수 검사) : 사용자 요구분석 명세서에 명시된 사항을 모두 충족하는지 판정하고 시스템이 예상대로 동작하고 있는지 점검
- 알파 테스트 (알파 검사) : 개발자가 제공하는 환경에서 기능 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법, 개발자 환경에서 테스트
- 베타 테스트 (베타 검사) : 다수의 사용자를 제한되지 않은 환경에서 프로그램을 사용하게 하고 오류가 발견되면 개발자에게 통보하는 방식, 사용자 환경에서 테스트
533. 소스코드 분석의 유형
- 정적 분석 : 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부를 확인하는 코드 분석 활동
- 동적 분석 : 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 및 로직의 에러 여부 등을 분석하는 활동
537. 이진 탐색 트리
- 이진 탐색 트리의 시간 복잡도
- 평균적인 경우 : O(log(N))
- 최악의 경우 : O(N)
- 이진 탐색 트리의 특징
- 시간 복잡도의 최악의 경우에서 이진 탐색 트리를 보면 모양이 마치 연결 리스트와 닮아 있음
- 트리의 높이 값이 n에 가까워지므로 탐색할 때 성능이 떨어지게 됨
- 이진 탐색 트리의 성능 저하 문제를 해결하기 위한 방법
- 자가 균형 이진 탐색 트리 사용 : 2-3 트리, AVL 트리, 레드-블랙 트리
538. 트리 순회 방법
- 전위 순회 방법 (Preorder Traversal) : 중간 노드 -> 왼쪽 노드 -> 오른쪽 노드
- 중위 순회 방법 (Inorder Traversal) : 왼쪽 노드 -> 중간 노드 -> 오른쪽 노드
- 후위 순회 방법 (Postorder Traversal) : 왼쪽 노드 -> 오른쪽 노드 -> 중간 노드
539. 테스트케이스 생성
- 자료 흐름도 : 테스트 경로 관리
- 입력 도메인 분석 : 테스트 데이터 산출
- 랜덤 테스트 : 무작위 값 입력, 신뢰성 검사
- 스터브, 드라이버 : 통합 테스트를 위한 모듈
544. 물리적 데이터 베이스 설계
- 물리적 설계 단계의 개념
- 논리적 설계로 생성한 논리적 데이터베이스 구조로부터 효율적이고 구현 가능한 물리적 데이터베이스 구조를 설계하는 과정
- 데이터 처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로 등을 결정
- 물리적 설계 단계에서 수행하는 사항
- 저장 레코드 양식 설계 : 데이터 타입, 데이터 값의 분포, 사용될 응용 어플리케이션, 접근 빈도 등을 고려하여 결정하며 데이터 표현과 압축에 대한 양식 포함
- 레코드 집중의 분석 및 설계 : 레코드의 집중은 레코드들이 물리적으로 집중되도록 저장 공간을 할당하여 물리적 순차성을 이용할 수 있도록 함
- 접근 경로 설계 : 물리적 데이터베이스를 접근하는 경로에 대한 설계 수행
- 성능상의 주요 기준
- 응답 시간 : 질의와 갱신이 평균적으로 또는 피크 시간 때 얼마나 오래 걸릴 것인가
- 트랜잭션 처리율 : 1초당 얼마나 많은 트랜잭션들이 평균적으로 또는 피크 시간 때 처리될 수 있는가
- 스키마의 평가 : 전체 데이터베이스에 대한 보고서를 생성하는데 얼마나 오래 걸릴 것인가
545. 개체 무결성
- 테이블의 모든 행들이 유일하게 식별되는 무결성
- 대부분의 경우 기본키에 의해 강화하며 엔티티 무결성이라고도 함
- 기본키의 특성 : 반드시 값을 가짐 (NULL 허용 안함), 유일성을 보장하는 최소한의 집합
- 제약 조건 : Primary Key, NOT NULL
546. HAVING
- GROUP BY이 반드시 필요한 그룹제한 조건 명령어
- GROUP BY절은 사용된 애트리뷰트에 동일한 값을 갖는 튜플(행)들이 각각 하나의 그룹으로 묶여서 각 그룹별로 하나의 결과를 생성
- HAVING 절에 나타나는 애트리뷰트는 반드시 GROUP BY절에 나타나거나 집단 함수에 포함되어야 함
549. 데이터베이스의 키
- 데이터베이스의 키의 개념
- 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플(행)들을 서로 구분할 수 있는 기준이 되는 속성
- 데이터베이스의 키의 특징
- 유일성 (Uniqueness)
- 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
- 기본 키, 후보 키, 슈퍼 키
- 최소성 (Minimality)
- 속성의 집합인 키가 릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미
- 기본 키, 후보 키
- 유일성 (Uniqueness)
- 데이터베이스의 키의 종류
- 후보 키 (candidate key)
- 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별할 수 있는 하나 또는 몇 개의 속성 집합
- 유일성, 최소성 만족
- 기본 키 (primary key)
- 릴레이션의 유일한 식별자 : 유일성, 최소성 만족
- 기본키로 지정된 속성은 같은 값을 갖지 못함
- 후보키 중에서 선정된 키로, 중복값을 가질 수 없음
- Not null, Unique, 외래 키로 참조될 수 있음
- 대체 키 (alternate key)
- 후보 키가 둘 이상 되는 경우에 기본 키로 선택되지 못한 후보키들
- 후보키 = 기본 키 + 대체 키
- 슈퍼 키 (super key)
- 유일성만 있고 최소성이 없는 속성의 집합
- 외래 키 (foreign key)
- 한 테이블의 키 중 다른 테이블의 튜플을 식별할 수 있는 키
- 후보 키 (candidate key)
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 551 ~ 600 오답정리 (0) | 2025.04.14 |
---|---|
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 451 ~ 500 오답정리 (1) | 2025.04.12 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 401 ~ 450 오답정리 (0) | 2025.04.12 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 351 ~ 400 오답정리 (0) | 2025.04.10 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 301 ~ 350 오답정리 (0) | 2025.04.09 |