2022년 2회 기출문제 (4월 24일) 오답 노트
1과목 - 소프트웨어 설계
MOM(Message Oriented Middleware)
메세지 기반의 비동기형 메세지를 전달하는 방식의 미들웨어
온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용된다
다소 느리고 안정적인 응답을 필요로 하는 경우에 많이 사용된다
- MQ(IBM), Message Q(Oracle), JMS(JCP)
익스트림 프로그래밍 (XP: eXetreme Programming)
대표적인 애자일 방법론 중 하나이다
소규모 개발 조직이 불확실하고 변경이 많은 요구를 접했을 때 적절한 방법이다
익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어올리는 것이다
구체적인 실천 방법을 정의하고 있으며 개발 문서보다는 소스코드에 중점을 둔다
핵심 가치 : 용기(Courage), 단순성(Simplicity), 의사소통(Communication), 피드백(Feedback), 존중(Respectful)
기본원리 : Whole Team(전체 팀), Small releases(소규모 릴리즈), Test-Driven Development(테스트 주도 개발), Continuous Integration(계속적인 통합), Collective Ownership(공동 소유권), Pair Programming(짝 프로그래밍), Design Improvement(디자인 개선) 또는 Refactoring(리팩토링)
기능적 요구사항
시스템이 실제로 어떻게 동작하는지에 관점을 둔 요구사항
비기능적 요구사항
시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 성능, 보안, 품질, 안정성 등으로 실제 수행에 보조적인 요구사항
Entity-Relationship Diagram
정보공학 방법론에서 데이터베이스 설계의 표현으로 사용하는 모델링 언어
Component(컴포넌트)
프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
특정 기능 수행을 위해 독립적으로 분리
구조 패턴 (Structural Pattern)
어댑터(Adapter): 호환성이 없는 클래스 인터페이스를 이용할 수 있도록 변환해주는 패턴
브리지(Bridge): 구현부에서 주상층을 분리하여 독립적으로 확장 및 다양성을 가지는 패턴
컴포지트(Composite): 여러 객체를 가진 복합, 단열 객체를 구분 없이 다룰 때 사용하는 패턴
데코레이터(Decorator): 상속을 사용하지 않고도 객체의 기능을 동적으로 확장해주는 패턴
퍼싸드(Façade): 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴 eg.) 리모컨
플라이웨이트(Flyweight): 공유해서 사용함으로써 메모리를 절약하는 패턴
프록시(Proxy): 접근이 어려운 객체를 연결해주는 인터페이스 역할을 수행하는 패턴
# 어브컴데퍼플프
Feedback
UI와 관련된 기본 개념 중 하나로 시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령에 대한 진행 상황과 표시된 내용을 해석할 수 있도록 도와주는 것
Actor(액터) - Use Case Diagram
시스템과 상호 작용하는 모든 외부 요소로 사람이나 외부 시스템을 의미함
MVC(Model-View-Controller) 패턴
서브시스템을 3개의 부분으로 구조화하는 패턴
모델: 서브시스템의 핵심 기능과 데이터를 보관
뷰: 사용자에게 정보를 표시
컨트롤러: 사용자로부터 받은 입력 처리, 뷰 제어, UI 담당
각 부분은 별도의 컴포넌트로 분리돼있으므로 서로 영향을 받지 않고 개발 작업 수행
한 개의 모델에 대해 여러 개의 뷰를 만들 수 있으므로 대화형 어플리케이션에 적합하다
2과목 - 소프트웨어 개발
이진 탐색(Binary search) 동작 방식
1. 배열의 중간 값을 찾음
2. 중간 값과 검색 값을 비교
2-1. 중간 값이 검색 값과 같으면 끝
2-2. 중간 값보다 검색 값이 크다면 오른쪽 구간을 탐색
2-3. 중간 값보다 검색 값이 작다면 왼쪽 구간을 탐색
3. 값을 찾거나 간격이 비었을 때까지 반복
Walkthrough(워크스루)
요구사항 명세서 작성자를 포함하여 사전 검토한 후에 짧은 검토 회의를 통해 결함 발견
Inspection(인스펙션)
요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함 발견
과정: 계획 → 사전교육 → 준비 → 인스펙션 회의 → 수정 → 후속조치
Test Driver(테스트 드라이버)
테스트 대상의 하위 모듈을 호출하고 모듈 테스트 수행 후의 결과를 도출하는 도구
Test Stub(테스트 스텁)
테스트 대상의 상위 모듈을 대신하는 제어 모듈이 호줄하는 타 모듈의 기능을 단순히 수행하는 도구
전위 순회(Pre-Order): Root → Left → Right
중위 순회(In-Order): Left → Root → Right
후위 순회(Post-Order): Left → Right → Root
3과목 - 데이터베이스 구축
정규화 과정
정규형 | 설명 |
1NF (제1정규형) | 릴레이션에 속한 모든 도메인(Domain)이 원자 값(Atomic value)만으로 되어있는 정규형 |
2NF (제2정규형) | 릴레이션 R: 1NF, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족, 부분적 함수 종속을 제거한 정규형 |
3NF (제3정규형) | 릴레이션 R: 2NF, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속 관계를 만족하지 않는 정규형 : A → B 이고 B → C 일 때 A → C 를 만족하는 관계 (이행 규칙) 제거 |
BCNF (Boyce-Codd 정규형) | 릴레이션 R에서 모든 결정자가 후보키인 정규형 모든 BCNF 가 종속성을 보존하는 것은 아님 (강한 제3정규형, 보이스/코드 정규형) |
4NF (제4정규형) | 릴레이션 R에 다치 종속이 성립하는 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형 |
5NF (제 5정규형) | 릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형 |
# 원부이결다조
저장 레코드 양식 설계 시 고려사항
데이터 타입, 데이터 값의 분포, 접근 빈도
트랜잭션 모델링
트랜잭션을 개념적 시스템 독립적으로 정의
트랜잭션의 입출력 기능, 형태만 정의
응용 및 트랜잭션 필요 데이터 식별 확인
릴레이션(relation)
주로 테이블(Table)과 같은 의미로 사용되며, 데이터의 집합을 의미한다. 튜플(tuple)과 속성(attribute)로 구성되어 있다.
릴레이션의 특징
한 릴레이션(테이블)에 포함된 튜플(행)은 모두 상이함 즉, 서로 다른 값을 갖는다
한 릴레이션에 포함된 튜플 사이에는 순서가 없다
릴레이션 스키마를 구성하는 애트리뷰트(열) 간의 순서는 중요하지 않다
각 애트리뷰트는 식별을 위해 릴레이션 내에서 유일한 이름을 가진다 그러나 그에 해당하는 도메인(속성을 구성하는 값)에는 동일한 값이 있을 수 있다 eg.) '학년' 속성에는 1, 2, 3, 4 값이 중복될 수 있음
애트리뷰트는 논리적으로 더 이상 쪼갤 수 없는 원자 값으로 저장한다
정리하자면
1. 튜플은 서로 상이한 값을 갖고 순서가 없다
2. 애트리뷰트는 원자 값을 가지고 순서가 중요하지 않으며 유일한 이름은 가진다
Partially Committed
마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
Committed
트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태
키(Key)
데이터베이스에서 튜플들을 서로 구분할 수 있는 기준이 되는 속성(Attribute)
후보키(Candidate Key)
튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 즉, 기본키로 사용할 수 있는 속성들
모든 릴레이션에는 반드시 하나 이상의 후보키가 존재
릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야 함
유일성(Unique): 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
최소성(Minimality): 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성돼야 함
기본키(Primary Key)
후보키 중에서 특별히 선정돤 주키(Main key)로, 중복된 값과 NULL 값을 가질 수 없음
후보키의 성질인 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키
대체키(Alternate Key)
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미
슈퍼키(Super Key)
한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못함
외래키(Foreign Key)
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
참조되는 릴레이션의 기본키와 대응돼 릴레이션 간의 참조 관계를 표현
4과목 - 프로그래밍 언어 활용
C언어 - 문자열 처리 함수
서식 | 기능 |
strlen(s) | s의 길이를 구한다 |
strcpy(s1, s2) | s2를 s1으로 복사한다 |
strcat(s1, s2) | s1과 s2를 연결한다 |
strrev(s) | s를 거꾸로 변환한다 |
strcmp(s1, s2) | s1과 s2의 내용을 비교한다 s1의 문자열이 더 큰 경우 양수 반환 두 문자열의 내용이 완전히 같은 경우 0 반환 s2의 문자열이 더 큰 경우 음수 반환 |
atoi(s1) | s1을 int형 정수로 변환함 |
atol(s1) | s1을 long형 정수로 변환함 |
atoll(s1) | s1을 long long형 정수로 변환함 |
atof(s1) | s1을 double형 실수로 변환함 |
toupper(s1) | s1의 모든 영문자를 대문자로 변환함 |
tolower(s1) | s1의 모든 영문자를 소문자로 변환함 |
true: 1 반환
false: 0 반환
a&&b (AND 연산) → 1
a || b (OR 연산) → 1
!c (NOT 연산) → 0
c언어 연산자에서는 0이 아닌 모든 값은 1(true)로 본다
그래서 a=1, b=1. c=1로 바꿔서 대입해도 같은 결과가 나온다
ob1.c[i] = i
ob2.c[i] = i + i
ob1.a = ob1.a + ob1.c[i] = 0 + 2 + 4 + 6 + 8 = 20
ob2.a = ob2.a + ob2.c[i] = 0 + 4 + 8 + 12 + 16 = 40
ob1.a + ob2.a = 20 + 40 = 60
python 조건문 : if, elif, else
* else if 존재하지 않는다
HRN 스케줄링
비선점 스케줄링
실행시간이 긴 프로세스에 불리한 SJF 보완하기 위해 대기시간 및 서비스 시간을 이용
긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다
우선순위를 계산 숫자가 높은 것부터 낮은 순으로 순위 부여
[우선순위 = (대기한 시간 + 서비스를 받을 시간) / 서비스를 받을 시간] 값이 클수록 우선순위가 높다
UDP (User Diagram Protocol)
비연결형 및 비신뢰성 전송 서비스를 제공한다
흐름 제어나 순서 제어가 없어 전송 속도가 빠르다
수신된 데이터의 순서 재조정 기능을 지원하지 않는다
복구 기능을 제공하지 않는다
or 연산: 한쪽만 참이어도 1 반환
! 부정 연산: 부정 0 반환
and 연산: 둘 다 참이어야 1 반환
r1 → 1
r2 → 0
r3 → 0
r3 - r2 + 1 = 0 - 0 + 1 = 1
결합도
모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다
결합도가 약한 것부터 강한 것 순 정리
자료결합도
(Data Coupling)
|
어떤 모듈이 다른 모듈을 호출하면서 매개변수나 인수로 데이터를 넘겨주고 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식 |
스탬프(검인) 결합도
(Stamp Coupling)
|
두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도이며 자료 구조의 어떠한 변화, 즉 포맷이나 구조의 변화는 그것을 조회하는 모든 모듈 및 변화되는 필드를 실제로 조회하지 않는 모듈에게까지 영향을 미친다 |
제어 결합도
(Control Coupling)
|
한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다 |
외부 결합도
(External Coupling)
|
어떤 모둘에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도 |
공통(공유) 결합도
(Common Coupling)
|
공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 |
내용 결합도
(Content Coupling)
|
한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 |
응집도
모듈의 내부 요소들의 서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의되어 있는 정도
응집도가 강할수록 품질이 높고, 약할수록 품질이 낮다고 볼 수 있다
응집도가 강한 것부터 약한 것 순으로 정리
기능적 응집도 (Functional Cohesion) | 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 |
순차적 응집도 (Sequential Cohesion) | 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 |
교환(통신)적 응집도 (Communication Cohesion) | 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도 |
절차적 응집도 (Procedural Cohesion) | 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
시간적 응집도 (Temporal Cohesion) | 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도 |
논리적 응집도 (Logical Cohesion) | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 |
우연적 응집도 (Coincidental Cohesion) | 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
5과목 - 정보시스템 구축 관리
Zing
기기를 키오스크에 갖다 대면 원하는 데이터를 바로 가져올 수 있는 기술로 10cm 이내 근접 거리에서 기가급 속도로 데이터 전송이 가능한 초고속 근접무선통신(NFC: Near Field Communication) 기술
→ 근거리로 가면 지이이이잉 소리가 난다
라이브러리 | 프레임워크 |
사용자 코드에서 호출해서 사용하고 그에 대한 제어를 할 수 있다 | 이미 정해진 코드를 호출해 사용하고 자체적인 흐름을 갖고 있다 |
악성코드
Worm | 다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 메일로 전파되며 스스로를 증식한다 |
Rogue ware (Rogue security software) 가짜 백신 소프트웨어 | 사용자가 컴퓨터에 바이러스가 있다고 속이고 컴퓨터에 실제로 악성 프로그램을 설치하도록 하거나 가짜 악성 프로그램 제거 도구에 대한 비용을 지불하도록 유인함 |
Adware | 특정 소프트웨어를 실행할 때 또는 자동으로 활성화되는 광고 프로그램으로 이 자체는 악성코드로 보기 힘들지만 무분별한 광고 팝업을 뜨게 하는 등의 악용 위험성으로 악성코드로 분류되기도 함 |
Reflection Attack 반사공격 | 송신자가 생성한 메세지를 가로챈 공격자가 그 메세지를 다시 송신자에게 재전송하여 접근 권한을 얻는 형태의 공격 방법 |
암호화 방식
방식 | 특징 | 방식 | 종류 | 장점 | 단점 |
개인키 암호 방식 (Private Key Encryption, 대칭키) | 동일한 키로 데이터를 암호화하고 복호화 함 비밀키는 DB 사용 권한이 있는 사용자만 나눠 가짐 |
블록 암호화 | DES, AES, SEED, ARIA | 암호화/복호화 속도가 빠름 알고리즘이 단순함 파일의 크기가 작음 |
관리해야 할 키의 수가 많음 키를 교환하는 중 탈취돨 수 있다는 문제가 있다 |
스트림 암호화 | RC4, LFSR | ||||
공개키 암호 방식 (Public Key Encryption, 비대칭키) | 데이터를 암호화할 때 사용하는 키(공개키)는 DB 사용자에게 공개하고, 복호화 할 때의 키(비밀키)는 관리자가 관리하는 방법 | RSA, Diffie-Hellman |
키의 분배가 용이 관리해야 할 키의 수가 적음 |
암호화/복호화 속도가 느림 알고리즘이 복잡함 파일의 크기가 큼 |
접근 제어
강제적 접근제어(MAC, Mandatory Access Control) | 비밀성을 갖는 객체에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제어하는 방법 |
임의적 접근제어(DAC, Discretionary Access Control) | 주체나 주체가 속한 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법(객체의 소유주가 접근 여부를 결정) |
역할기반 접근제어(RABC, Role Based Access Control) | 중앙 관리자가 주체와 객체의 상호관계를 통제하며 조직내에서 맡은 역할에 기초하여 자원에 대한 접근허용 여부를 결정하는 방법 |
속성기반 접근제어ABAC(Attribute Based Access Control) | 접근 권한 주체와 접근 권한 대상이 어떠한 환경에 처해 있는가를 동적으로 분석하여 접근 권한을 부여하는 기법 |
https://www.comcbt.com/
최강 자격증 기출문제 전자문제집 CBT
전자문제집, CBT, 컴씨비티, 씨비티, 기사, 산업기사, 기능사, 컴활, 컴퓨터활용능력, 1급, 2급, 워드, 정보처리, 전기, 소방, 기계, 사무자동화, 정보기기, 제과, 제빵, 한국사, 공무원, 수능, 필기,
www.comcbt.com
'T.I.L(Today I learned) > CS' 카테고리의 다른 글
220710 정보처리기사 필기 D-2 (0) | 2022.07.10 |
---|---|
220709 정보처리기사 필기 D-3 (0) | 2022.07.09 |
220708 정보처리기사 필기 D-4 (0) | 2022.07.08 |
220707 정보처리기사 필기 D-5 (0) | 2022.07.07 |
220706 정보처리기사 필기 D-6 (0) | 2022.07.06 |
댓글