Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Joon's Space

정보처리기사 기출문제 정리 본문

정보처리기사

정보처리기사 기출문제 정리

Happy Joon 2022. 10. 20. 15:06

2020년 1회

릴리즈 노트 작성 항목

  • 머릿말/헤더 - 릴리즈 노트 이름, 제품이름, 버전번호, 릴리즈 일자, 노트 버전
  • 개요 - 제품 및 변경에 대한 간략한 개요
  • 목적 - 릴리즈 노트의 목적에 대한 간략한 개요
  • 이슈 요약 - 버그의 간단한 설명 및 릴리즈 노트 추가 항목 요약
  • 재현 항목 - 버그 내용 및 버그 재현 항목 작성
  • 개선 내용 - 개선사항에 대한 간단한 설명
  • 사용자 영향도 - 버전 변경에 따른 최종 사용자 기준의 기능 및 영향도 설명
  • 소프트웨어 지원 영향도 - 버전 변경에 따른 소프트웨어 지원 프로세스 및 영향도 기술
  • 노트 - 소프트웨어 , 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드
  • 면책 조항 - 회사 표준 제품과 관련한 메시지, 불법 복제 방지 등 고지사항

어플리케이션 성능 측정 요소

  • 처리량(Throughput) - 주어진 시간에 최대한 많은 작업 처리
  • 경과시간(Turnaround time) - 전체작업 수행시간을 최소화
  • 대기시간(Waiting time) - 준비 큐에서 기다리는 시간 최소화
  • 응답시간(Response time) - 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
  • 자원 사용률(Utilization) - 단위 시간당 작업을 수행하는 총 시간 비율

소프트웨어 테스트의 기본 7원칙

  • 테스팅은 결함이 존재함을 밝히는 활동이다.
  • 완벽한 테스팅은 불가능하다.
  • 테스팅은 개발 초기에 시작해야한다.
  • 결합 집중(Defect Clustering) - 파레토법칙, 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어있다.
  • 살충제 패러독스(Pesticide Paradox) - 동일한 테스트 케이스로 반복하면 더 이상 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야한다.
  • 테스팅은 정황(Context)에 의존한다. - 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행 하여야 한다.
  • 오류 - 부재의 궤변(Absence of Errors Fallacy) - 이 세상에 어떠한 소프트웨어도 오류가 완벽하게 해소된 제품을 만들어 낼 수 음을 의미

데이터 마이닝(Data Mining)

데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기위한 기법.

2020년 2회

재해복구 용어

  • DR(Disaster Recovery) - 정보시스템에 대한 비상 대비 체제 유지와 복구 계획
  • BR(Business Recovery) - 기업의 연속성을 위한 핵심 업무 등을 복구하기 위한 개념
  • RA(Risk Analysis) - 재해복구 시스템의 BIA를 수행하기 위해 재해 위험 요인 분석 기법
  • BIA(Business Impact Analysis) - 재해 발생시 영향을 미칠 수 있는 단위업무를 정의하고, 업무 중단 영향에 대한 정량적, 정성적 분석을 통해 복구 우선순위를 도출하는 과정
    • RSO(Recovery Scope Objective)
    • RPO(Recovery Point Objective)
    • RTO(Recovery Time Objective)
    • RCO(Recovery Communication Objective)
    • BCO(Backup Center Objective)

AJAX(Asynchronous JavaScript And XML)

브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부분만을 위한 데이터를 로드하는 기법, 하이퍼 텍스트 표기언어(HTML)만으로 어려운 다양한 작업을 웹 페이지에서 구현해 이용자가 웹 페이지와 자유롭게 상호작용 할 수 있도록 하는 기술.

Agile(애자일) 방법론

절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 일정한 주기를 반복하면서 개발하는 방법론.

  • XP
  • SCRUM
  • RUP
  • Crystal
  • FDD
  • ASD
  • LEAN

IPSec(Internet Protocol Security)

IP 프로토콜 수준의 보안 서비스를 목적으로 L3 계층에서 인증 및 암호화를 제공하는 통신규약.

테스트 자동화 도구

사람이 반복적으로 수행하던 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용함으로써 쉽고 효율적으로 테스트를 수행할 수 있도록 한 것.

  • 정적 분석 도구 - 프로그램을 실행하지 않고 분석하는 도구
  • 테스트 실행 도구 - 스크립트 언어를 사용하여 테스트를 실행하는 도구
  • 성능 테스트 도구 - 가상의 사용자를 만들어 테스트를 수행함으로써 성능 목표 달성 여부를 확인하는 도구
  • 테스트 통제 도구 - 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
  • 테스트 하네스 도구 - 테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트 되도록 하는 도구
    • 드라이버 - 하위 모듈 호출
    • 스텁 - 상위 모듈 호출
    • 슈트 - 컴포넌트나 모듈, 테스트 케이스의 집합
    • 케이스 - 테스트 항목 명세서
    • 스크립트 - 자동화 테스트 실행 절차 명세서
    • 목 오브젝트 - 행위를 조건부로 입력, 그 상황에 맞게 행위 수행하는 객체

디자인 패턴

소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴.

디자인 패턴의 3가지 유형 : 생성(Creation), 구조(Structural), 행위(Behavioral)

  • 생성 패턴
    • Abstract Factory(추상 팩토리) : 동일한 주제의 다른 팩토리를 묶음
    • Builder(빌더) : 복잡한 인스턴스를 조립해서 만드는 구조
    • Factory Method(팩토리 메소드) : 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
    • Prototype(프로토타입) : 처음부터 일반적인 원형을 만들어 놓고 그것을 복사한 후 필요한 부분만 수정해서 사용하는 패턴
    • Singleton(싱글톤) : 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디서든지 참조할 수 있도록함, 한 클래스에 한 객체만 존재하도록 제한.
  • 구조 패턴
    • Adapter(어댑터) : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴
    • Bridge(브릿지) : 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
    • Composite(컴포지트) : 객체들의 관계를 트리 구조를 구성하여 부분-전체계층을 표현하는 패턴
    • Decorator(데코레이터) : 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴
    • Facade(퍼싸드) : 복잡한 시스템에 단순한 인터페이스를 제공함으로써 사용자의 시스템 간 또는 다른 시스템과의 결합도록 낮추어 시스템 구조에 대한 파악이 쉬움.
    • Flyweight(플라이웨이트) : 다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리를 절약하고 클래스의 경량화를 목적으로 하는 디자인 패턴
    • Proxy(프록시) : 객체접근을 제어하려는 목적으로 인터페이스 역할을 하는 객체를 사용하여 제어하는 패턴
  • 행위 패턴
    • Template Method(템플릿 메소드) : 상위 클래스에는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴
    • Interpreter(인터프리터) : 언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성해 여러 형태의 언어 구문을 해석할 수 있게 만드는 패턴
    • Iterator(이터레이터) : 내부 구조를 노출하지 않고, 순차적으로 접근하는 구조를 제공하는 패턴
    • Command(커맨드) : 요청자체를 캡슐화하고 매개변수를 추가하여 여러가지 요구사항을 추가할 수 있는 패턴
    • Chain of Responsibility : 요청을 처리할 수 있는 기회를 하나 이상의 객체에 부여함으로써 객체 간의 결합도를 없애려는 패턴
    • State(상태) : 객체 상태를 캡슐화하여 그 상태에 따른 행동들을 분리한 패턴
    • Strategy(전략): 상화아에 따라 알고리즘이 변경할 필요가 있을 때, 각 알고리즘 클래스들을 공통된 인터페이스에 맞게 구현하여 다형성을 활용하는 패턴
    • Mediator(중재자) : 중재자를 통해 한 집합에 속해있는 객체들의 상호작용을 캡슐화하는 패턴
    • Memento : 어떤 시점에서의 객체 상태를 저장해 두었다가 필요 시 객체를 그 시점의 상태로 돌리는 패턴(Undo 기능을 개발할 때 사용)
    • Visitor(방문자) : 데이터 구조를 돌아다니는 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만든 패턴.
    • Observer(옵저버) : 어떤 클래스에 변화가 생겼을 떄, 이를 감지하여 다른 클래스에게 통보해주는 것.

안드로이드(Android)

구글이 공개한 개방형 운영 체제로 리눅스의 커널 위에서 동작하며, 자바와 코틀린으로 애플리케이션을 작성하며 휴대용 장치에서 주로 사용된다.

SOAP(Simple Object Access Protocol, 단순 객체 접근 프로토콜)

XML과 HTTP 통신을 기반으로 하여 네트워크 상에 존재하는 각종 컴포넌트 간 호출을 효율적으로 실현하기 위한 방법을 제시하는 규약.

UI 설계 원칙

  • 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야한다.
  • 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
  • 유연성 : 사용자의 요구사항을 최대한 수용하며, 오류를 최소화 하여야 한다.
  • 유효성 : 사용자의 목적을 정확하게 달성하여야 한다.

LOD(Linked Open Data, 개방형 링크드 데이터)

웹 상에 존재하는 데이터를 개별 URI(Uniform Resource Identifier)로 식별하고, 각 URI에 링크 정보를 부여하여 상호 연결된 웹을 지향하는 모델.

데이터베이스 설계 순서

요구사항 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 데이터베이스 구축

소프트웨어 형상 관리

개발 과정의 변화되는 사항을 관리하는 것으로 소프트웨어의 생산물을 확인하고 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 관리작업.

2020년 3회

형상관리 절차(식통감기)

  • 현상관리 식별 - 형상관리 대상들을 구분하고, 관리 목록에 대한 번호를 부여하는 단계
  • 형상 통제 - 소프트웨어 형상 변경 제안을 검토 승인하여 현재 기준선에 반영될 수 있도록 통제하는 단계
  • 형상 감사 - 소프트웨어 기준선의 무결성을 평가하는 단계
  • 형상 기록 - 소프트웨어 형상 및 변경 관리에 대한 각종 수행 결과를 기록하고, 보고서를 기록하는 단계

형상 식별 - 형상 통제 - 형상 감사 - 형상 기록

EAI(Enterprise Application Integration)

EAI는 미들웨어를 이용하여 비즈니스 로직을 중심으로 기업 내 애플리케이션을 통합하는 비즈니스 통합 솔루션이다.

EAI 구성요소

  • Message Bus 방식 - 애플리케이션 사이에 미들웨어(버스)를 두어 데이터를 전송하는 방식
  • Hybrid - Hub & Spoke 와 Message Bus를 혼합한 방식
  • Point to Point, Peer to Peer - 미들웨어를 두지 않고, 애플리케이션과 직접 1:1로 연결 하는 방식
  • Hub & Spoke - 애플리케이션 사이에 허브시스템을 두어 데이터를 전송하는 방식

소스코드 커버리지

  • 구문 커버리지(Statement Coverage) - 프로그램 내에 있는 조건문이 적어도 한번은 실행하는 커버리지
  • 결정 커버리지/분기 커버리지(Branch Coverage) - 모든 조건식의 결과가 True, False인 경우가 한번 이상 수행되도록 테스트
  • 조건 커버리지(Condition Coverage) - 조건문에 포함된 개별 조건식의 결과가 True, False인 경우가 한 번 이상 수행되도록 테스트

생성자(Constructor)

객체를 생성할 때 호출 되는 메소드로 멤버변수의 초기화를 위해 정의한다.

소멸자(Destructor)

객체의 수명이 끝났을 때 객체를 제거하고 할당된 메모리 해제를 위해 정의한다.

데이터베이스 객체

  • 스키마(Schema) - 데이터베이스의 전체적인 구조와 제약조건에 대한 명세서를 정의한 것
  • 도메인(Domain) - 속성의 데이터 타입과 크기, 제약조건을 지정한 정보
  • 테이블(Table) - 데이터의 저장공간
  • 뷰(View) - 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블
  • 인덱스(Index) - 검색을 빠르게 하기 위한 데이터 구조

OSPF(Open Shortest Path First)

SPF(Shortest Path First), 다익스트라 알고리즘을 이용하여 각 목적지까지의 최적 경로를 계산하는 동적 라우팅 프로토콜로 링크 상태(Link State) 라우팅 프로토콜.

ICMP(Internet Control Message Protocol)

TCP/IP에서 신뢰성 없는 비 연결형 프로토콜인 IP를 대신하여 송신 측으로 네트워크의 IP 상태 및 에러 메세지를 전달해주는 프토토콜

주요 변수 명명 규칙

  • Hungarian Notation - 데이터 타입의 정보를 이름 접두어로 지정하는 코딩의 규칙 → IpszCart
  • Camel Casing - 메소드의 매개변수의 이름에 적용되는데 첫 번째 문자는 소문자로 시작하고 복합어일 경우에는 뒤에 붙는 단어의 첫 문자는 보통 대문자로 작성 → totalAcount, sumCnt
  • GNU Naming Convention - 모두 소문자를 사용하고 복합어 사이를 언더바를 사용하여 연결 → httpd_start
  • Constant(상수) - 대문자 GNU Naming Convention → DEFAULT_PHONE_NO

프로토콜(Protocol)

  • 서로 다른 시스템에 있는 두 개체 간에 성공적으로 데이터를 전송하는 통신 규약
  • 외교 분야에서의 의례 또는 의정서를 의미하는 용어.

기본 3요소

Syntax(구문), Semantic(의미), Timing(시간)

2020년 4회

구조적/정적 다이어그램

  • 클래스 다이어그램 - 클래스 사이의 관계를 표현하는 UML을 이용한 정적 모델링의 대표 다이어그램
  • 객체 다이어그램 - 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
  • 컴포넌트 다이어그램 - 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
  • 배치 다이어그램 - 컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
  • 복합체 구조 다이어그램 - 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
  • 패키지 다이어그램 - 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현

행위적/동적 다이어그램

  • 유스케이스 다이어그램 - 시스템이 제공하고 있는 기능과 그와 관련된 외부 요소들을 사용자 입장에서 표현하는 다이어그램
  • 시퀀스 다이어그램 - 객체 가나 동적 상호작용을 시간적 개념으로 메세지 흐름을 이용해서 표현하는 다이어그램
  • 커뮤니케이션 다이어그램 - 객체들이 주고받는 메세지와 객체간의 연관을 표현하는 다이어그램
  • 상태 다이어그램 - 하나의 객체가 자신이 속한 클래스의 상태변화 혹은 다른 객체간의 상호작용에 따라 상태가 변하는 것을 표현하는 다이어그램
  • 활동 다이어그램 - 시스템이 어떤 기능을 수행하는지 처리의 흐름을 순서로 표현한 다이어그램
  • 타이밍 다이어그램 - 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램

데이터베이스 회복기법

  • 지연 갱신(Deferred Update) - 트랜잭션이 성공적으로 종료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 기법
  • 즉시 갱신(Immediate Update) - 트랜잭션이 데이터를 변경하면 트랜잭션 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 기법
  • 그림자 페이지(Shadow Paging) - 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 두고, 실제 페이지를 대상으로 트랜잭션에 대하나 변경작업을 수행하는 기법
  • 검사점(Check Point) - 시스템 장애가 발생했을 경우 검사점 이후 장애발생 이전에 완료된 경우 REDO 수행, 장애발생 시점까지 완료하지 못한 경우 UNDO 수행을 통해 회복하는 기법.
  • 미디어 회복 기법(Media Recovery) - 디스크 장애가 발생하면 가장 최근의 덤프 내용을 디스크에 적재하고, 로그를 이용하여 가장 최근 덤프 이후 완료된 트랜잭션들에 대해 Redo 작업을 수행하여 회복하는 기법.

스니핑(Sniffing)

네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 도청하는 행위. 스니핑 공격은 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격기법이다.

스푸핑(Spoofing)

자기 자신의 식별정보를 속여서 서로 다른 대상 시스템을 공격하는 기법.

NAT(Network Address Translation)

컴퓨터 네트워킹에서 쓰이는 용어로서, IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술로서 네트워크 주소 변환이라고 한다.

블록체인

거래정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 참가자가 공동으로 기록하고 관리하는 기술

하둡(Hadoop)

데이터 처리와 저장소 역할을 하는 여러 컴퓨터에 대용량 데이터를 분산 저장 및 분산 처리 하는 오픈소스 소프트웨어(OSS)로 구성된 빅데이터 플랫폼.

프로세스(Process)

프로그램은 파일 형태로 저장하여 관리되다가 실행을 시키면 동작을 하게 되며, 이 때 실행중인 프로그램을 프로세스라고 한다.

프로그램 상태도(생성, 준비, 실행, 대기)

테스트 오라클(Test Oracle)

테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위하여 미리 정의된 참 값을 대입하여 비교하는 기법

  • 참오라클(True) - 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클
  • 샘플링 오라클(Sampling) - 특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공해주는 오라클, 전수 테스트가 불가한 경우 사용하며 경계값, 구간별 에상 값 결과 작성 사용
  • 휴리스틱 오라클(Heuristic) - 샘플링 오라클의 단점을 개선하기 위해 특정 몇몇 입력은 샘플링 오라클처럼 결과를 제공하고, 나머지 입력은 휴리스틱(-경험)에 의한 처리
  • 일관성 검사 오라클(Consistent) - 이전수행결과와 현재 수행결과가 동일한지 검증 회귀 테스트 시 수정 전후의 프로그램 실행 결과 확인 또는 비교시 사용

요구사항 명세 테스트

  • 동치 분할 검사(Equivalence Partitioning Testing) - 입력 값 범위를 유사한 특징을 갖는 동등 그룹으로 분리한 후, 대표 값을 선정하여 테스트하는 기법.
  • 경계값 분석(Boundary Value Analysis)
  • 원인 - 효과 그래프 검사(Cause-Effect Graphing Testing) - 입력 데이터 간의 관계가 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하는 기법
  • 비교 검사(Comparision Testing) - 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

운영체제의 종류

  • UNIX - 미국 벨 연구소 켄 톰슨과 테니스 리치가 1960년대에 만든 운영 체제로, 거의 C언어로 구현되어 있으며 구조적인 파일 시스템을 가지고, 시스템의 파일이 하나의 트리구조이다.
  • LINUX - UNIX 기반, 무료, 재배포 가능 UNIX 호환
  • IOS - 애플, 유닉스 기반

정보보안의 3요소

  • 기밀성(Confidentiality) - 자산이 인가된 당사자에 의해서만 접근하는 것을 보장
  • 무결성(Integrity) - 자산이 인가된 당사제에 의해서 인가된 방법으로만 변경 가능한 것으로 자산의 완전성과 정확성을 보장하는 것
  • 가용성(Availability) - 권한을 가진 사용자나, 어플리케이션이 원하는 서비스를 지속적으로 사용할 수 있도록 보장하는 것.

2021년 1회

데이터 베이스 설계 과정

  • 요구사항 분석 - DB에 저장할 대상, 제약조건, 데이터 처리 등에 대한 요구사항 수집
  • 개념적 설계 - 개체 타입, 관계 타입, 속성들을 식별하고 속성들의 도메인, 후보키와 기본키를 결정, ER 다이어 그램으로 표현됨
  • 논리적 설계 - 선택한 DBMS의 데이터 모델을 사용하여 논리적 스키마 생성, 스키마 정제(정규화)
  • 물리적 설계 - 데이터 처리 요구사항들을 만족시키기 위해 저장 구조와 접근 경로 등을 결정함, 테이블 정의서, 명세서, 인덱스 정의서, 명세서 등

WSDL(Web Services Description Language)

  • 웹 서비스 제공자가 자신의 서비스를 등록하기 위해 바인딩 정보를 기술 할 수 있도록 설계된 XML 기반의 표 언어
  • 호출된 웹 서비스의 사양을 웹 서비스 레지스트리인 UDD 에 저장하기 위해 표준화한 XML 기반의 언어

IPC(Inter-Process Communication)

운영체제에서 프로세스가 같은 주소 공간을 공유하지 않아도, 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 방법.

모듈간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로 복수의 프로세스를 수행하여 이뤄지는 프로세스 간 통신까지 구현이 가능하다. 대표적인 사례로는 공유 메모리(Shared Memory), 소켓(Socket), 세마포어(Semaphore), 파이프와 네임드 파이프(Pipe & Named Pipes), 메시지 큐(Message Queue) 등이 있다.

EAI(Enterprise Application Integration)

기업 내 각종 어플리케이션 및 플랫폼 간의 정보 전달, 연계, 통합 등 상호 연동을 가능하게 해주는 솔루션으로 Point to Point, Hub & Spoke, Message Bus 등의 다양한 방식으로 구축이 가능한 모듈 연계 방법

EAI 구축 유형

  • Point to Point - 중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결
  • Hub & Spoke - 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적인 방법
  • Message Bus - 애플리 케이션 사이에 미들웨어(버스)를 두어 처리
  • Hybrid - Hub & Spoke + Message Bus

ESB(Enterprise Service Bus)

ESB는 어플리케이션 간의 통합 측면에서 EAI와 유사하다고 볼 수 있으나 서비스 중심의 통합을 지향하는 아키텍쳐.

데이터 모델

데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형.

요소

  • 구조 (Structure) - 논리적으로 표현된 객체 타입들 간의 관계로서 데이터의 구성 및 정적 성질을 표현
  • 연산 (Operation) - 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 며엣로서 데이터베이스를 조작하는 기본 도구
  • 제약조건 (Constraint) - 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건.

접근 통제(Access Control)

데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것

접근 통제 기술

  • 임의 접근통제(DAC, Discretionary Access Control) - 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
  • 강제 접근통제(MAC, Mandatory Access Control) - 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식. 데이터베이스 객체별로 보안 등급을 부여할 수 있음. 시스템이 접근 통제 권한을 지정함.
  • 역할 기반 접근 통제(RBAC, Role Based Access Control) - 사용자의 역할에 따라 접근 권한을 부여하는 방식. 중앙관리자가 접근 통제 권한을 지정함.

결합도(Coupling)

  • 자료 결합도(Data Coupling) - 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 상호작용이 일어남.
  • 스탬프 결합도(Stamp Coupling) - 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
  • 제어 결합도(Control Coupling) - 단순 처리할 대상인 값만 전달하는 것이 아니라 어떻게 처리해야 한다는 제어요소가 전달되는 경우
  • 외부 결합도(External Coupling) - 모듈에서 외부로 선언한 데이터를 다른 모듈에서 참조할 때의 경우로 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 주로 발생한다.
  • 공통 결합도(Common Coupling) - 파라미터가 아닌 모듈 밖에 선언되어 있는 전역변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
  • 내용 결합도(Content Coupling) - 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용하는 경우

세션 하이재킹(Session Hijacking)

공격 대상이 이미 시스템에 접속되어 세션이 연결되어 있는 상태를 가로채기 하는 공격으로 아이디와 패스워드를 몰라도 시스템에 접근하여 자원이나 데이터를 사용할 수 있는 공격이다.

2021년 2회

에드혹(Ad-hoc) 네트워크

통신 인프라가 없거나 구축하기 곤란한 상황에서 이동 Node 간의 자율적인 경로 설정, 수정 그리고 의사소통이 가능한 네트워크

트랜잭션 특징(ACID)

  • Atomicity - 데이터의 무결성을 보장하기 위한 특성
  • Consistency - 트랜잭션이 실행 성공 후 항상 모순 없이 일관성 있는 DB 상태 보존
  • Isolation - 현재 수행 중인 트랜잭션이 완료될 때 까지 트랜잭션이 생성한 중간 연산 결과에 다른 트랜잭션들이 접근할 수 없음
  • Durability - 성공이 완료된 트랜잭션의 결과는 영구적으로 데이터베이스에 저장됨 → 회복기법

정규화 유형

  • 제1정규화(1NF) - 모든 속성 값이 원자값을 가지는 릴레이션
  • 제2정규화(2NF) - 부분함수종속 제거
  • 제3정규화(3NF) - 이행함수제거
  • BCNF - 결정자가 후보키가 아닌 함수종속(FD)제거

응집도

  • 기능적 응집도(Functional Cohesion) - 모듈 내부의 모든 기능이 단일한 목적을 위해 수행된다.
  • 순차적 응집도(Sequential Cohesion) - 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우.
  • 통신적 응집도(Communication Cohesion) - 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우.
  • 절차적 응집도(Procedual Cohesion) - 모듈이 다수의 관련 기능을 가질 대, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행하는 경우.
  • 시간적 응집도(Temporal Cohesion) - 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
  • 논리적 응집도(Logical Cohesion) - 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우.
  • 우연적 응집도(Coincidential Cohesion) - 모듈 내부의 각 구성 요소들이 연관이 없는 경우

패킷교환(Packet Switching)

데이터는 네트워크를 사용하여 전송되기 전에 패킷이라는 작은 조각들로 나누어 전송하는 방식.

  • 가상회선(Virtual Circuit) - 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식
  • 데이터그램(Datagram) - 연결 정보를 헤더에 붙여서 개별적으로 전달하는 비 연결형 교환 방식

테스트 하네스 도구(Test Harness Tools)

테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈이 정상적으로 테스트 되도록 하는 도구

  • 드라이버 - 하위 모듈 호출
  • 스텁 - 상위 모듈 호출

라우팅 프로토콜

IGP - 내부 라우팅 프로토콜 → 거리벡터 : RIP , 링크 상태 벡터 : OSPF

EGP - 외부 라우팅 프로토콜 → BGP

객체지향 설계원칙(SOLID)

  • 단일 책임 원칙(Single Responsibility Principle) - 한 클래스는 하나의 책임만을 가진다.
  • 개방 폐쇄 원칙(Open close principle) - 확장에는 열려있고, 수정에는 닫혀있다.
  • 리스코프 치환 원칙(Liskov substitution principle) - 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.
  • 인터페이스 분리 원칙(Interface Segregation Principle) - 자신이 사용하지 않는 인터페이스는 구현하지 말아야한다.
  • 의존성 역전 원칙(Denpendency Inversion Principle) - 의존 관계를 맺을 떄 자주 변화하는 것 보다, 변화가 거의 없는것에 의존해야 한다.

UI 설계 원칙

직관성 누구나 쉽게 이해

유연성 사용자 요구를 최대한 수용하며 오류를 최소화

유효성 사용자 목적을 정확히 달성 유용하고 효과적

학습성 누구나 쉽게 배우고 익힐 수 있음

반응형

'정보처리기사' 카테고리의 다른 글

11. 제품소프트웨어 패키징  (0) 2022.10.20
10. 응용 SW 기초기술 활용  (0) 2022.10.20
9. 프로그래밍언어 활용  (0) 2022.10.20
8. 소프트웨어 개발보안 구축  (0) 2022.10.14
7. SQL 응용  (0) 2022.10.14