일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- kotlin querydsl
- 정보처리기사실기 기출문제
- 기록으로 실력을 쌓자
- mysql 튜닝
- kotlin coroutine
- minikube
- CKA 기출문제
- 정보처리기사 실기 기출문제
- kotlin
- Java
- PETERICA
- APM
- 티스토리챌린지
- 정보처리기사 실기
- 공부
- CKA
- Linux
- Elasticsearch
- Kubernetes
- aws
- MySQL
- 코틀린 코루틴의 정석
- IntelliJ
- AI
- AWS EKS
- kotlin spring
- 오블완
- Pinpoint
- CloudWatch
- Spring
- Today
- Total
피터의 개발이야기
[정처기 실기] 2024년 실기, 핵심 키워드 130문제 풀이-1 본문
ㅁ 들어가며
ㅇ 시나공 자료실의 기출문제를 풀어보고 문제 분석과 풀이를 노트한 글입니다.
ㅇ 일부 내용은 개인적 이해를 바탕으로 풀어 썼기 때문에 정확하지 않을 수 있습니다.
ㅁ 관련 글
ㅇ [정처기 실기] 2024년 실기, 핵심 키워드 130문제 풀이-1
ㅇ [정처기 실기] 2024년 실기, 핵심 키워드 130문제 풀이-2
ㅁ 핵심요약 범위
과목 | 번호 |
소프트웨어 설계 | 001~ 072 |
소프트웨어 개발 | 073~ 162 |
데이터베이스 구축 | 163~ 231 |
프로그래밍 언어 활용 | 232~ 314 |
정보시스템 구축 관리 | 315~ 374 |
1. 시제품을 끊임없이 제작하며 사이클을 반복하는 개발 방법론으로, 워터폴과 대조적이며, 소프트웨어 개발을 넘어 기업 경영 전반에서 사용되고 있다. 고객의 변화하는 요구사항과 환경 변화에 능동적인 이 소프트웨어 개발 방법론을 쓰시오.
애자일(Agile)
핵심 005) 애자일 모형(Agile Model)
애자일은 ‘민첩한’, ‘기민한’이라는 의미로, 고객의 요구사항 변화에 유연하고 능동적으로 대응할 수 있도록 일정한 주기를 반복 하면서 개발과정을 진행한다.
2. 소프트웨어 공학에서 리팩토링(Refactoring)을 하는 목적에 대해 간략히 서술하시오.
리팩토링의 목적은 외부적 기능은 수정하지 않고 내부적 구조 및 관계를 단순화하여 소프트웨어의 유지 보수성을 향상시켜 품질을 높이기 위함이다.
핵심 010) XP의 주요실천방법(Practice)
ㅇ Design Improvement (디자인 개선) 또는 Refactoring(리팩토링)
프로그램 기능의 변경 없이, 단순화, 유연성 강화등을 통해 시스템을 재구성함
3. 요구사항 확인에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① ) 요구사항은 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 사용자가 시스템을 통해 제공받기를 원하는 기능이나 시스템이 반드시 수행해야 하는 기능을 의미한다. • ( ② ) 요구사항은 품질이나 제약사항과 관련된 요구사항으로, 시스템의 장비 구성, 성능, 인터페이스, 테스트, 보안 등의 요구사항을 말한다. |
① 기능
② 비기능
핵심 015) 요구사항 정의
ㅇ 기능 요구사항: 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항
ㅇ 비기능 요구사항: 기능외 하드웨어, 성능, 인터페이스, 테스트, 보안, 품질, 제약사항 등의 요구사항
4. UML(Unified Modeling Language)에 관한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
( ) 다이어그램은 UML 다이어그램 중 객체(Object)들을 ( )로 추상화하여 표현하는 다이어그램으로 대표적인 구조적 다이어그램이다. ( )는 각각의 객체들이 갖는 속성과 메소드를 표현한 것으로 3개의 구획으로 나눠 이름, 속성, 메소드를 표기한다. |
클래스(Class)
핵심 025) 다이어그램(Diagram)
ㅇ구조적 다이어그램
클래스, 객체, 패키지, 컴포넌트, 배치, 복합체 구조 다이어그램
ㅇ 행위 다이어그램
유스케이스, 순차, 커뮤니케이션, 상태, 활동, 상호작용 개요, 타이밍
5. UML에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 쓰시오.
UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어로, 사물, ( ① ), 다이어그램으로 이루어져 있다. • ( ① )는 사물과 사물 사이의 연관성을 표현하는 것으로, 연관, 집합, 포함, 일반화 등 다양한 형태의 ( ① )가 존재한다. • ( ② )는 UML에 표현되는 사물의 하나로, 객체가 갖는 속성과 동작을 표현한다. 일반적으로 직사각형으로 표현하며, 직사각형 안에 이름, 속성, 동작을 표기한다. • ( ③ )는 ( ② )와 같은 UML에 표현되는 사물의 하나로, ( ② )나 컴포넌트의 동작을 모아놓은 것이며, 외부적으로 가시화되는 행동을 표현한다. 단독으로 사용되는 경우는 없으며, ( ③ ) 구현을 위한 ( ② ) 또는 컴포넌트와 함께 사용된다. |
• ① 관계(Relationship)
• ② 클래스(Class)
• ③ 인터페이스(Interface)
핵심 023) UML(Unified Modeling Language)의 개요
ㅇ UML 구성요소: 사물(Things), 관계(Relationship), 다이어그램(Diagram)
ㅇ UML은 시스템 개발 과정에서 상호간의 의사소통을 위한 표준화한 객체지향 모델링 언어이다.
6. UML의 관계(Relationships)에 관한 다음 설명에서 각 번호(①, ②)에 들어갈 알맞는 용어를 <보기>에서 찾아 쓰시오.
관계(Relationships)는 사물과 사물 사이의 연관성을 표현하는 것이다. ① - 하나의 사물이 다른 사물에 포함되어 있는 관계로, 전체와 부분으로 구분되어지며 서로 독립적이다. ② - 상위 모듈이 하위 모듈보다 더 일반적인 개념을 가지고 있으며, 하위 모듈이 상위 모듈보다 더 구체적인 개념을 가진다. |
<보기>
• Association • Aggregation • Composition • Generalization • Dependency • Realization |
• ① Aggregation
• ② Generalization
핵심 024) 관계(Relationships)
ㅇ 연관(Association) 관계: 서로 관련
ㅇ 집합(Aggregation) 관계: 포함, 전체와 부분
ㅇ 포함(Composition) 관계: 포함하는 사물 의 변화가 포함되는 영향 관계
ㅇ 일반화(Generalization) 관계: 일반적인 개념, 더 구체적인 개념
ㅇ 의존(Dependency) 관계: 연관과 유사,
ㅇ 실체화(Realization) 관계: 사물이 할 수 있거나 해야 하는 기능
7. UML을 이용한 다이어그램 중 다음 그림에 해당하는 다이어그램을 쓰시오.
패키지 다이어그램(Package Diagram)
핵심 025) 다이어그램(Diagram)
8. LOC 기법에 의하여 예측된 총 라인 수가 30,000라인, 개발에 참여할 프로그래머가 5명, 프로그래머들의 평균 생산성이 월간 300라인일 때 개발에 소요되는 기간을 계산식과 함께 쓰시오.
• 계산식 : (30,000 / 300) / 5 = 20
• 답 : 20개월
9. 데이터베이스의 스키마(Schema)에 대해 간략히 서술하시오.
답 : 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것이다.
# 핵심 091) 스키마
스키마(Schema)는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 메타데이터(Meta-Data)의 집합이다.
10. 데이터베이스 설계에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 쓰시오.
1. ( ① ) : 논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 액세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다. 2. ( ② ) : 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정으로, 개념 스키마 모델링과 트랜잭션 모델링을 수행하며, 요구 조건 명세를 E-R 다이어그램으로 작성한다. 3. ( ③ ) : 현실의 자료를 특정 DBMS가 지원하는 자료구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다. |
• ① 물리적 설계
• ② 개념적 설계
• ③ 논리적 설계
핵심 163) 데이터베이스 설계 순서
요구 조건 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현
11. 다음은 데이터베이스 구축까지의 과정을 나열한 것이다. 괄호에 들어갈 알맞은 용어를 쓰시오.
요구 분석 | → | ( ) | → | ( ) | → | ( ) | → | 구현 |
개념적 설계, 논리적 설계, 물리적 설계
12. 데이터 모델의 구성 요소에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
1. ( ① )은 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구에 해당한다. 2. ( ② )는 논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현한다. 3. 제약 조건은 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 의미한다. |
• ① 연산(Operation)
• ② 구조(Structure)
핵심 167) 데이터 모델
- 데이터 모델의 구성 요소: 개체, 속성, 관계
- 데이터 모델에 표시할 요소: 구조, 연산, 제약 조건
13. 다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.
ID | 이름 | 거주지 | 신청강의 |
191-SR05 | 백영헌 | 마포구 | E01 |
024-RU09 | 차수인 | 관악구 | S03 |
181-SQ03 | 허채빈 | 서대문구 | E02 |
059-RL08 | 윤지호 | 광진구 | S03 |
029-SX07 | 배서희 | 서대문구 | E02 |
• ① 카디널리티(Cardinality) : 5
• ② 디그리(Degree) : 4
핵심 171) 관계형 데이터베이스의 Relation 구조
ㅇ 튜플 - 테이블의 Row - 속성의 모임, 카디널리티, 기수, 대응수
ㅇ 속성 - 테이블 컬럼 - 데이터베이스 구성하는 가장 작은 논리적 단위 - 디그리, 차수
ㅇ 도메인 -컬럼의 원자 값, 성별의 도메인은 남여이고, 그외의 값을 가질 수 없다.
14. 다음 E-R 다이어그램을 참고하여 괄호(①~⑤)의 설명에 적합한 요소를 찾아 기호(㉠~㉤)로 쓰시오.
• ( ① ) : 관계 집합을 의미한다. • ( ② ) : 관계 집합과 속성을 연결한다. • ( ③ ) : 개체 집합을 의미하며, 키로 사용되는 항목에는 밑줄을 표시한다. • ( ④ ) : 관계 집합의 속성을 의미한다. • ( ⑤ ) : 개체 집합과 관계 집합을 연결한다. |
• ① ㉡
• ② ㉢
• ③ ㉠
• ④ ㉣
• ⑤ ㉤
핵심 169) E-R 다이어그램
15. 키(Key)에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. • 슈퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션을 구성하는 모든 튜플에 대해 ( ① )을 만족한다. • 후보키(Candidate Key)는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, ( ① )과 ( ② )을 만족하는 특징이 있다. |
• ① 유일성(Unique)
• ② 최소성(Minimality)
핵심 173) 키(Key)
ㅇ 후보키: 튜플을 유일하게 식별할 수 있는 기본키 대상들, 유일성과 최소성을 만족
ㅇ 기본키: 후보키 중 메인키, not null
ㅇ 대체키: 후보키 - 기본키, 보조키
ㅇ 슈퍼키: 후보키+ 후보키, 유일하지만 최소성은 아님. ID_학번
ㅇ 외래키: 다른 테이블의 기본키를 참조
16. 관계대수에 대한 다음 설명에서 괄호(①~⑤)에 들어갈 알맞은 용어를 쓰시오.
관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. 관계대수에 사용되는 연산은 다음과 같다. • 합집합(UNION)은 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산으로, 사용하는 기호는 ( ① )이다. • 차집합(DIFFERENCE)은 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산으로, 사용하는 기호는 ( ② )이다. • 교차곱(CARTESIAN PRODUCT)은 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산으로, 사용하는 기호는 ( ③ )이다. • 프로젝트(PROJECT)는 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( ④ )이다. • 조인(JOIN)은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ( ⑤ )이다. |
• ① ∪
• ② ―
• ③ ×
• ④ π
• ⑤ ▷◁
핵심 175) 관계대수의 개요
- 관계대수는 검색하기 위한 절차적인 언어이다.
- 교차곱: 디그리는 더한 것, 카디널리티는 곱한 것
교차곱의 대표적인 경우 JOIN, 컬럼은 추가되고, Row 곱으로 발생한다.
17. 다음이 설명하고 있는 관계대수 연산자의 기호를 쓰시오.
릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산이다. |
답 : π
핵심 176) 순수 관계 연산자
두개의 릴레이션(R, S)이 있을 때 릴레이션S의 속성값을 가지고 있는 릴레이션R의 튜플로 결과 릴레이션을 구성한다.
위의 설명을 쉽게 말하면 검색 시 데이터를 추출할 때의 이야기이다.
select ID, NAME from 고객 where 등급='A'
결과에는 등급 속성이 빠진다.
18. 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
• ( )은 관계 데이터의 연산을 표현하는 방법으로, 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 술어 해석(Predicate Calculus)에 기반을 두고 관계 데이터베이스를 위해 제안했다. • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 원하는 정보를 정의할 때 계산 수식을 사용한다. • 튜플 해석식을 사용하는 튜플 ( )과 도메인 해석식을 사용하는 도메인 ( )으로 구분된다. |
관계해석(Relational Calculus)
# 지문의 내용에 이미 답이 있다.
핵심 178) 관계해석(Relational Calculus)
- 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님.
19. 데이터의 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 이상(Anomaly)이라고 한다. 이상 중 삭제 이상(Deletion Anomaly)에 대해 간략히 서술하시오.
테이블에서 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상이다.
핵심 181) 이상(Anomaly)의 개념 및 종류
- 삽입 이상: 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
- 삭제 이상: 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
- 갱신 이상: 릴레이션에서 한 튜플을 수정할 때 의도와는 상관없이 일부만 갱신되어 정보가 모순되는 현상
20. 데이터베이스의 이상(Anomaly)의 종류 3가지를 쓰시오.
삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly), 갱신 이상(Update Anomaly)
21. 함수적 종속(Functional Dependency)에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 <보기>에서 찾아 기호(㉠~㉧)로 쓰시오. (단, 테이블 <R>의 속성 ‘학생’과 ‘학과’의 밑줄은 키(Key)임을 의미한다.)
<R>
학생 | 학과 | 성적 | 학년 |
이순신 | 컴퓨터공학 | A+ | 2 |
이순신 | 전기공학 | B | 2 |
유관순 | 경제학 | B+ | 1 |
강감찬 | 문예창작 | C | 3 |
강감찬 | 한국사 | C+ | 3 |
홍길동 | 영문학 | B | 4 |
• 테이블 <R>에서 ‘성적’은 기본키인 {학생, 학과}에 대해 ( ① ) Functional Dependency이다. • 테이블 <R>에서 ‘학년’은 기본키인 {학생, 학과} 중 ‘학생’만으로 식별이 가능하므로 기본키에 대해 ( ② ) Functional Dependency이다. • 임의의 테이블에 속성 A, B, C가 있을 때, A → B이고 B → C일 때 A → C인 관계는 ( ③ ) Functional Dependency이다. |
<보기>
㉠ Hybrid ㉡ Multi Valued ㉢ Transitive ㉣ Full ㉤ Defined ㉥ Natural ㉦ Relational ㉧ Partial |
• ① ㉣
• ② ㉧
• ③ ㉢
핵심 183) 이행적종속/함수적종속
- 이행적 종속(Transitive Dependency): A→B이고B→C일때A→C
- 함수적 종속(Functional Dependency):
ㄴ 완전 함수적 종속(Full Functional Dependency)
ㄴ 부분 함수적 종속(Partial Functional Dependency): 학점 테이블에 학생 이름이 있을 필요는 없다.
ㄴ 이행적 함수 종속(Transitive Functional Dependecy): A-B-C 관계인 테이블은 AB, BC로 나누어라.
22. 데이터베이스에 대한 다음 설명에서 괄호에 공통으로 들어갈 알맞은 답을 쓰시오.
테이블을 만들 때는 이상(Anomaly)을 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다. 아래 그림은 부분 함수적 종속을 제거하여 제 ( ) 정규형을 만드는 과정이다.
A(key) | B(key) | C | D |
A345 | 1001 | Seoul | Pmre |
D347 | 1001 | Busan | Preo |
A210 | 1007 | Gwangju | Ciqen |
A345 | 1007 | Seoul | Esto |
B230 | 1007 | Daegu | Loid |
D347 | 1201 | Busan | Drag |
<Table R>의 함수적 종속 관계
A, B → C, D A → C |
<Table R1>
A(key) | B(key) | D |
A345 | 1001 | Pmre |
D347 | 1001 | Preo |
A210 | 1007 | Ciqen |
A345 | 1007 | Esto |
B230 | 1007 | Loid |
D347 | 1201 | Drag |
<Table R2>
A(key) | C |
A345 | Seoul |
D347 | Busan |
A210 | Gwangju |
B230 | Daegu |
<Table R>의 경우, C는 key에 해당하는 A와 B중 A에만 종속되는 부분 함수적 종속이다. 이 문제 해결을 위해 <Table R1>에서 C를 분리하여 <Table R1>과 <Table R2>로 만들면 제 ( ) 정규형에 해당하는 테이블이 완성된다.
답 : 2
핵심 182) 정규화 과정 흥달샘 - 정규화
1 - 원자값
2 - 부분적 함수
3 - 이행적 함수
BCNF - 결정자이면서 후보키가 아닌 것 제거
4 - 다치 종속
5 - 조인 종속성 이용
23. 시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위를 가리키는 용어를 쓰시오.
답 : 반정규화(Denormalization)
핵심 184) 반정규화의 개념
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위
24. 데이터베이스에서 비정규화(Denormalization)의 개념을 서술하시오.
비정규화는 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.
25. 데이터베이스의 상태 변화를 일으키는 트랙잭션(Transaction)의 특성 중 원자성(Atomicity)에 대해 간략히 서술하시오.
원자성은 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 한다는 특성을 의미한다.
26. 다음은 트랜잭션(Transaction)의 특징이다. 괄호(①, ②)에 들어갈 알맞은 특징을 쓰시오.
( ① ) | 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다. (All or Nothing) |
일관성 | 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. |
( ② ) | 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다. |
지속성 | 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다. |
• ① 원자성(Atomicity)
• ② 독립성(Isolation)
27. 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
파일의 구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 크게 순차, ( ), 해싱으로 구분한다. ( ) 파일 구조는 <값, 주소> 쌍으로 구성되는 데이터 구조를 활용하여 데이터에 접근하는 방식으로, 자기 디스크에서 주로 활용된다. |
색인(Index)
핵심 191) 인덱스(Index)
데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
28. 시스템 관리와 관련하여 다음의 설명이 의미하는 용어를 쓰시오.
A는 한국IT 보안관제실에서 근무하게 되었다. A는 서비스 운용 중 외부 공격으로 인한 서버다운, 자연재해, 시스템 장애 등의 비상 상황에도 고객 응대 서비스를 정상적으로 수행하기 위해 구축한 시스템을 관리하는 업무를 수행한다. 이 용어는 위와 같은 비상 상황이 발생한 경우 “비상사태 또는 업무중단 시점부터 업무가 복구되어 다시 정상 가동 될 때까지의 시간”을 의미한다. |
RTO(목표복구시간)
ㅁ RTO RPO
ㅇ RPO(Recovery Point Objectives)
- ‘목표 복구 지점’
- 장애 발생 시 복구 포인드
ㄴ RPO가 하루 주기라면 메일 자정에 백업하면 되고, 9시 장애 발생 시 9시간동안의 데이터는 유실된다.
ㅇ RTO(Recovery Time Objectives)
- ‘목표 복구 시간’
- 장애시 시스템을 원상태로 복원하는데 소요되는 시간
29. 데이터베이스 보안에 관련된 다음 설명에 해당하는 용어를 쓰시오.
접근통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것이다. 이러한 접근통제에 관한 기술 중 ( )는 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하여 제어하는 방식으로, 데이터의 소유자가 접근통제 권한을 지정하고 제어한다. 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있다. |
DAC(임의 접근통제)
핵심 199) 접근통제 기술
ㅇ 임의 접근통제(DAC; Discretionary Access Control): 데이터에 접근하는 사용자의 신원에 따라 접근 권한 부여
ㅇ 강제 접근통제(MAC; Mandatory Access Control): 주체와 객체의 등급을 비교하여 접근 권한을 부여
ㅇ 역할기반 접근통제(RBAC; Role Based Access Control): 사용자의 역할에 따라 접근 권한 을 부여
30. 다음 설명에 해당하는 DB의 트랜잭션 연산을 <보기>에서 찾아 쓰시오.
DBMS는 데이터베이스에 치명적인 손실이 발생했을 때 이를 복구하기 위해 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 기록한 로그를 생성한다. • ( ① ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작(start)과 완료(commit)에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산이다. • ( ② ) : 데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 ‘start’는 있지만 완료를 나타내는 ‘commit’ 기록이 없는 트랜잭션들이 작업한 내용들을 모두 취소한다. 즉 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경한다. |
<보기>
• ROLLBACK • UNDO • LOG • COMMIT • REDO • RECOVERY • BACKUP • CHECK |
• ① REDO
• ② UNDO
핵심 352) 회복(Recovery)
ㅇ 연기 갱신 기법(Deferred Update): 갱신된 내용을 Log에 담아 DB에 영향 없음. Undo 불필요
ㅇ 즉각 갱신 기법(Immediate Update): DB 즉시 갱신되어, REDO, UNDO 둘 다 사용가능함
31. SW 인터페이스 구현에 관련된 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
웹 페이지의 기본 형식인 HTML의 문법이 각 웹 브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 ( )은 다른 특수한 목적을 갖는 마크업 언어이다. 원활한 데이터의 연계를 위해 송·수신 시스템 간에 전송되는 데이터가 동일한 구조로 구성될 수 있도록 형태를 정의하는 역할을 수행하며, 다음과 같은 특징이 있다.
유니코드 문자 (Unicode Text) |
텍스트 데이터 형식으로 유니코드를 사용하여 전 세계 언어를 지원한다. |
( ) 파서(Parser) | 대다수의 웹 브라우저가 해석을 위한 번역기(Parser)를 내장하고 있다. |
마크업(Markup)과 내용(Content) |
• ( ) 문서의 문자들은 마크업과 내용으로 구분된다. • 일반적으로 마크업은 “<”로 시작하여 “>”로 끝나는 태그(Tag)를 의미하고, 그 외의 문자열은 내용에 해당한다. |
엘리먼트(Element) | 마크업과 내용으로 이루어지는 하나의 요소를 의미한다. |
XML(eXtensible Markup Language)
핵심 157) XML(eXtensible Markup Language)
웹페이지의 기본형식인 HTML의 문법이 각 웹브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위하여 개발
32. 통합 구현과 관련하여 다음 설명의 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
( )는 HTTP, HTTPS, SMTP 등을 사용하여 xml 기반의 메시지를 네트워크 상에서 교환하는 프로토콜로, ( ) envelope, 헤더(header), 바디(body) 등이 추가된 xml 문서이다. ( )는 복잡하고 무거운 구조로 구성되어 있어 ( ) 보다는 restful 프로토콜을 이용하기도 한다. |
SOAP(Simple Object Access Protocol)
# HTTP, SOAP, Restful 묶어서 이해하기
HTTP와 같은 정적,
초기 동적인 데이터를 전달하는 프로토콜로 SOAP등장.
XML이 데이터 전송 시 무거워서 Restful이 차선책으로 나오게 됨.
주로 JSON 데이터 전송.
33. 웹 서비스(Web Service)와 관련된 다음 설명에 해당하는 용어를 쓰시오.
웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어로, XML로 작성되며 UDDI의 기초가 된다. SOAP, XML 스키마와 결합하여 인터넷에서 웹 서비스를 제공하기 위해 사용되며, 클라이언트는 이것을 통해 서버에서 어떠한 조작이 가능한지를 파악할 수 있다. |
WSDL(Web Services Description Language)
핵심 070) 시스템 연계 기술
# 웹 서비스(Web Service):웹 서비스(Web Service)에서 WSDL과 UDDI, SOAP 프로토콜을 이용하여 연계하는 서비스
WSDL 서버 시스템 - 요즘 시대로 WAS
UDDI 사용설명서 - Swagger
XML 통신 - json
34. 럼바우(Rumbaugh) 데이터 모델링에 대한 다음 설명에서 각 지문(①~③)에 해당하는 모델링을 <보기>에서 찾아 기호(㉠~㉧)로 쓰시오.
① 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링 [예] 자료흐름도(DFD) ② 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링 [예] 상태 변화도(STD), 사건 추적도 ③ 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링 [예] ER 다이어그램(ERD) |
<보기>
㉠ Operation ㉡ Sequence ㉢ Information ㉣ Transaction ㉤ Function ㉥ I/O ㉦ Dynamic ㉧ Cause-Effect |
• ① ㉤
• ② ㉦
• ③ ㉢
# 소프트웨어 구현하기 위해
요구사항 정의를 구체화 하고, 기능에 대한 데이터흐름을 보는게 중요. 자연스럽게 DB 설계로 이어진다.
럼바우는 논리적 요구사항들을 데이터로 정리하기 위한 기법이다.
핵심 053) 럼바우(Rumbaugh)의 분석 기법
- 객체 모델링(Object Modeling): Information Modeling이라고도 함. 시스템에서 요구사항의 객체를 찾아 속성과 연산 식별하여 규정.
- 동적 모델링 (Dynamic Modeling): 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현
- 기능 모델링 (Functional Modeling): 자료 흐름도(DFD), 다수 프로세스의 자료 흐름 중심
35. 객체지향에 대한 다음 설명에 해당하는 용어를 <보기>에서 찾아 쓰시오.
• 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 객체지향 설계 원칙 중의 하나이다. • 예를 들어 프린터, 팩스, 복사 기능을 가진 복합기의 경우 3가지 기능을 모두 가진 범용 인터페이스보다는 프린터 인터페이스, 팩스 인터페이스, 복사 인터페이스로 분리함으로써 하나의 기능 변경으로 인해 다른 기능이 영향을 받지 않도록 해야 한다. |
<보기>
• SRP • SOLID • OCP • LSP • ISP • DIP • OTP • PNP |
ISP
핵심 054) 객체지향 설계 원칙
시스템 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜야 할 다섯가지원칙=> SOLID
- 단일책임원칙 (SRP, Single Responsibility Principle)
: 객체는 단 하나의 책임만 가져야 한다.
- 개방-폐쇄 원칙 (OCP, Open-Closed Principle)
: 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계
- 리스코프 치환 원칙 (LSP, Liskov Substitution Principle)
: 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
- 인터페이스 분리 원칙 (ISP, Interface Segregation Principle): 자신이 사용하지 않는 인터페이스와 관계를 맺지 않는다.
- 의존역전원칙 (DIP, Dependency Inversion Principle): 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존관계를 맺어야 함.
# 이제부터는 구현을 잘하기 위한 방법이다.
결합도는 낮추고, 응집도는 높여라.
기획이 중구난방이면, 소스코드가 이리저리 IF 덩어리가 되어 로직 하나 수정하기 어렵게 된다. 이런 결합도는 낮추고,
잘 정리된 서랍장처럼 인터페이스를 잘 구축하여 결합도를 낮추고, 모듈화 하여 응집도를 높혀 유지보수성과 유용성을 높여야 한다.
36. 결합도(Coupling)의 종류 중 단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달되는 경우의 결합도를 영문으로 쓰시오.
Control Coupling
핵심 055) 결합도(Coupling)
: 결합도 약부터 강으로 나열됨. 흥달샘 설명
단순 param(자료), 리스트형 param(스탬프), 단순 param이 if문을 다는 경우(제어),
기능안에 하위 객체 생성하여 외부값 참조(외부), static의 사용(공용), 그냥 더러운 결합도... if 100개... 내용을 이해하기 어렵다(내용)
- 자료 결합도(Data Coupling): 값만 전달, 자료 요소로만 구성 될때의결합도
- 스탬프 결합도(Stamp Coupling): 배열이나 레코드의 자료구조가 전달
- 제어 결합도 (Control Coupling): param을 받아 if로 제어되는 경우, funciont(X){ if(X==0)....
- 외부 결합도 (External Coupling): 선언한 데이터를 외부에서 참조
- 공통(공유) 결합도 (Common Coupling): 전역 변수를 참조하고 갱신할 때의 결합도.
- 내용 결합도 (Content Coupling): 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도
ㄴ 스파케티 코드: Goto문
ㄴ 외계인 코드: 개발자도 문서도 없다.
ㄴ 통틀어 레거시 시스템. => 차세대 고도화 한다.
37. 데이터 모델의 구성 요소에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 <보기>에서 찾아 기호(㉠~㉥)로 쓰시오.
1. ( ① )는 모듈 간의 인터페이스로 데이터, 지역 변수 등을 직접 참조하거나 수정할 때의 결합도다. 2. ( ② )는 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도다. 3. ( ③ )는 모듈 간의 인터페이스로 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도다. |
<보기>
㉠ 자료 결합도 ㉡ 스탬프 결합도 ㉢ 제어 결합도 ㉣ 공통 결합도 ㉤ 내용 결합도 ㉥ 외부 결합도 |
• ① ㉤
• ② ㉡
• ③ ㉣
38. 소프트웨어 패키징이란 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징한다. 모듈화는 모듈 간 ( ① )의 최소화와 모듈 내 요소들의 ( ② )를 최대화 하는 것이 목표이다. 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ① 결합도(Coupling)
• ② 응집도(Cohesion)
39. 모듈에 대한 다음 설명에서 각 지문(①~③)에 해당하는 응집도(Cohesion)를 <보기>에서 찾아 기호(㉠~㉦)로 쓰시오.
① 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도 ② 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도 ③ 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도 |
<보기>
㉠ 기능적 응집도 ㉡ 순차적 응집도 ㉢ 교환적 응집도 ㉣ 절차적 응집도 ㉤ 시간적 응집도 ㉥ 논리적 응집도 ㉦ 우연적 응집도 |
• ① ㉣
• ② ㉢
• ③ ㉠
핵심 056) 응집도(Cohesion)[시험 전날 암기]
ㅇ 응집도 암기: 우(리) 논(던) 시 절(에) 통(통한) 순(대 어땠어? )기(가 막히지)
- 기능적 응집도: 응집도 제일 높음. 하나의 기능이 응집되어 있다.
- 순차적 응집도: 모듈의 결과가 다른 모듈의 입력값
- 통신적(Communication) 응집도: 동일한 입력과 출력을 사용
- 절차적(Procedural) 응집도: 모듈들이 관련 기능을 순차적으로 수행
- 시간적(Temporal) 응집도: 같은 시간에 처리
- 논리적(Logical) 응집도: 유사한 성격, 특정 형태
- 우연적 응집도: 아무 상관없는 요소
21년 3회 영어로 출제. 영어도 기억해야함.
40. 다음의 모듈 관계를 표현한 시스템 구조도를 참고하여 모듈 F의 팬인(Fan-In)과 팬아웃(Fan-Out)을 구하시오.
• 팬인(Fan-In) : 3
• 팬아웃(Fan-Out) : 2
# 이 문제는 최근 안나온다. 그냥 알고 넘어가도 됨. 코딩, SQL이 강화됨.
41. 네트워크에 관련된 다음 설명에 해당하는 용어를 쓰시오.
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다. 대표적인 메소드에는 공유 메모리(Shared Memory), 소켓(Socket), 세마포어(Semaphores), 파이프와 네임드 파이프(Pipes&named Pipes), 메시지 큐잉(Message Queueing)이 있다. |
IPC(Inter-Process Communication)
핵심 094) IPC(Inter-Process Communication)
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
- Shared Memory: 공유 가능한 메모리를 구성하여 프로세스 간 통신
- Socket: 소켓을 이용하여 네트워크 통신
- Semaphores: 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신.
- Pipes&named Pipes: FIFO 파이프로 통신, 하나의 프로세스는 순차적으로 접근하여 처리
- Message Queueing: EDA와 연관. RabbitMQ, Kafka, Redis pub/sub.
42. 다음 테스트 케이스를 참조하여 괄호에 들어갈 테스트 케이스의 구성 요소를 <보기>에서 찾아 쓰시오.
식별자_ID | 테스트 항목 | ( ① ) | ( ② ) | ( ③ ) |
LS_W10_35 | 로그인 기능 | 사용자 초기 화면 | 아이디(test_a01) 비밀번호(203a!d5%ffa1) |
로그인 성공 |
LS_W10_36 | 로그인 기능 | 사용자 초기 화면 | 아이디(test_a01) 비밀번호(1234) |
로그인 실패(1) - 비밀번호 비일치 |
LS_W10_37 | 로그인 기능 | 사용자 초기 화면 | 아이디("") 비밀번호("") |
로그인 실패(2) - 미입력 |
<보기>
• 요구 절차 • 의존성 여부 • 테스트 데이터 • 테스트 조건 • 하드웨어 환경 • 예상 결과 • 소프트웨어 환경 • 성공/실패 기준 |
• ① 테스트 조건
• ② 테스트 데이터
• ③ 예상 결과
핵심 096) 테스트 케이스(Test Case)
43. 디자인 패턴에 관한 다음 설명에서 괄호에 들어갈 알맞은 용어를 <보기>에서 찾아 쓰시오.
( ) 패턴은 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 다른 이름으로 가상 생성자(Virtual Constructor) 패턴이라고도 불린다. |
<보기>
• Singleton • Abstract Factory • Factory Method • Prototype • Facade • Composite • Template Method • Builder |
Factory Method
핵심 066) 생성 패턴 (Creational Pattern)
- 추상 팩토리 (Abstract Factory): 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성 하여 추상적으로 표현함
- 팩토리 메소드 (Factory Method): 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
- 빌더 (Builder): 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성함
- 프로토타입 (Prototype): 객체를 복제하여 생성
- 싱글톤 (Singleton): 하나의 객체를 생성, 동시에 참조
44. 디자인 패턴에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 <보기>에서 찾아 쓰시오.
• ( ① ) 패턴은 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴으로, 기능과 구현을 두 개의 별도 클래스로 구현한다는 특징이 있다. • ( ② ) 패턴은 한 객체의 상태가 변화하면 객체에 상속된 다른 객체들에게 변화된 상태를 전달하는 패턴으로, 일대다의 의존성을 정의한다. 주로 분산된 시스템 간에 이벤트를 생성·발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용한다. |
<보기>
• Builder • Factory Method • Adapter • Bridge • Facade • Proxy • Observer • Mediator |
• ① Bridge
• ② Observer
핵심 067) 구조 패턴 (Structural Pattern)
- 어댑터 (Adapter): 두 인터페이스 간의 호환성을 제공하는 패턴
- 브리지(Bridge): 구현부에 추상층을 분리하여, 서로 독립적으로 확장하는 패턴
- 컴포지트(Composite): 객체를 트리 구조로 구성, 복합 객체 안에 복합 객체가 포함.
- 데코레이터 (Decorator): 객체 간의 결합을 통해 능동적으로 기능들을 데코한다.
- 퍼싸드(Facade): 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할수있도록하는패턴
- 플라이웨이트(Flyweight): 가능한 공유해서 사용하는 메모리 절약 패턴
- 프록시(Proxy): 접근 어려운 객체들의 인터페이스 제공
45. 디자인 패턴에 관련된 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다. 그 중 ( ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로, Interpreter, Observer, Command 등이 그 예에 해당한다. |
행위(Behavioral)
핵심 068) 행위 패턴 (Behavioral Pattern)
: 클래스나 객체들이 서로 상호작용하는 방법 이나 책임 분배 방법을 정의
- 인터프리터 (Interpreter)
- 커멘드(Command): 요청을 캡슐화하여 저장, 요청 큐를 통째로 저장하여 파이프라인 구축할 때 사용.
- 옵서버 (Observer): 객체들에게 변화된 상태를 전달하는 패턴
- 메멘토 (Memento): 특점 시점의 상태 객체화, Ctrl+Z
-
46. 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션으로, Point-to-Point, Hub&Spoke, Message Bus, Hybrid 등의 다양한 방식으로 구축이 가능한 모듈 연계 방법을 쓰시오.
EAI(Enterprise Application Integration)
핵심 154) EAI(Enterprise Application Integration)
기업의 대규모 애플리케이션이나 플랫폼 간의 정보 전달 솔류션
- Point-to-Point: MSA환경에서 모듈간에 직접 API를 호출하는 형태
- Hub& Spoke: 모듈간의 중첩되는 로직을 허브에 집중. 허브 장애 시 단일 모듈은 괜찮지만, 전체 시스템 장애 발생
- Message Bus: MSA의 EDA 패턴에 주로 사용. Redis, RabbitMQ, Kafka가 대표적 미들웨어임.
- Hybrid: Hub와 Message Bus 짬뽕.
47. EAI(Enterprise Application Integration)의 구축 유형에 대한 설명이다. 괄호(①, ②) 안에 각각 들어갈 알맞은 유형을 쓰시오.
EAI(Enterprise Application Integration)는 기업 내 각종 애플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동이 가능하게 해주는 솔루션이다. 비즈니스 간 통합 및 연계성을 증대시켜 효율성 및 각 시스템 간의 확정성(Determinacy)을 높여 준다. EAI의 구축 유형은 다음과 같다.
( ① ) | • 가장 기본적인 애플리케이션 통합 방식으로, 애플리케이션을 1 : 1로 연결한다. • 변경 및 재사용이 어렵다. |
|
( ② ) | • 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중형 방식이다. • 확장 및 유지 보수가 용이하다. • 허브 장애 발생 시 시스템 전체에 영향을 미친다. |
|
Message Bus | • 애플리케이션 사이에 미들웨어를 두어 처리하는 방식이다. • 확장성이 뛰어나며 대용량 처리가 가능하다. |
|
Hybrid | • 그룹 내에서는 ( ② ) 방식을, 그룹 간에는 Message Bus 방식을 사용한다. • 필요한 경우 한 가지 방식으로 EAI 구현이 가능하다. • 데이터 병목 현상을 최소화할 수 있다. |
• ① Point to Point
• ② Hub & Spoke
48. 소프트웨어 인터페이스 구현에 관련된 다음 설명에서 괄호에 공통으로 들어갈 알맞은 용어를 쓰시오.
( )은 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 처리에 사용되는 AJAX에서 XML을 대체하여 사용되고 있다. 다음은 ( )이 가질 수 있는 자료 기본형이다.
숫자 | 정수와 실수를 표현한다. |
문자열 | 유니코드 문자로 표현하며, 큰따옴표(“ ”)로 묶는다. |
참/거짓 | 참(True) 또는 거짓(False)을 표현한다. |
배열 | 다양한 요소들을 쉼표로 구분하여 표현하며, 대괄호([ ])로 묶는다. |
객체 | 이름/값 쌍으로 표현하며, 중괄호({ })로 묶는다. |
NULL | 아직 알려지지 않거나 모르는 값을 표현하기 위한 자료형이다. |
JSON(JavaScript Object Notation)
49. 클라이언트와 서버 간 자바스크립트 및 XML을 비동기 방식으로 처리하며, 전체 페이지를 새로 고치지 않고도 웹페이지 일부 영역만을 업데이트할 수 있도록 하는 기술을 의미하는 용어를 쓰시오.
AJAX(Asynchronous JavaScript and XML)
50. 네트워크 트래픽에 대해 IP(Internet Protocol) 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공하는 네트워크 계층에서의 보안 통신 규약을 쓰시오.
IPSec(Internet Protocol Security)
# 핵심 159) 인터페이스 보안 기능 적용
암호화는 인터페이스 아키텍처에 따라 IPSec, SSL, S-HTTP 등의 다양한 방식으로 적용함
- IPSec: 네트워크 계층에서 IP 패킷 단위의 데이터변조방지및은닉기능을 제공하는 프로토콜
- SSL: 전송계층과 응용계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로 토콜을 의미한다.
- S-HTTP: 클라이언트와 서버간 웹 상에서 네트워크 트래픽을 암호화하는 보안 프로토콜
51. 인터페이스 구현 검증 도구에 대한 다음 설명에 해당하는 용어를 영문으로 쓰시오.
Kent Beck과 Erich Gamma 등이 개발한 자바 프로그래밍 언어용 유닛 테스트 프레임워크로, xUnit 계열의 한 종류다. 같은 테스트 코드를 여러 번 작성하지 않게 도와주며, 테스트마다 예상 결과를 기억할 필요가 없는 자동화된 해법을 제공한다는 특징이 있다. |
JUnit
핵심 160) 인터페이스 구현 검증 도구
-xUnit: 자동화된 단위 테스트 프레임워크, 테스트 주도 개발(test-driven development, TDD)에 근간이 됨.
-STAF: 서비스호출 및 컴포넌트 재사용 등 다양한환경을 지원하는 테스트 프레임워크
52. 사용자 인터페이스(UI)에 대한 다음 설명에 해당하는 용어를 영문 약어로 쓰시오.
사용자의 자연스러운 움직임을 통해 시스템과 상호작용하는 사용자 인터페이스(UI)로, 키보드나 마우스와 같이 조작을 배워야 하는 인공 제어 장치를 사용하는 인터페이스와 구분하기 위해 ‘자연스러운’이라는 표현을 사용한다. 시리(Siri), 빅스비(Bixby) 등과 같은 음성 비서에게 사용하는 자연어 명령이나 휴대폰이나 태블릿에서의 터치 등이 여기에 해당한다. |
NUI
핵심 031)사용자 인터페이스의 구분
CLI: Command, 명령줄로
GUI: Graphical, 화면으로
NUI: Natural, 말이나 행동
VUI: Voice, 음성
OUI: Organic, 증강현실
53. Windows, MacOS 등에서 사용하는 인터페이스로, 사용자가 명령어를 직접 입력하지 않고 키보드와 마우스 등을 이용하여 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 사용자 인터페이스를 쓰시오.
GUI(그래픽 사용자 인터페이스)
54. UI(User Interface)의 설계 원칙 중 직관성에 대해 간략히 서술하시오.
직관성은 누구나 쉽게 이해하고 사용할 수 있어야 한다는 설계 원칙이다.
핵심032) 사용자 인터페이스의 기본 원칙
- 직관성: 누구나 쉽게 이해하고 사용할 수 있어야함.
- 유효성: 요구사항에 정확한지.
ㄴ 오류-부재의 궤변(Absence of Errors Fallacy): 결함이 없어도 요구사항에 맞지 않으면 무용지물
- 학습성: 쉽게 배울 있음
- 유연성: 요구사항 최대 수용
55. 사용자 인터페이스에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
직관성 | 누구나 쉽게 이해하고 사용할 수 있어야 한다. |
( ) | 사용자의 목적을 정확하고 완벽하게 달성해야 한다. |
학습성 | 누구나 쉽게 배우고 익힐 수 있어야 한다. |
유연성 | 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 한다. |
유효성
56. 인터페이스에 관련된 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① ) : 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험 • ( ② ) : 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어 [예] CLI, GUI 등 |
• ① UX(사용자 경험)
• ② UI(사용자 인터페이스)
57. 애플리케이션 테스트에서 사용되는 살충제 패러독스(Pesticide Paradox)의 개념을 간략히 설명하시오.
살충제 패러독스는 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상을 의미한다.
핵심 122) 애플리케이션 테스트 관련 용어
ㅇ 살충제 패러독스 (Pesticide Paradox)
ㄴ 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상을 의미한다.
ㅇ 파레토 법칙(Pareto Principle)
ㄴ 상위20%가 매출의 80%, 이와 같이 특정모듈을 집중적으로 테스트하여 효율적으로 오류를 찾는다.
ㅇ 오류-부재의 궤변(Absence of Errors Fallacy)
ㄴ 소프트웨어의 결함이 없다해도 사용자의 요구사항을 만족하지 못하면 소프트웨어의 품질은 높다고 말할 수 없다.
58. 애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위하여 사용하는 테스트를 쓰시오.
정적 분석(정적 테스트)
핵심 153) 소스코드품질분석도구
ㅇ정적분석도구
- 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석
- SonarQube, pmd...
ㅇ동적분석도구
- 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수 등을 분석
59. 테스트에 대한 다음 설명에서 각 지문(①~③)에 해당하는 커버리지(Coverage)를 <보기>에서 찾아 기호(㉠~㉥)로 쓰시오.
① 최소 한번은 모든 문장이 수행되도록 구성하는 검증 기준 ② 조건식이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준 ③ ②번과 달리 조건식에 상관없이 개별 조건이 참(True)/거짓(False)일 때 수행되도록 구성하는 검증 기준 |
<보기>
㉠ 다중 조건 검증 기준 ㉡ 선택 검증 기준 ㉢ 조건 검증 기준 ㉣ 결정(분기) 검증 기준 ㉤ 결정(분기)/조건 검증 기준 ㉥ 구문(문장) 검증 기준 |
• ① ㉥
• ② ㉣
• ③ ㉢
핵심 129) 화이트박스 테스트의 검증 기준
- 문장검증기준 (Statement Coverage): 모든 구문 검증
- 분기검증기준 (Branch Coverage): 조건문에 대해 한 번 이상 수행
- 조건검증기준 (Condition Coverage): 조건문에 대해 True, False 모두 점검
- 분기/조건기준 (Branch/ Condition Coverage): 조건검증은 한계가 있어 부분적으로 분기검증기준 적용하는 방식
60. 다음은 화이트박스 테스트의 프로그램 제어흐름이다. 다음의 순서도를 참고하여 분기 커버리지로 구성할 테스트 케이스를 작성하시오.
<작성예시>
( ① ) → ( ② ) → ( ④ ) |
( ① ) → ( ② ) → ( ③ ) → ( ④ ) → ( ⑤ ) → ( ⑥ ) → ( ⑦ )
( ① ) → ( ② ) → ( ④ ) → ( ⑤ ) → ( ⑥ ) → ( ① )
61. 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 동치 클래스 분해 및 경계값 분석을 이용하는 테스트 기법을 쓰시오.
블랙박스 테스트(Black Box Test)
핵심 131) 블랙박스 테스트의 종류
동치분할(Equivalence Partitioning Testing)
경계값 분석(Boundary Value Analysis)
원인-효과 그래프 검사(Cause-Effect Graphing Testing)
오류 예측 검사, 비교 검사
62. 테스트 기법 중 다음과 같이 ‘평가 점수표’를 미리 정해 놓은 후 각 영역의 경계에 해당하는 입력값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을 <보기>에서 찾아 쓰시오.
평가점수 | 성적등급 |
90~100 | A |
80~89 | B |
70~79 | C |
0~69 | D |
테스트 케이스 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
입력값 | -1 | 0 | 69 | 70 | 79 | 80 | 89 | 90 | 100 | 101 |
예상 결과값 | 오류 | D | D | C | C | B | B | A | A | 오류 |
실제 결과값 | 오류 | D | D | C | C | B | B | A | A | 오류 |
<보기>
• Equivalence Partition • Boundary Value Analysis • Condition Test • Cause-Effect Graph • Error Guess • Comparison Test • Base Path Test • Loop Test • Data Flow Test |
Boundary Value Analysis
63. 다음 중 블랙 박스 테스트 기법에 해당하는 것을 모두 골라 기호(㉠~㉨)로 쓰시오.
㉠ Base Path Testing ㉡ Condition Testing ㉢ Boundary Value Analysis ㉣ Equivalence Partitioning ㉤ Data Flow Testing ㉥ Cause-Effect Graph ㉦ Branch Coverage Testing ㉧ Statement Coverage Testing ㉨ Boundary Division Analysis |
㉢, ㉣, ㉥
64. 테스트 기법 중 그래프를 활용하여 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법을 <보기>에서 찾아 쓰시오.
<보기>
• Equivalence Partition • Boundary Value Analysis • Condition Test • Cause-Effect Graph • Error Guess • Comparison Test • Base Path Test • Loop Test • Data Flow Test |
Cause-Effect Graph
65. 테스트 기법 중 다음과 같이 ‘평가 점수표’를 미리 정해 놓은 후 각 영역에 해당하는 입력 값을 넣고, 예상되는 출력값이 나오는지 실제 값과 비교하는 명세 기반 테스트 기법을 쓰시오.
<평가 점수표>
평가점수 | 성적등급 |
90~100 | A |
80~89 | B |
70~79 | C |
0~69 | D |
<케이스>
테스트 케이스 | 1 | 2 | 3 | 4 |
점수범위 | 0~69 | 70~79 | 80~89 | 90~100 |
입력값 | 60 | 75 | 82 | 96 |
예상 결과값 | D | C | B | A |
실제 결과값 | D | C | B | A |
동치 분할 검사(Equivalence Partitioning Testing)
66. 개발 단계에 따른 애플리케이션 테스트에 대한 다음 V-모델에서 괄호(①~④)에 들어갈 알맞은 테스트를 쓰시오.
• ① 단위 테스트(Unit Test)
• ② 통합 테스트(Integration Test)
• ③ 시스템 테스트(System Test)
• ④ 인수 테스트(Acceptance Test)
핵심 132) 개발 단계에 따른 애플리케이션 테스트
소프트웨어 생명 주기의 V-모델
단위 테스트 - 개발직후 모듈 확인
통합 테스트 - 인터페이스
시스템 테스트 - 기능테스트
인수테스트 - 요구사항
67. 애플리케이션 테스트에 대한 다음 설명에서 각 지문(①, ②)에 해당하는 용어를 <보기>에서 찾아 기호(㉠~㉥)로 쓰시오.
① 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 수행하는 테스트로, 모듈 테스트라고도 불린다. 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 인터페이스, 외부적 I/O, 자료구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사한다. ② 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트를 의미하며, 모듈 간 또는 컴포넌트 간의 인터페이스가 정상적으로 실행되는지 검사한다. |
<보기>
㉠ 시스템 테스트 ㉡ 인수 테스트 ㉢ 알파 테스트 ㉣ 단위 테스트 ㉤ 통합 테스트 ㉥ 회귀 테스트 |
• ① ㉣
• ② ㉤
68. 애플리케이션 테스트에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 테스트를 쓰시오.
인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법이다. • ( ① ) : 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 테스트 기법으로, 실제 업무를 가지고 사용자가 직접 테스트한다. • ( ② ) : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법으로, 테스트는 통제된 환경에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 기록한다. |
• ① 베타 테스트(Beta Test)
• ② 알파 테스트(Alpha Test)
핵심 136) 인수 테스트 (Acceptance Test)
69. 통합 테스트에 관련된 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
통합 테스트는 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법으로, 하위 모듈에서 상위 모듈 방향으로 통합하는 상향식 통합 테스트와 상위 모듈에서 하위 모듈 방향으로 통합하는 하향식 통합 테스트가 있다. 상향식 통합 테스트는 미완성이거나 문제가 있는 상위 모듈을 대체할 수 있는 테스트 드라이버가, 하향식 통합 테스트는 미완성이거나 문제가 있는 하위 모듈을 대체할 수 있는 테스트 ( )이(가) 있어야 원활한 테스트가 가능하다. |
스텁(Stub)
핵심 139) 테스트 드라이버와 테스트 스텁의 차이점
- Driver: 테스트 대상의 하위 모듈을 호출하는 도구, 밑에서 위로 테스트 시 상위 모듈 대체
- Stub: 상위 모듈이 타 기능 호출 시 수행하는 도구, 위에서 밑으로 테스트 시 하위 모듈 대체
70. 애플리케이션 테스트에 관한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
• ( ① )는 소프트웨어의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다. • 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요하다. • 데이터의 입·출력을 확인하기 위해 더미 모듈인 ( ② )를 생성한다. |
• ① 상향식 통합 테스트
• ② 드라이버(Driver) 또는 테스트 드라이버(Test Driver)
71. 다음 설명에 해당하는 테스트를 <보기>에서 찾아 쓰시오.
• 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트이다. • 이미 테스트된 프로그램의 테스팅을 반복하는 것이다. • 수정한 모듈이나 컴포넌트가 다른 부분에 영향을 미치는지, 오류가 생기지 않았는지 테스트하여 새로운 오류가 발생하지 않음을 보증하기 위해 반복 테스트한다. |
<보기>
• Integration • Big Bang • System • Acceptance • Unit • Regression • White Box • Black Box |
Regression
핵심 140) 회귀 테스팅 (Regression Testing)
단어정리
통합(Integration)
회귀(Regression)
인수(Acceptance)
72. 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클로, 전수 테스트가 불가능한 경우 사용하고, 경계값 및 구간별 예상값 결과 작성시 사용하는 오라클을 쓰시오.
샘플링 오라클(Sampling Oracle)
핵심 145) 테스트 오라클의 종류
- 참(True) 오라클: 모든 테스트 케이스의 입력 값에 대해 결과를 제공하는 오라클
- 샘플링(Sampling) 오라클: 몇몇 테스트 케이스의 입력 값들에 대해서만 제공
- 추정(Heuristic) 오라클: 샘플링 외 나머지에 대해서는 추정으로 처리
- 일관성 검사 (Consistent) 오라클: 수정 배포 시, 기존 테스트 케이스에는 문제가 없이 동일한지 확인하는 오라클
73. 애플리케이션 성능이란 사용자가 요구한 기능을 최소한의 자원을 사용하여 최대한 많은 기능을 신속하게 처리하는 정도를 나타낸다. 애플리케이션 성능 측정의 지표에 대한 다음 설명에서 괄호(①~③)에 들어갈 알맞은 용어를 쓰시오.
( ① ) | 일정 시간 내에 애플리케이션이 처리하는 일의 양을 의미한다. |
( ② ) | 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간을 의미한다. |
( ③ ) | 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간을 의미한다. |
자원 활용률 | 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU, 메모리, 네트워크 등의 자원 사용률을 의미한다. |
• ① 처리량(Throughput)
• ② 응답 시간(Response Time)
• ③ 경과 시간(Turn Around Time)
핵심 149) 애플리케이션 성능 분석
74. 소스 코드 품질 분석 도구에 대한 다음 설명에서 괄호(①, ②)에 해당하는 용어를 <보기>에서 찾아 기호(㉠~㉧)로 쓰시오.
소스 코드 품질 분석 도구는 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구이다. • ( ① ) 도구는 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구이다. • ( ② ) 도구는 소스 코드를 직접 실행하여 프로그램의 동작이나 반응을 추적하고 보고하는 분석 도구로, 프로그램 모니터링 기능이나 스냅샷 생성 기능들을 포함하고 있다. |
<보기>
㉠ Static Analysis ㉡ Running Analysis ㉢ Test Execution ㉣ Performance ㉤ Dynamic Analysis ㉥ Test Control ㉦ Test Harness ㉧ Test Monitoring |
• ① ㉠
• ② ㉤
'개발이야기 > 정보처리기사' 카테고리의 다른 글
[정처기 실기] 시저 암호(Caesar cipher) (0) | 2024.05.02 |
---|---|
[정처기 실기] 정보처리기사 실기 - 2023년 2회 기출문제 (0) | 2024.04.27 |
[정처기 실기] 2024년 실기 자주 출제되는 SQL, 프로그래밍 기출문제들 정리 (1) | 2024.04.23 |
[정처기 실기] 2024년 실기, 핵심 키워드 130문제 풀이-2 (2) | 2024.04.23 |
[정처기 실기] 정보처리기사 실기 - 2023년 3회 기출문제 (0) | 2024.04.15 |