김만두씨 이모저모

728x90

최근에 공부하고 있는 정보처리기사 내용을 정리 해 놓은 글 입니다.

저에게 필요한 부분을 각 블로그 및 스크랩 된 정보를 가지고 작성하였습니다.

정의 및 내용이 정보처리기사 문항과 의미가 다를 수 있으니 참고해주시기 바랍니다.

 

1. Xp 12가지 기본원리

  1. 짝 프로그래밍
  2. 공동 코드 소유
  3. 지속적인 통합
  4. 작은 릴리즈
  5. 메타포어
  6. 계획 세우기
  7. 간단한 디자인
  8. 테스트기반 개발 (TDD)
  9. 리펙토링
  10. 코드표준
  11. 고객상주
  12. 주당 40시간 작업

1)짝 프로그래밍 - 개발자 둘이서 짝으로 코딩한다.

2)공동 코드 소유 - 모든 코드는 개발자들이 소유하며 누구든지 수정 할 수 있다.

3)지속적인 통합 - 매번 여러번씩 소프트웨어를 통합하고 빌드한다.

4)작은 릴리즈-  작은 시스템을 만들고 짧은 단위로 업데이트 한다.

5)메타포어 - 공통적인 이름체계를 갖고 공통적인 시스템 서술서를 통하여 개발자와 고객 간의 의사소통을 돕는다.

6)계획 세우기 - 고객이 원하는 비즈니스 가치를 정의하고 개발자가 필요한것은 무엇이며 어떤 부분에서 지연 될 수 있는지 알려주어야 한다.

7)간단한 디자인 - 요구사항에 적합하고 가장 단순한 시스템을 만들어야한다.

8)테스트 기반 개발 - 작성해야 하는 프로그램에 대한 테스트를 먼저 수행한 다음 코드를 작성하고 테스트를 통과할 수 있도록 실제프로그램 코드를 작성해야한다.

9)리펙토링 - 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다.

10)코드표준 - 효과적인 작업을 위해 모든 코드에 대한 표준을 정의해야 한다.

11)고객상주 - 의사소통 향상을 위해 개발자들의 질문에 즉각 대답 가능한 고객을 프로젝트에 풀타임으로 상주시켜야한다.

12)주당 40시간 작업 - 주 40시간이상 일하지 말아햐 한다.

2. Xp 5가지 가치

  1. 단순성 -필요한 것만 하여 단순화 할 수 있다
  2. 의사소통 - 주체간의 원활한 의사소통이 필요하다
  3. 피드백 - 신속한 피드백을 할 수 있다.
  4. 존중 - 팀원 간의 상호 존중이 필요하다.
  5. 용기 - 용기를 가지고 자신있게 개발한다.

※단소피존용으로 외우면 좋습니다.

 

3. 디자인 패턴  GOF(23개)

생성 (5개) 구조(7개) 행위(11개)
추상팩토리(Abstract Fatory)
빌더(Builder)
팩토리 메서드(Factor methods)
프로토타입(Prototype)
싱글턴(Singleton)
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor

 

생성

 

Abstract Factory

- 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

- 동일한 주제의 다른 팩토리 묶음

 

Builder

-복잡한 인스턴스를 조힙하여 만드는 구조로, 복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리함으로써 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있는 디자인 패턴

-생성과 표기를 분리해서 복잡한 객체를 생성

 

Factory Method

-상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성하도록 하는 방식으로 상위클래스에서 인스턴스를 만드는 방법만 결정하고 하위 클래스에서 그 데이터의 생성을 책임지고 조작하는 함수들을 오버로딩하여 인터페이스와 실제 객체를 생성하는 클래스를 분히 할 수 있는 특성을 갖는 디자인 패턴

-생성할 객체의 클래스를 국한하지 않고 객체를 생성

 

Prototype

-처음부터 일반적인 원형을 만들어 놓고, 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴으로 생성할 객체의 원형을 제공하는 인스턴스에서 생성할 객체들의 타입이 결정되도록 설정하며 객체를 생성할 때 갖추어야 할 기본형태가 있을 때 사용되는 패턴

-기존 객체를 복제함으로써 객체를 생성

 

구조

 

Adapter

-기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

-인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
Bridge

-기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴

-구현뿐만 아니라, 추상화된 부분까지 변경해야 하는 경우 활용


Composite

-객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합객체 모두 동일하게 다루도록 하는 패턴

-복합 객체와 단일 객체를 동일하게 취급

 

Decorator

-기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴으로 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장 할 수 있게 해주어 상속의 대란으로 사용되는 디자인 패턴

-객체의 결합을 통해 기능을 동적으로 유현하게 확장

 

Facade

-복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자의 시스템간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴으로 오류에 대해서 단위별로 확인할 수 있게 하며, 사용자의 측면에서 단순한 인터페이스 제공을 통해 접근성을 높일 수 있는 디자인패턴

-통합된 인터페이스 제공


Flyweight

-다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화 하여 공유함으로써 메모리를 절약하고, '클래스의 경량화'를 목적으로 하는 디자인 패턴

-여러 개의 '가상 인스턴스'를 제공하여 메모리 절감


Proxy

-'실체 객체에 대한 대리 객체'로 실체 객체에 대한 접근 이전에 핑요한 행돌을 취할 수 있게 만들며, 이 점을 이용해서 미리 할당하지 않아도 상관없는 것들을 실제 이용할 때 할당하게 하여 메모리 용량을 아낄 수 있으며, 실체 객체를 드러나지 않게 하여 정보은닉의 역할도 수행하는 디자인 패턴

-특정 객체로의 접근을 제어하기 위한 용도로 사용

행위

 

Chain of Responsibility

-정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어 있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결할 디자인 패턴

-한 요청을 2개 이상의 객체에서 처리
Command

-실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴으로 하나의 추상 클레스에서 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징을 갖는 디자인 패턴

-요구사항을 객체로 캡슐화
Interpreter

-언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴

-문법 자체를 캡슐화하여 사용
Iterator

-컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근 할 방법을 제공하는 디자인 패턴

-내부구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근 가능하게 해주는 행위 패턴
Mediator

-객체지향 설계에서 객체의 수가 너무 많아지면 서로 간 통신을 위해 복잡해져서 객체지향에서 가장 중요한 느스한 결합의 특성을 해칠 수 있기 때문에 이를 해결하는 방법으로 중간에 이를 통제하고 지시 할 수 있는 역할을 하는 중재자를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체지향의 목표를 달성하게 해주는 디자인 패턴

-상호작용의 유연한 변경을 지원
Memento

-클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 디자인 패턴 undo기능을 개발할 때 사용하는 디자인 패턴

-객체를 이전상태로 복구시켜야 하는 경우 '작업취소(Undo)'요청 기능
Observer

- 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법으로 일대 다의 의존성을 가지며 상호작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인 패턴

-객체의 상태 변화에 따라 다른 객체의 상태도 연동, 일대다 의존
State

-객체 상태를 갭슐화하여 클래스함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리할 수 있도록 행위 내용을 변경하여, 변경 시 원시코드의 수정을 최소화할 수 있고, 유지보수의 편의성도 갖는 디자인 패턴

-객체의 상태에 따라 행위 내용을 변경
Strategy

-알고리즘 군을 정의하고(추상클래스) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음, 필요할 때 서로 교환해서 사용하러 수 있게 하는 패턴으로, 행위 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디자인 패턴

-행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
Template Method

-어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해서 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴으로 일반적으로 상위클래스(추상클래스)에는 추상메서드를 통해 기능을 골격을 제공하고, 하위클래스(구체클래스)의 메서드에는 세부 처리를 구체화하는 방식으로 사용하며 코드양을 줄이고 유지보수를 용이하게 만드는 특징을 갖는 디자인 패턴

-상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업의 일부분을 수행
Visitor

-각 클래스 데이터 구조로부터 처리 기능을 부니하여 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴

-특정 구조를 이루는 복합객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위

 

4. 결합도가 강->약

내용 -> 공통->외부->제어->스탬프->데이터(자료)-> 메시지

content -> common -> extermal -> control -> stamp -> data-> message

5. 응집도가 강->약

기능적->순차적->통신/교환적->절차적->시간적->논리적->우연적

Functional->sequential->communcation->procedual->temporal->logic->coincide

 

6 네트워크 장비 종류 (OSI 7계층과 연계해서 공부)

  • Gateway
  • Router
  • Repeater
  • Switch
  • Hub
  • Nic

1)Gateway

-네트워크 계층에서 작동한다.

-종류가 다른 두개 이상의 네트워크를 상호 접속하여 정보를 주고 받을 수 있는 장치

-프로토콜이 전혀 다른 네트워크 간 연결하며 세션계층,표현계층,응용계층 간을 연결해 메시지형식 변환,주소형식 변환 프로토콜 변환등의 기능을 수행한다.

2)Router

-네트워크 계층에서 작동한다.

-IP주소 등 레이어3에 있는 주소를 참조하여 목적지와 연결되는 포트로 패킷을 전송한다.

-동일한 프로토콜을 사용하는 네트워크 연결하는 장치로 데이터링크에서 사용하는 브릿지와 역할이 비슷하다.

3)Repeater

-물리계층에서만 작동한다.

-네트워크 선로를 통해 전달되는 신호를 증폭하여 네트워크로 전송하는 장치

-전자기, 광학 전송 매체상에서 신호를 수신하고, 증폭하며 매체의 다음구간으로 재전송시키는 장치

4)Switch

-데이터 링크계층에 작동한다.

-MAC주소와 포트번호가 기록된 MAC주소 테이블을 가지고 있어, 목적지 MAC 주소를 가진 장비가 연결된 포트만 프레임 전송

-네트워크를 작게 분할해 정체가 되는 구역을 줄여주는 장치

5)Hub

-물리계층에서만 작동한다.

-전기적인 신호를 증폭시켜 LAN의 전송거리 연장

-하나의 네트워크 안에서 여러장치등을 연결해주는 기능을 한다.

6)Nic(네트워크 인터페이스 카드)

-컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치로 정보전송시 정보가 케이블을 통해 전송될 수 있도록 정보형태를 변경한다.

 

7. UI설계 원칙

  • 직관성 : 누구나 쉽게 이해할수 있어야함
  • 유효성 : 사용자의 목적 달성해야함
  • 학습성 : 쉽게 배울 수 있어야함
  • 유연성 : 사용자의 요구사항을 최대한 수용하며 오류의 최소화

8. 페르소나

-잠재적 사용자의 다양한 목적과 관찰된 행동패턴을 응집시켜 놓은 가상의 사용자

 

9. REST정의

-자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

HTTP URI를 통해 자원을 명시하고, HTTP method(post,get,put,delete)를 통해 해당 자원에 대한 CRUD operation을 적용하는 것

 

10. 암호화 알고리즘

SHA

-미국 NSA 미국국립표준으로 제작한 해시 암호알고리즘

RSA

-대표적인 비대칭키 암호화 방식

AES

-대칭키라는 임의 키를 만들어서 암호화하고자 하는 "문자열"을 대칭키라는 키로 암호화

 

11. 화이트박스 테스트 & 블랙 박스 테스트

 

블랙박스 테스트

-소프트웨어의 내부구조아 작동원리를 모르는 상태에서 동작을 검사하는 방식

  • 동등분할 기법
  • 경계값 분석 기법
  • 오류예측 기법
  • 원인 결과 그래프 기법
  • 의사결정 테이블 테스팅
  • 상태전이 테스팅

화이트박스 테스트

-응용프로그램 내부구조, 동작을 디테일하게 검사하는 방식

-사용자가 들여다 볼 수 없는 구간의 코드 단위들을 테스트 할 수 있다.

  • 문장검증
  • 선택검증
  • 경로검증
  • 조건검증

12. 통합테스트

빅뱅 테스트(비점진적 통합방식)

-모든 모듈이 결합된 프로그램 전체가 대상

 

상향식/하샹식 테스트(점진적)

-단계적으로 통합 테스트

 

샌드위치 테스트 (혼합식 테스트)

-상향식과 하향식 장정을 혼합 사용

-스텁(Stub)과 드라이버(Driver) 필요성이 매우 높은 방식 비용이 많이 들음

 

회귀시험

-수정한 부분이 소프트웨어의 다른 부분에 영향을 미치는지 테스트하여 소프트웨어 수정이 새로운 오류를 발생시키지 않았는지 확인하기 위한

 

 

-밑에는 제가 다운받아서 이용한 모의고사 시험지입니다.

문제가 될시 삭제 하도록 하겠습니다.

출처 :빵야 모의고사 1회 문제지 및 답안지

(참고)모의고사 1회 5번 답 잘못됨.txt
0.00MB
빵야 정보처리기사 실기 모의고사 1회 정답 .pdf
0.03MB
빵야 정보처리기사 실기 모의고사 1회.pdf
0.07MB

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading