디자인 패턴이란?

소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 문제들이 또 발생했을 때 재사용할 수 있는 해결책

 


 

디자인 패턴의 구조

1. 콘텍스트(context)

  • 문제가 발생하는 여러 상황 -> 패턴이 적용될 수 있는 상황
  • 경우에 따라서는 패턴이 유용하지 못한 상황을 지칭하기도 함

 

2. 문제(problem)

  • 패턴이 적용되어 해결할 필요가 있는 여러 디자인 이슈
  • 이 때 여러 제약 사항과 영향력 또한 고려해야 함

 

3. 해결(Solution)

  • 설계를 구성하는 요소들과 요소들 사이의 관계, 책임, 협력 관계
  • 구체적인 구현 방법이나 언어에 의존적이지 않으며 다양한 상황에 적용할 수 있는 템플릿

82. SSH(Secure Shell)에 대한 설명으로 틀린 것은?

 ① SSH의 기본 네트워크 포트는 220번을 사용한다

 전송되는 데이터는 암호화 된다.

 키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다.

 서로 연결되어 있는 컴퓨터 간 원격 명령실행이나 셀 서비스 등을 수행한다.

 

[해설] SSH(Secure Shell)

SSH의 기본 네트워크 포트는 22번


86. 라우팅 프로토콜인 OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은?

 네트워크 변화에 신속하게 대처할 수 있다.

 ② 거리 벡터 라우팅 프로토콜이라고 한다.

 멀티캐스팅을 지원한다.

 최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.

 

[해설] RIP

거리 벡터 라우팅 프로토콜은 RIP에 해당된다.


91. SPICE 모델의 프로세스 수행능력 수준의 단계별 설명이 틀린 것은?

 ① 수준 7 - 미완성 단계

 수준 5 - 최적화 단계

 수준 4 - 예측 단계

 수준 3 - 확립 단계

 

[해설] SPICE 모델

0단계: 불안정

1단계: 수행

2단계: 관리

3단계: 확립

4단계: 예측

5단계: 최적화


94. IPSec(IP Security)에 대한 설명으로 틀린 것은?

 ① 암호화 수행시 일방향 암호화만 지원한다.

 ESP는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.

 운영 모드는 Tunnel 모드와 Transport 모드로 분류된다.

 AH는 발신지 호스트를 인증하고, IP 패킷의 무결성을 보장한다.

 

[해설] IPSec(IP Security)

일방향 암호화는 해시암호화

 

68. 프로세스 적재 정책과 관련한 설명으로 틀린 것은?

 반복, 스택, 부프로그램은 시간 지역성(Temporal Locality)과 관련이 있다.

 공간 지역성(Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상주소공간상 그 페이지와 인접한

     페이지들을 참조할 가능성이 높음을 의미한다.

 ③ 일반적으로 페이지 교환에 보내는 시간보다 프로세스 수행에 보내는 시간이 더 크면 스레싱(Thrashing)이 발생한다.

 스레싱(Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다.

 

[해설] 스레싱(Thrashing)

페이지수행 시간보다 교환시간이 커질 때 발생


69. 프레임워크(Framework)에 대한 설명으로 옳은 것은?

    ① 소프트웨어 구성에 필요한 기본 구조를 제공함으로써 재사용이 가능하게 해준다

    소프트웨어 개발 시 구조가 잡혀 있기 때문에 확장이 불가능하다.

    소프트웨어 아키텍처(Architecture)와 동일한 개념이다.

    모듈화(Modularity)가 불가능하다.

 

[해설] 소프트웨어 프레임워크의 특징

1. 모듈화

2. 재사용성

3. 확장성

4. 제어의 역흐름


74. 페이징 기법에서 페이지 크기가 작아질수록 발생하는 현상이 아닌 것은?

 기억장소 이용 효율이 증가한다.

 ·출력 시간이 늘어난다.

 내부 단편화가 감소한다.

 ④ 페이지 맵 테이블의 크기가 감소한다.

 

[해설] 페이징 기법

- 컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리 기법

- 페이징기법을 통해 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없음

- 페이징기법을 통해 비연속적 메모리를 연속적 메모리처럼 만들 수 있음


76. TCP 프로토콜과 관련한 설명으로 틀린 것은?

 ① 인접한 노드 사이의 프레임 전송 및 오류를 제어한다.

 흐름 제어(Flow Control)의 기능을 수행한다.

 전이 중(Full Duplex) 방식의 양방향 가상회선을 제공한다.

 전송 데이터와 응답 데이터를 함께 전송할 수 있다.

 

[해설] 데이터링크 계층

인접한 노드 사이의 프레임 전송 및 오류를 제어한다.


77. C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은?

 ① ㉠, , , , ,

 ② ㉠, , , , ,

 ③ ㉠, , , , ,

 ④ ㉠, , , , ,

 

[해설] 연산자의 우선순위

(높음) 증감 → 산술 → 시프트 → 관계 → 논리 → 조건 →대입 → 순서 (낮음)


78. C언어 라이브러리 중 stdlib.h에 대한설명으로 옳은 것은?

 문자열을 수치 데이터로 바꾸는 문자 변환함수와 수치를 문자열로 바꿔주는 변환함수 등이 있다.

 ② 문자열 처리 함수로 strlen()이 포함되어 있다.

 표준 입출력 라이브러리이다.

 삼각 함수, 제곱근, 지수 등 수학적인 함수를 내장하고 있다.

 

[해설] stdlib.h 라이브러리

- C 언어의 표준 라이브러리로, 문자열 변환, 사 난수 생성, 동적 메모리 관리 등의 함수들을 포함

- strlen() 함수 포함

** 표준 입출력 라이브러리는 stdio.h이며, 삼각 함수, 제곱근, 지수 등 수학적인 함수는 math.h에 내장


80. OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은?

 패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다.

 ② 한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.

 패킷에 발신지와 목적지의 논리 주소를 추가한다.

 라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다.

 

[해설] 데이터 링크 계층

한 노드에서 다른 노드로 프레임을 전송하는 책임을 갖는 계층

 

41. 병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법이 아닌 것은?

 라운드-로빈

 ② 범위 분할

 ③ 예측 분할

 ④ 해시 분할

 

[해설] 수평 분할

1. 범위 분할(range partitioning): 분할 키 값이 범위 내에 있는지 여부로 구분

2. 목록 분할(list partitioning): 값 목록에 파티션을 할당 분할 키 값을 그 목록에 비추어 파티션을 선택

3. 해시 분할(hash partitioning): 해시 함수의 값에 따라 파티션에 포함할지 여부를 결정

4. 합성 분할(composite partitioning): 상기 기술을 결합하는 것

29. 다음 설명의 소프트웨어 버전 관리도구 방식은?

 단일 저장소 방식

 ② 분산 저장소 방식

 공유폴더 방식

 ④ 클라이언트·서버 방식

 

 

[해설] 소프트웨어 버전 관리도구 방식

1. 분산 저장소 방식

   - 하나의 원격 저장소와 개발자 PC의 로컬 저장소에 저장    

   - 자신의 로컬 저장소로 복사해 작업, 로컬 저장소에서 우선 반영(commit) 그 후 원격 저장소에 반영(push)

   - 문제가 생겨도 로컬 저장소의 자료를 이용해 작업 가능

   - 로컬 저장소에서 작업 및 처리 속도 빠름

2. 공유 폴더 방식

   - 로컬 컴퓨터의 공유 폴더에 저장되어 관리

   - 공유폴더의 파일을 자기 pc로 복사 후 이상 유무 확인

3. 클라이언트/서버 방식

   - 중앙 시스템(서버)에 저장되어 관리 방식

   - 개발자별로 자신의 pc(클라이언트)로 복사

   - 모든 버전 관리는 서버에서 수행

   - 서버에 문제 생기면 다른 개발자 협업 및 버전 관리 작업 중단


37. 소프트웨어 패키징에 대한 설명으로 틀린 것은?

 ① 패키징은 개발자 중심으로 진행한다.

 신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징 한다.

 고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.

 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.

 

[해설] 소프트웨어 패키징

패키징은 사용자 중심으로 진행


40. 다음 중 스택을 이용한 연산과 거리가 먼 것은?

    ① 선택정렬

    재귀호출

    후위표현(Post-fix expression)의 연산

    깊이우선탐색

 

[해설] 선택 정렬

선택 정렬은 큐를 이용해서 정렬하는 방식

1. 시스템의 구성요소로 볼 수 없는 것은?

 Process  

 ② Feedback

 ③ Maintenance

 ④ Control

 

[해설] 시스템의 구성요소

1. 입력(Input)

2. 처리(Process)

3. 출력(Output)

4. 제어(Control)

5. 피드백(Feedback)


6. GoF (Gangs of Four) 디자인 패턴에 대한 설명으로 틀린 것은?

 factory method pattern은 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를

    생성하도록 하는 방식이다.

 prototype patternprototype을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조이다.

 ③ bridge pattern은 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰

    주는 역할을 한다.

 mediator pattern은 객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성하게 해준다.

 

[해설] Bridge Pattern

구현부에서 추상층을 분리하여 각자 독립적으로 확장을 가능하게 하는 패턴


9. 다음 설명에 해당하는 시스템으로 옳은 것은?

 연계 서버

 ② 중계 서버

 ③ 송신 시스템

 ④ 수신 시스템

 

[해설] 연계시스템 구성

1. 송신 시스템: 연계할 데이터를 DB와 어플리케이션으로부터 연계테이블 또는 파일 형태로 생성하여 송신

2. 수신 시스템: 수신한 연계테이블, 파일데이터를 수신시스템에서 관리하는 데이터 형식에 맞게 변환하여 DB에

                    저장하거나 애플리케이션에서 활용할 수 있도록 제공

3. 중계 서버: 송/수신 시스템 사이에서 데이터를 송수신하고, 연계데이터의 송수신 현황을 모니터링함, 연계데이터의

                 보안강화 및 다중플랫폼 지원 등이 가능


10. CASE(Computer-Aided Software Engineering)의 원천 기술이 아닌 것은?

 구조적 기법

 ② 프로토타이핑 기술

 정보 저장소 기술

 ④ 일괄처리 기술

 

[해설] CASE의 원천 기술

1. 구조적 기법

2. 프로토타이핑 기술

3. 자동 프로그래밍 기술

4. 정보 저장소 기술

5. 분산 처리 기술


12. 서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복되는 아키텍처 스타일은?

 클라이언트 서버 구조

 ② 계층 구조

 MVC 구조

 ④ 파이프 필터 구조

 

[해설] 아키텍처 스타일

1. 클라이언트 서버 구조 : 컴포넌트가 다른 컴포넌트에게 서비스를 요청. 데이터가 여러 컴포넌트를 거치며 처리

2. 계층구조 : 모듈들로 응집된 계층 단위로 SW를 구성. 계층간에 사용 가능의 관계로 표현

3. MVC 구조 : 모델-뷰-컨트롤러, 기능을 분리한 아키텍처

4. 파이프 필터 : 파이프를 통해 받은 데이터를 변경시키고 그 결과를 파이프로 전송


16. 다음 중 상위 CASE 도구가 지원하는 주요기능으로 볼 수 없는 것은?

 모델들 사이의 모순검사 기능

 ② 전체 소스코드 생성 기능

 모델의 오류검증 기능

 자료흐름도 작성 기능

 

[해설] 상위 CASE 도구 지원 기능

- 모델들 사이의 모순검사 기능

- 모델의 오류 검증 기능

- 자료흐름도 작성 기능

+ Recent posts