본문 바로가기
휴지통/정보처리기사

오답노트 03

by 신재권 2022. 2. 11.

디자인 패턴

  1. Visitor (방문자)패턴 <행위패턴>
  • 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성함. 분리된 처리 기능은 각 클래스를 방문하여 수행2.Observer 패턴 <행위패턴>
  • 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달 분산된 시스템 간에 이벤트 생성, 발행 (Publish), 이를 수신(Subscribe) 해야 할 때 이용
  1. Factory Method 패턴
  • 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정하도록 하는 것
  • Virtual-Constructor 패턴이라고도 함
  1. Bridge 패턴 <구조 패턴>
  • 구현부에서 추상층을 분리, 서로가 독립적으로 확장함 기능과 구현을 두 개의 별도 클래스로 구현함

GoF(Gangs of Four) 디자인 패턴

  • 생성 패턴
    • 추상 팩토리 패턴 : 동일한 주제의 다른 팩토리를 묶어준다.
    • 빌더 패턴 : 생성(construction)과 표기(representation)를 분리해 복잡한 객체를 생성
    • 싱글턴 패턴 : 한 클래스에 한 객체만 존재하도록 제한
    • 프로토타입 패턴
    • 팩토리메서드 패턴
  • 구조 패턴
    • 어댑터 패턴 : 인터페이스가 호환되지 않는 클래스를 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다.
    • 브리지 패턴
    • 컴포지트 패턴
    • 데코레이터 패턴
    • 파사드 패턴
    • 플라이웨이트 패턴
    • 프록시 패턴
  • 행위 패턴
    • 책임 연쇄 패턴
    • 커맨드 패턴
    • 인터프리터 패턴
    • 이터레이터 패턴
    • 중재자 패턴
    • 메멘토 패턴
    • 옵서버 패턴
    • 상태 패턴
    • 전략 패턴
    • 템플릿 메서드 패턴
    • 방문자 패턴

UML 모델 관계

Dependency(의존) : 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치닌 것을 말함(Cascade) 등급 → 할인율

Realization(실체화) : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정 ex) 비행기, 새 → 날수있다.

Generalization(일반화) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관계를 말함(Is- a ) 관계 아메리카노, 카페라떼 → 커피

Association(연관) : 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말함 (has - a)관계 사람 → 빵

시퀀스 다이어그램

동적 다이어그램

객체지향 분석

소프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분등으로 나누어 분석하는 기법

정렬

선택정렬 : O(N^2)

삽입정렬 : O(N^2)

버블정렬 : O(N^2)

합병정렬 : O(Nlog2N)

정적 분석 도구

pmd : 코드 결함 분석

checkstyle : java 코드 표준 준수 검사

cppcheck : c/c++ 오버플로우 검사

인터페이스 구현 검증 도구

xUnit : Java, C++등 다양한 언어를 지원하는 단위 테스트 프레임워크

STAF : 서비스 호출 및 컴포넌트 재사용 등 환경을 지원하는 테스트 프레임워크

FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 네이버의 테스트 자동화 프레임워크

Selenium : 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크

Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크

Ruby : 인터프리터 방식의 객체 지향 스크립트 언어

테스트 드라이버

시험 대상 모듈을 호출하는 간이 소프트웨어

필요에 따라 매개변수를 전달하고 모듈을 수행한 후의 결과를 보여줄 수 있음

상향식 통합 테스트에서 사용

테스트 스텁

제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구

하향식 테스트에 사용됨

자료구조

선형구조 : 리스트, 스택, 큐, 덱

비선형 구조 : 트리, 그래프

파일구조 : 순차파일, 색인파일, 직접파일

순회

Preorder : Root → Left → Right (전위)

Inorder : Left → Root → Right (중위)

Postorder : Left → Right → Root (후위)

블랙박스 테스트

동치 분할 검사

경계값 분석

원인 - 효과 그래프 검사

오류 예측 검사

비교 검사

화이스박스 테스트

기초 경로 검사, 조건 검사, 루프 검사, 데이터 흐름 검사

해싱함수

폴딩법 : 해싱함수 중 레코드 키를 여러부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용

제산법 : 레코드르키를 해시표로 나눈 나머지를 홈 주소로 사용

기수 변환법 : 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수 절단, 다시 주소 범위에 맞게 조정

숫자 분석법 : 키 값을 이루나 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택

무결성(Integrity Rule)

개체 무결성 : 모든 테이블이 기본키로 선택된 컬럼을 가져야 함 → Null아닌 원자값을 가짐

참조 무결성 : 참조 관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지하는 것을 말함

도메인 무결성 : 테이블에 존재하는 필드의 무결성을 보장하기 위한 것(올바른 데이터 입력)

무결성 규칙 : db에서 무결성 규칙은 데이터 무결성을 지키기 위한 모든 제약사항

비즈니스 규칙 : 데이터베이스 유저들마다 각각 다르게 적용

카디널리티, 차수

카디널리티 : 튜플의 수 (행의 개수)

차수 : 속성의수 (열의 개수) :

로킹

로킹 단위 큼 → 로크의 수가 적어짐 → 병행성 수준 낮아짐, 병행 제어 기법 간단해짐

로킹 단위가 작음 → 로크의 수가 많아짐

관계 대수

관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는 가를 기술하는 절차적 언어

회복

트랜잭션 도중에 손상된 데이터베이스를 이전 상태로 복귀하는 작업

  • 즉각 갱신 기법
    • 트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터베이스에 반영하는 기법
    • 갱신한 모든 내용을 로그에 보관
  • 연기 갱신 기법
    • 트랜잭션을 완료할 때까지 데이터베이스에 갱신을 연기하는 기법
    • 트랜잭션 수행으로 갱신할 내용은 로그에 보관
  • 검사적 기법
    • 트랜잭션 중간에 검사점을 로그에 보관하여 트랜잭션 전체를 취소하지 않고 검사점 까지 취소할 수 있는 기법
  • 그림자 페이지 대체 기법 - 로그 x
    • 트랜잭션의 연산으로 갱신할 필요가 있을 때 복사본인 그림자 페이지를 보관하는 기법
    • 트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복

정규화

1NF(도) - 2NF(부) -3NF(이) -BCNF(결) - 4NF(다) - 5NF(조)

도부이결다줘 = 두부이걸다줘?

UNIX SHELL - 환경변수

printenv

env

setenv

First Fit 기억장치 배치 전력

들어갈수있는 공간 중 가장 처음 만나는 공간에 넣은 후 남은 용량 = 내부 단편화 크기

SSTF

Shortest seek time first

이동거리가 가까운 순으로

결합도

내용 결합도 > 공통 결합도 > 외부 결합도 > 제어 결합도 > 스탬프 결합도 > 자료 결합도

내공외제스자

응집도

우연적(Coincidental) 응집도 < 논리적(Logical)응집도 < 시간적(Temporal)응집도 < 절차적(Precedural)응집도 < 교환적(Communication) 응집도 < 순차적(Sequential) 응집도 < 기능적(Functional) 응집도

MBR

Memory Buffer Register

기억 장치를 출입하는 데이터가 잠시 기억되는 레지스터

NAC

Network Access Control

PC의 MAC주소를 IP관리 시스템에 등록, 일관된 보안 관리 기능을 제공

NIC

물리계층과 데이터 계층의 서비스를 제공

SAN

네트워크 상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능을 활용

각기 다른 운영체제를 가진 여러 기종들이 네트워크 상에서 동일 저장장치의 데이터를 공유하게 함으로써, 여러 개의 저장장치나 백업 장비를 단일화 시킨 시스템

Tripwire

리눅스 시스템을 외부의 크래커 공격과 내부의 악의적인 사용자의 공격으로부터 시스템을 지켜내는 마지노선과 같은 역할을 하는 프로그램

MQTT

메세지 큐잉 텔레메트리

사물 통신, 사물인터넷과 같이 대역폭이 제한된 통신 환경에 최적화하여 개발된 푸시기술 기반의 경량 메시지 전송 프로토콜

메시지 매개자(Broker)를 통해 송신자가 특성 메시지를 발행하고 수신자가 메시지를 구독하는 방식

IBM이 주도하여 개발

Smuring

IP나 ICMP의 특성을 악용해 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크 불능 상태로 만드는 공격 방법

접근 통제 정책

임의적 접근 통제(DAC)

강제적 접근 통제정책(MAC)

역할기반 접근통제정책(RBAC)

VLAN

물리적 배치와 상관없이 논리적으로 LAN을 구성하여 Broadcast Domain을 구분할 수 있게 해주는 기술로 접속된 장비들의 성능 향상 및 보안성 증대 효과

DDos

네트워크 취약점이 있는 호스트들을 탐색한 후 이를 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트로 만든 후 DDos공격에 이용

Trin00

TFN(Tribe Flooding Network)

TFN2K

Stacheldraht

하둡(Hadoop)

오픈소스를 기반으로 한 분산 컴퓨팅 플랫폼

일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성

다양한 소스를 통해 생성된 빅데이터를 효율적으로 저장하고 처리

RSA

소인수 분해 문제, 공개키 암호화 기법

합성 중심 - 재사용 방법

전자칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 함

테일러링(Tailoring) 개발 방법론

프로젝트 상황 특성에 맞게 정의된 소프트웨어 개발 방법론 절차, 사용 기법등을 수정 및 보완하는 작업

내부적 요건 : 목표환경/요구사항/프로젝트규모/보유기술

외부적 요건 : 법적 제약사항/표준 품질 기준

맵리듀스(MapReduce)

맵(Map) : 데이터가 텍스트 형태로 입력되면 64KB분할, 텍스트 안에 단어를 분류하여 카운트

리듀스(reduce) :각 테스트에서 정리된 맵들을 결합하여 동일한 단어를 카운트

'휴지통 > 정보처리기사' 카테고리의 다른 글

오답노트 05  (0) 2022.02.23
오답노트 04  (0) 2022.02.12
오답노트 02  (0) 2022.02.08
오답노트 01  (0) 2022.02.07
016. UI 프로토타입 제작 및 검토  (0) 2022.01.02