정보처리기사 실기

[TIL/정보처리기사 실기] 2024/03/25

✅ 5가지 쟁점 정리p.277 참고<37, 14, 17, 40, 35> => 선택(Selection) 정렬 + 오름차순 + 3회전 결과1회전: <14, 37, 17, 40, 35> -> <14, 37, 17, 40, 35> -> <14, 37, 1

2024년 3월 25일3min read

✅ 5가지 쟁점 정리

1. 정렬(sort) 🟢

p.277 참고

1. <37, 14, 17, 40, 35> => 선택(Selection) 정렬 + 오름차순 + 3회전 결과 - 1회전: <14, 37, 17, 40, 35> -> <14, 37, 17, 40, 35> -> <14, 37, 17, 40, 35> -> <14, 37, 17, 40, 35> - 2회전: <14, 17, 37, 40, 35> -> <14, 17, 37, 40, 35> -> <14, 17, 37, 40, 35> - 3회전: <14, 17, 37, 40, 35> -> <14, 17, 35, 40, 37>

2. <8, 3, 4, 9, 7> => 삽입(Insertion) 정렬 + 오름차순 + 1회전 결과 - 1회전: <8, 3, 4, 9, 7> -> <3, 8, 4, 9, 7>

3. <9, 6, 7, 3, 5> => 버블(Bubble) 정렬 + 오름차순 + 3회전 결과 - 1회전: <6, 9, 7, 3, 5> -> <6, 7, 9, 3, 5> -> <6, 7, 3, 9, 5> -> <6, 7, 3, 5, 9> - 2회전: <6, 7, 3, 5, 9> -> <6, 3, 7, 5, 9> -> <6, 3, 5, 7, 9> - 3회전: <3, 6, 5, 7, 9> -> <3, 5, 6, 7, 9>

4. 퀵 정렬(Quick Sort): 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방법으로, 키를 기준으로 작은 값은 왼쪽에, 큰 값은 오른쪽 서브 파일로 분해시키는 방식으로 정렬해 나가는 정렬 방식이다.

2. XML(eXtensible Markup Language) 🟢

p.297 참고

1. 웹 페이지의 기본 형식인 HTML의 문법이 각 웹 브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 XML(eXtensible Markup Language)은 다른 특수한 목적을 갖는 마크업 언어다. 원활한 데이터의 연계를 위해 송수신 시스템 간에 전송되는 데이터가 동일한 구조로 구성될 수 있도록 형태를 정의하는 역할을 수행한다.

2. HTTP, HTTPS, SMTP 등을 사용하여 xml 기반의 메세지를 네트워크 상에서 교환하는 프로토콜로, SOAP envelope, 헤더(header), 바디(body) 등이 추가된 xml 문서이다. SOAP(Simple Object Access Protocol)는 복잡하고 무거운 구조로 구성되어 있어 SOAP 보다는 restful 프로토콜을 이용하기도 한다.

3. 소프트웨어 아키텍처 🟢

1. 애플리케이션 개발 - 상위 설계에 해당하는 작업 - 인터페이스 설계, 아키텍처 설계

2. 컴포넌트 설계 시 협약(Contract)에 의한 설계를 따를 경우, 해당 명세에서는 (1)컴포넌트의 오퍼레이션 사용 전에 참이 되어야 할 선행 조건 (2)사용 후 만족되어야 할 결과 조건 (3)오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변조건 등이 포함되어야 한다.

3. 소프트웨어 아키텍처 설계 - 시스템 품질 속성 - 가용성, 변경 용이성, 사용성

4. 추상화(Abstraction): 문제의 전체적이고 포괄적인 개념을 설계한 후, 차례로 세분화하여 구체화시켜 나가는 것

5. 정보 은닉(Information Hiding): 다른 모듈이 모듈 내부의 절차와 자료들의 정보에 접근 및 변경하려는 것을 막기 위한 기법으로, 모듈을 독립적으로 수행할 수 있고, 하나의 모듈이 변경되더라도 다른 모듈에 영향을 주지 않으므로 수정, 시험, 유지보수가 용이한 소프트웨어 아키텍처 설계의 기본 원리 중 하나

4. 객체지향(Object-Oriented) 🟢

1. 클래스(Class): 객체지향 소프트웨어 공학에서 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하며, 데이터를 추상화하는 단위로 사용되는 객체지향의 구성 요소

2. 캡슐화(Encapsulation): 인터페이스가 단순화 된다, 소프트웨어 재사용성이 높아진다, 변경 발생 시 오류의 파급 효과가 적다, 정보 은닉과 관련이 있다

3. 집단화(Aggregation): 객체지향 기법에서 연관성(Relationship)을 나타내는 표현들 중 '부분-전체' 관계 또는 '부분' 관계로 설명되는 연관성

4. 상속(Inheritance): 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것을 의미함. 상속을 통해 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 사용할 수 있다.

5. 객체(Object): 실세계 또는 개념적으로 존재하는 세계의 사물들이다, 데이터를 가지며 이 데이터를 변경하는 함수를 가지고 있는 경우도 있다, 상호작용의 수단으로 메세지를 사용한다

6. 메세지(Message): 객체에게 어떤 행위를 하도록 지시하는 명령을 의미하는 객체지향의 구성 요소

5. 객체지향 분석 및 설계 🟢

1. Coad와 Yourdon 방법: 객체지향 분석 방법론 중 E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 기법

2. ISP: 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 객체지향 설계 원칙 중의 하나, 예를 들어 프린터, 팩스, 복사 기능을 가진 복합기의 경우 3가지 기능을 모두 가진 범용 인터페이스보다는 프린터 인터페이스, 팩스 인터페이스, 복사 인터페이스로 분리함으로써 하나의 기능 변경으로 인해 다른 기능이 영향을 받지 않도록 해야 한다.

3. 럼바우 데이터 모델링 - Function: 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링(ex. 자료흐름도(DFD))

- Dynamic: 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링(ex. 상태변화도(STD), 사건추적도)

- Information: 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링(ex. ER다이어그램(ERD))