[정보처리기사 실기 기출문제] 4장. 서버 프로그램 구현 - 2
▶객체지향 기법에서 사용하는 상속(Inheritance)의 개념을 간략히 서술하시오.
[ 상속은 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것이다. ]
▶다른 모듈이 모듈 내부의 절차와 자료들의 정보에 접근 및 변경하는 것을 막기 위한 기법으로, 모듈을 독립적으로 수행할 수 있고, 하나의 모듈이 변경되더라도 다른 모듈에 영향을 주지 않으므로 수정, 시험, 유지보수가 용이한 소프트웨어 아키텍처 설계의 기본 원리는?
[ 정보 은닉 ; Information Hiding ]
▶다음 설명에 해당하는 개발 지원 도구는?
- 안드로이드 스튜디오의 공식 빌드 도구이다.
- 의존성을 활용하여 라이브러리를 관리한다.
- 동적 객체지향 프로그래밍 언어 Groovy를 빌드 스크립트로 사용한다.
[ Gradle ]
▶( )는 서버 프로그램 개발 시 사용할 수 있는 다양한 클래스 및 인터페이스를 제공해줌으로써 생산성에 큰 도움을 주는 소프트웨어로, Java의 Spring, Python의 Django, PHP의 Codeigniter가 여기에 해당한다.
[ 서버 개발 프레임 워크 ]
▶공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도는?
[ 공통(공유) 결합도 ; Common Coupling ]
▶모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도는?
[ 절차적 응집도 ; Procedural Cohesion ]
▶웹 애플리케이션을 개발하는데 필요한 하드웨어 환경 중 동적 서비스를 제공하거나, 웹서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버는?
[ WAS ; Web Application Server ]
▶사용자가 클라이언트를 통해 서버에 요청하면 클라이언트가 응답을 받아 사용자에게 제공하는 방식으로, 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 아키텍처 패턴은?
[ 클라이언트- 서버 패턴 ; Client-Server Pattern ]
▶작게 분리된 인스턴스를 건축하듯이 조합하여 객체를 생성하는 것으로 객체의 생성 과정과 표현 방법을 분리하고 있어, 동일한 객체 생성에서도 서로 다른 결과를 만들어 낼 수 있는 생성 패턴은?
[ 빌더 ; Builder ]
▶럼바우 분석 활동 중 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현하는 모델링은?
[ 기능 모델링 ; Functional Modeling ]
▶객체지향 설계 원칙 중 서브타입(상속받은 하위 클래스)은 어디에서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 함을 의미하는 원칙은?
[ 리스 코프 치환 원칙 ; LSP ]
▶모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도는?
[ 스탬프(검인) 결합도 ; Stamp Coupling ]
▶< ctrl+z >와 같은 실행 취소 및 되돌리기 기능을 개발할 때 주로 사용되는 패턴으로, 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴은?
[ 메멘토 ; Memento ]
[정보처리기사 실기 기출문제] 4장. 서버 프로그램 구현 - 2
▶다음 보기에서 설명하는 서버는?
- HTTP 및 HTTPS 기능을 지원하며, 처리한 요청들을 기록한다.
- HTML, CSS, 이미지 등의 정적 파일들을 저장하고 관리하며, 네트워크 트래픽의 포화를 방지하기 위해 응답 속도를 제한할 수 있다.
- 하나의 서버로 여러 개의 도메인 이름을 연결하는 기능을 갖고 있으며, 사용자를 인증하는 역할을 수행한다.
[ 웹 서버 ; Web Server ]
▶( )는 Ruby를 기반으로 만든 프레임워크로, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아지게 함으로써 신속한 개발이 가능하다.
[ Ruby on Rails ]
▶구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관/의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 것으로 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능한 생성 패턴은?
[ 추상 팩토리 ; Abstract Factory ]
▶IPC(Inter-Process Communication)의 메서드 중 ( )는 메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식이다.
[ Message Queueing ]
▶럼바우 분석 활동 중 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링은?
[ 동적 모델링 ; Dynamic Modeling ]
▶한 가지 동작을 수행하는 기능을 모듈로 구현한 것으로, 독립적인 컴파일이 가능하며, 구현 시 구현할 기능에 대한 명세를 작성하고, 입/출력 기능을 구현한 후 알고리즘이 구현되는 것은?
[ 단위 모듈 ; Unit Module ]
▶공통 모듈 구현 시 다른 개발자들이 해당 기능을 명확히 이해할 수 있도록 5가지의 명세 기법을 준수해야 한다. 이 중 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 작성해야 한다는 것을 의미하는 원칙은?
[ 정확성 ; Correctness ]
▶코드는 자료의 분류, 추출, 조합, 집계 등을 효과적으로 수행하기 위해 사용하는 것이다. 이러한 코드의 주요 기능 중 자료에 의미를 부여하거나 나열할 수 있는 기능을 가리키는 용어는?
[ 배열 기능 ]
▶음성 인식, 차량 식별, 신호 해석 등에 사용되는 ( ) 패턴은 모든 컴포넌트들이 공유 데이터 저장소와 ( ) 컴포넌트에 접근이 가능한 아키텍처 패턴이다.
[ 블랙 보드 ; Blackboard ]
▶전형적인 멀티스레딩 방식을 사용하며, 하나의 컴포넌트가 서비스를 호출하는 클라이언트가 될 수도, 서비스를 제공하는 서버가 될 수도 있는 아키텍처 패턴은?
[ 피어-투-피어 패턴(Peer-To-Peer Pattern) ]
▶소스가 특정 채널에 이벤트 메시지를 발행(Publish)하면, 해당 채널을 구독(Subscribe)한 리스너들이 메시지를 받아 이벤트를 처리하는 아키텍처 패턴은?
[ 이벤트-버스 패턴 ; Event-Bus Pattern ]
▶소프트웨어 개발에서 개발 언어 선정 시 언어가 개발하려는 소프트웨어의 목적에 적합한지를 판단하는 기준을 가리키는 용어는?
[ 적정성 ]
▶다음 설명과 가장 밀접한 관계가 있는 객체지향의 특징은?
- 인터페이스가 단순화된다.
- 소프트웨어 재사용성이 높아진다.
- 변경 발생 시 오류의 파급 효과가 적다.
- 정보 은닉과 관계가 있다.
[ 캡슐화 ; Encapsulation ]
▶소프트웨어 개발에서 재사용(Reuse)에 대한 개념을 간략히 서술하면?
[ 재사용은 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업이다. ]
▶원본 객체를 복제하는 방법으로 객체를 생성하는 패턴으로 일반적인 방법으로 객체를 생성하며, 비용이 큰 경우 주로 이용하는 생성 패턴은?
[ 프로토 타입 ; Prototype ]
▶요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 행위 패턴은?
[ 책임 연쇄 ; Chain of Responsibility ]
▶결합 정도에 따라 결합도의 종류를 나열할 경우 괄호에 들어갈 가장 적합한 결합도는?
- 자료 결합도 < ( ① ) < 제어 결합도 < ( ② ) < ( ③ ) < 내용 결합도
[ ① 스탬프 결합도 / ② 외부 결합도 / ③ 공통 결합도 ]
▶리눅스의 크론탭(crontab) 명령어를 이용하여 다음의 설명에 해당하는 작업을 등록하는 명령문은?
- A사의 개발자는 3월, 6월, 9월, 12월마다 수행되어야 하는 데이터 백업 작업을 예약하고자 한다. 해당 작업은 각 월의 25일에 서버 이용이 가장 적은 시간대인 오후 10시 정각에 처음 실행되어 15분마다 총 4회 수행할 예정이다. 백업과 관련된 명령어는 /backup/batch.sh 파일에 모두 준비해 두었다.
[ */15 22 25 */3 * /backup/batch.sh ]
▶소프트웨어 개발에서 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스를 가리키는 용어는?
[ API ; Application Programming Interface ]
▶다음 중 공통 모듈의 명세 기법에 해당하는 것을 모두 고르면?
ⓐ 자원 효율성
ⓑ 완전성
ⓒ 일관성
ⓓ 추적성
ⓔ 친밀성
[ ⓑ 완전성 / ⓒ 일관성 / ⓓ 추적성 ]
▶모듈과 시스템 구조에 대한 다음 설명의 괄호에 들어갈 용어는?
- ( ① )은 어떤 모듈을 호출하는 모듈의 수를 의미하며, ( ② )은 어떤 모듈에 의해 호출되는 모듈의 수를 의미한다.
- ( ① )이 높다는 것은 재사용 측면에서 설계가 잘 되어있다고 볼 수 있으나, 단일 장애점이 발생할 수 있으므로 중점적인 관리 및 테스트가 필요하다.
- ( ② )이 높은 경우 불필요하게 다른 모듈을 호출하고 있는지 검토하고, 단순화 여부에 대한 검토가 필요하다.
[ ① 팬인(Fan-in) / ② 팬아웃(Fan-out) ]
▶( )는 PHP를 기반으로 만든 프레임워크로, 인터페이스가 간편하며 서버 자원을 적게 사용한다.
[ Codeigniter ]
▶소프트웨어 개발에서 개발 언어 선정 시 개발 언어에 대한 개발자들의 이해도와 활용도가 높은 지를 판단하는 기준을 가리키는 용어는?
[ 친밀성 ]
▶Windows 운영체제의 폴더와 같이 폴더 내에 폴더가 존재할 수 있는 트리 구조로 복합 객체와 단일 객체를 다룰 수 있는 패턴은?
[ 컴포지트 ; Composite ]
▶( )는 Python을 기반으로 만든 프레임워크로, 컴포넌트의 재사용과 플러그 인화를 강조하여 신속한 개발이 가능하도록 지원한다.
[ Django ]
▶객체지향 분석 방법론 중 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법은?
[ Wirfs-Brock 방법 ]
[정보처리기사 실기 기출문제] 4장. 서버 프로그램 구현 - 2
▶데이터 결합도(Data Coupling)에 대해 간략히 서술하면?
[ 데이터 결합도는 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도이다. ]
▶다음 상황에 가장 적합한 디자인 패턴은?
- 메모리가 적은 소형 PC에 설치될 응용 프로그램을 개발해야 한다. 따라서 효율적인 메모리 자원의 운용을 위해 유사한 클래스들의 인스턴스를 매번 생성하지 않고 가능한 공유 해서 사용하기로 결정했다.
[ 플라이 웨이트 ; Flyweight ]
▶다음 소프트웨어 아키텍처의 설계과정이다. 괄호에서 수행해야 할 알맞은 설계 과정은?
- 설계 목표 설정 → ( ) → 아키텍처 패턴 적용 → 서브시스템 구체화 → 검토
[ 시스템 타입 결정 ]
▶구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴은?
[ 브리지 ; Bridge ]
▶시스템을 계층으로 구분하여 구성하는 고전적인 아키텍처 패턴의 하나로, 서브시스템들이 계층 구조를 이루어 서로 마주 보는 두 개의 계층 사이에서만 상호작용이 수행되며, 상위 계층은 하위 계층에 대한 서비스 제공자가 되고 하위 계층은 상위 계층의 클라이언트가 되는 아키텍처 패턴은?
[ 레이어 패턴 ; Layer pattern ]
▶다음 설명에 해당하는 객체지향 기법의 특징은?
- 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려받는 것으로, 이를 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 사용할 수 있다.
[ 상속 ; Interitance ]
▶IPC(Inter-Process Communication)의 메서드 중 ( )는 'Pipe'라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식이다.
[ Pipes & named Pipes ]
▶다음 보기 중 GoF(Gang of Four)의 디자인 패턴에서 행위 패턴에 속하는 것을 모두 고르시오.
ⓐ Builder
ⓑ Facade
ⓒ Command
ⓓ Composite
ⓔ Observer
[ ⓒ Command / ⓔ Observer ]
▶객체지향 설계 원칙 중 응집도는 높고, 결합도는 낮게 설계하는 것으로 객체는 단 하나의 책임만 가져야 한다는 원칙은?
[ 단일 책임 원칙; SRP ]
▶그룹웨어(Groupware)라고도 불리는 ( )은 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도와주는 도구이다.
[ 협업 도구 ]
▶애플리케이션 개발에 사용되는 API(Application Programming Interface)의 개념에 대해 간략히 서술하면?
[ API는 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해 놓은 인터페이스이다. ]
▶IPC에서 공유된 메모리를 이용하여 둘 이상의 프로세스가 통신할 수 있도록 기능을 제공하는 메서드는?
[ Shared Memory ]
▶시스템을 설계할 때 필요한 설계 지침으로 두 모듈 간의 상호 의존도 또는 두 모듈 사이의 연관 관계를 의미하는 용어는?
[ 결합도 ; Coupling ]
▶코드화 대상 자료 전체를 계산하여 이를 필요로 하는 분류 단위로 구분하고, 각 블록 내에서 순서대로 번호를 부여하는 방식으로, 구분 코드라고도 불리는 코드는?
[ 블록 코드 ; Block Code ]
'공부 및 교육 > 정보처리기사 실기 기출문제' 카테고리의 다른 글
[정보처리기사 실기 기출문제] 3장. 통합 구현 (0) | 2022.07.31 |
---|---|
[정보처리기사 실기 기출문제] 4장. 서버 프로그램 구현 - 3 (0) | 2022.07.31 |
[정보처리기사 실기 기출문제] 4장. 서버 프로그램 구현 - 1 (0) | 2022.07.31 |
[정보처리기사 실기 기출문제] 5장. 인터페이스 구현 (0) | 2022.07.31 |
[정보처리기사 실기 기출문제] 6장. 화면 설계 (0) | 2022.07.30 |
댓글