카테고리 보관물: 4. 스터디/자격증

정보처리기사 자격증 문제풀이 (1)

정보처리기사 자격증을 위해서 2020년 개정 이후의 기출 문제를 주마다 풀어보겠습니다. 이번 주는 2020.06.06의 기출 문제 중 1과목(20문제)을 풀어봤습니다.

1과목 : 소프트웨어 설계 (20문제)

1. 요구 사항 검토 방법

  • 동료 검토 : 작성자가 명세서 내용 설명 동료들이 결함 발견하는 형태
  • 워크 스루 : 검토 회의 전 명세서를 미리 배포하여 사전 검토 후 짧은 검토 회의를 통해 오류 조기 검출
  • 인스펙션  : 명세서 작성자를 제외한 다른 검토 전문가들이 확인하면서 결함을 발견하는 형태

2. 일련번호를 부여하는 방식

  • 연상 코드: 항목의 명칭이나 약호와 관계 있는 숫자, 문자, 기호를 이용하여 코드를 부여하는 방법
  • 블록 코드: 대상 항목에서 공통적인 것을 블록으로 구분하고 블록 내에 일련 번호를 부여하는 방법
  • 순차 코드: 일정 기준에 따라 최초의 자료부터 일련번호를 부여하는 방법
  • 표의 숫자 코드: 길이 넓이 부피 등 항목의 성질의 물리적인 수치를 그대로 코드에 적용시키는 방법

3. 객체지향 프로그램에서 데이터를 추상화하는 단위

= 클래스

4. 데이터 흐름도(DFD)의 구성요소

  • 프로세스(Process), 자료 흐름(Flow), 자료 저장소(Data Store), 단말(Terminal)

5. 성능특성 분석에 사용되는 측정 항목

  • 경과시간(Turnaround TIme)
  • 사용률(Utilization)
  • 응답시간(Response TIme)
  • 가용성(Availability)

6. UML 확장 모델에서 스테레오 타입 객체를 표현하는 기호

= << >>

7. GoF(Gang of Four)의 디자인 패턴에서 행위 패턴에 속하는 것

  •  Builder : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체를 생성한다
  • Visitor : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성한다
  • Prototype : 원본 객체를 복제하는 방법으로 객체를 생성한다.
  • Bridge : 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한다.
생성패턴 : 객체의 생성과 관련된 패턴
구조패턴 : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
행위패턴 : 클래스나 객체들이 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

Builder , Prototype - 생성패턴
, Bridge - 구조패턴

8. 자료 사전에서의 기호

정의 =
구성,연결 +
반복 { }
주석 **
선택 [ㅣ]
생략 ( )

9. 데이터를 감시하고 제어하는 미들웨어

  • TP monitor: 트랜잭션 처리를 감시/제어하는 미들웨어
  • ORB: object request broker, 객체 간 메시지 전달을 지원하는 미들웨어
  • RPC: remote procedure call 원격 절차 호출 또는 원격 프로시저 호출

10. UI 설계 원칙

  • 직관성 : 누구나 쉽게 이용하고 쉽게 사용할 수 있어야 함
  • 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
  • 학습성 : 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
  • 유연성 : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

11. XP(eXtreme Programming)의 5가지 가치

  • 용기(Courage) : 고객의 요구사항 변화에 능동적인 대처
  • 단순성(Simplicity) : 부가적 기능, 사용되지 않는 구조와 알고리즘 배제
  • 커뮤니케이션(Communication) : 개발자, 관리자, 고객 간의 원활한 의사소통
  • 피드백(Feedback) : 지속적인 테스트와 반복적 결함 수정, 빠른 피드백
  • 존중(Respect) : 모든 프로젝트 관리자는 팀원의 기여를 존중

12. UML 모델에서 사용하는 구조 다이어그램(Structural Diagram)

  • 구조 다이어그램은 클래스(Class), 객체(object), 복합체 구조(Composite Structure), 배치(Deployment), 컴포넌트(Component), 패키지(Package) 다이어그램이 포함

13. 소프트웨어 개발 방법 중 요구사항 분석

  • 비용과 일정에 대한 제약설정
  • 타당성 조사
  • 요구사항 정의 문서화

14. 럼바우(Rumbaugh)의 객체지향 분석 절차

  • 객체 모델링 ➔ 동적 모델링 ➔ 기능 모델링

15. 공통 모듈에 대한 명세 기법

- 정확성 : 해당 기능이 실제 시스템 구현시 필요 유무를 알 수 있도록 정확하게 작성
- 명확성 : 해당 기능에 대해 일관되게 이해하고 한가지로 해석될 수 있도록 작성
- 완전성 : 시스템이 구현될 때 필요하고 요구되는 모든 것을 기술
- 일관성 : 공통 기능 간에 상호 충돌이 없도록 작성
- 추적성 : 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관계에 대한 식별이 가능하도록 작성

16. 객체지향 기법의 관계 용어

  • 집단화 (is part of): 클래스 간의 구조적인 집약 관계 “클래스 A는 클래스 B와 클래스 C로 구성된다”
  • 일반화 (is a) :클래스들 간의 개념적인 포함 관계  “자식 클래스 A는 부모 클래스 B의 일종이다.”
  • 캡슐화 : 속성 (데이터)과 메소드(연산) 을 하나로 묶어서 객체로 구성된다.
  • 추상화 : 공통 성질을 추출하여 수퍼클래스로 구성한다. 또한 객체 중심의 안정된 모델을 구축 가능 하며 현실 세계를 자연스럽게 표현한다. 장점으로 분석의 초점이 명확해진다.

17. CASE가 갖고 있는 주요 기능

1. S/W의 생명주기 전(모든)단계의 연결
2. 모델들 사이의 모순검사
3. 오류검증
4. 자료흐름도 등 다이어그램 작성
5. 다양한 소프트웨어 개발 모형지원
6. 시스템 문서화 및 명세화를 위한 그래픽 지원

18. DBMS 분석시 고려사항

1. 무결성(가용성)
2. 일관성(상호호환성)
3. 회복
4. 보안
5. 효율성(성능)
6. 데이터베이스 확장

19. HIPO(Hierarchy Input Process Output)에 대한 설명

  • 하향식 소프트웨어 개발을 위한 문서화 도구이다.
  • HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.
  • 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
  • 보기 쉽고 이해하기 쉽다.

20. 객체지향 분석 방법론 중 E-R 다이어그램을 사용하는 방법

  • Coad 와 Yourdon 방법: E-R다이어그램 사용 객체 행위 모델링 및 객체 구조 식별 및 주체 속성 및 관계 서비스 정의
  • Booch 방법: 클래스와 객체 식별 및 의미 관계 식별
  • 럼바우(Rumbaugh) 기법: 소프트웨어 구성요소를 그래픽 표기법을 이용하여 모델링 / 객체모델링 동적 모델링 기능 모델링

RSA 암호알고리즘

  1. RSA와 소인수분해
  2. DES와 RSA의 암호화/복호화 비교
  3. RSA 암호화 알고리즘 실습

1. RSA와 소인수분해

RSA 암호체계의 안정성은 큰 숫자를 소인수분해 하는 것이 어렵다는 것에 기반을 두고 있다.

어떤 두 개의 소수 p=7, q=11을 잡고 pq를 계산하는 거는 어렵지 않다. 77 또한 숫자를
소인수분해 하는 것 또한 쉽다. 하지만 9735 이렇게 큰 수도 시간이 걸리지만 할 수 있지만

이렇게 큰 수는 1993년 8월부터 1600대의 컴퓨터를 사용하여 8개월이란 시간이 걸려서
소인수분해를 완료하였다. pq를 곱하는 것은 컴퓨터를 활용하면 1초도 안 걸리지만,
역으로 하게 되면 엄청난 시간이 소요된다.

이렇게 소인수분해의 어려움 n=pq로 소인수분해 될 때 p, q를 구하는 소요시간이 많이 필요하여 이를 암호로 사용하는 알고리즘이 바로 RSA 알고리즘이고, 소수가 무한하기에 RSA 앞에 숫자를 붙여준다.

위의 92자리 숫자를 이진법으로 고치면 129자리가 되고 이 문제를 RSA –129 문제라고 한다.

2. DES와 RSA의 암호화/복호화 비교

출처 : Naver Blog

3. RSA 암호화 알고리즘 실습

  1. genrsa 명령어를 사용하여 비밀키(private.pem)를 생성한다.
  2. rsa 명령어를 사용하여 공개키(public.pem)를 생성한다.
  3. 공개키 암호화를 위한 파일을 생성한다.
  4. 공개키를 사용하여 파일을 암호화한다.
  5. 개인키를 사용하여 파일을 복호화한다.
RSA 2048 비밀키 생성
RSA 2048 비밀키
공개키생성
공개키 암호화를 위한 파일 생성
공개키를 이용하여 파일 암호화 및 암호화 파일 확인
개인키를 이용하여 파일 복호화 및 복호화 파일 확인

중간고사를 준비하며 배웠던 내용에서 추가적으로 공부하며 글을 작성하였습니다.
다음 글의 주제는 WebPage 입니다. 홍보 포스터 업로드와 사진, 글 등 블로그 형식의
WebPage 제작 예정입니다.