4번
- 인터페이스 구현
- 송, 수신 시스템 간 데이터 교환 및 처리를 실현해주는 작업
- 데이터 통신을 이용한 구현 - AJAX, Http2, Rest, ...
- Application 영역에서 data format을 인터페이스 대상으로 전송
- 수신측에서 파싱하여 해석
- JSON, XML 형식의 데이터 포맷이 있음.
- JSON을 이용한 인터페이스 구현 순서
- 송신 측
- 생성할 데이터를 각 시스템 환경에 맞게 인터페이스 객체를 선택
- JSON을 이용해 데이터를 인터페이스 객체로 만듦
- 인터페이스 객체를 데이터 통신 기술 등을 이용해 수신측으로 전송
- 수신 측
- 인터페이스 객체를 수신
- 파싱 후 처리
- 송신 측으로 처리 결과 전송
- 송신 측
- AJAX (Asynchronous Javascript and XML)
- js 를 사용해 클라이언트와 서버 간 XML 데이터를 주고 받는 '비동기 통신' 기술
- JSON (JavaScript Object Notation)
- 용량이 적은 데이터를 교환하기 위한 데이터의 쌍(Attribute-Value Pairs) 형태로 표현하는 개방형 표준 포맷
- XML을 대체해서 사용되고 있음.
- 인터페이스 엔티티를 이용한 인터페이스 구현 - API Docs (Swagger)
- 인터페이스가 필요한 시스템 사이 별도의 인터페이스 엔티티를 두어 상호연계
- 일반적으로 인터페이스 테이블을 엔티티로 활용
- 인터페이스 테이블을 이용한 인터페이스 구현 순서
- 송신 측
- 인터페이스 이벤트가 발생 시 인터페이스 테이블에 인터페이스 데이터를 기록
- 인터페이스 테이블에서 정해진 주기에 따라 인터페이스 데이터를 전송
- 수신측
- 인터페이스 테이블에 인터페이스 데이터가 입력되면 정해진 주기에 따라 인터페이스 데이터를 읽음
- 인터페이스 테이블에서 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 수행
- 송신 측
6번
- VPN (Virtual Private Network, 가상 사설 통신망)
- 인터넷 등 통신 사업자(ISP)의 공중 네트워크와 암호화 기술을 이용
- 사용자가 마치 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
- SSL VPN
- PC에 VPN Client 프로그램을 설치하여 VPN 서버에 접속하는 방식
- 암호화를 위해 SSL 프로토콜을 사용한다.
- IPSec VPN
- VPN 서버가 설치된 각 네트워크를 서로 연결하는 방식
- 암호화를 위해 IPSec 프로토콜을 사용
- SSL(Secure Sockets Layer)
- 송, 수신 하는 컴퓨터 사이 TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 표준 프로토콜
- 즉, 전송 계층과 어플리케이션 계층
- IPsec(IP security)
- 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능을 제공
- PPTP(Point-to-Point Tunneling Protocol)
- 지점 간 터널링 프로토콜
- MS가 제안한 VPN 프로토콜
- PPP에 기초, 두 대가 직렬 인터페이스를 이용해 통신
- 데이터 링크 계층
- L2F(Layer 2 Forwarding)
- Cisco Systems가 개발한 VPN 프로토콜
- PPTP나 IPsec과 달리, 데이터 링크 수준에서 캡슐화가 가능
- IP 네트워크 이외에서도 사용 가능
- L2TP (Layer 2 Tunneling Protocol)
- 터널링 프로토콜인 PPTP와 VPN 구현에 사용
- L2F의 기술적 장점을 결합
- 자체적으로 암호화 및 인증을 제공하지 않음.
- 다른 보안 프로토콜과 같이 사용
8번
- 워터링 홀 (Watering Hole)
- 목표 조직이 자주 방문하는 웹 사이트를 사전에 감염
- 목표 조직이 웹 사이트에 방문했을 때, 악성 코드에 감염되게 하는 웹 기반 공격
- 웜 (Worm)
- 네트워크를 통해 연속적으로 자신을 복제
- 시스템 부하를 높여 시스템을 다운 시킴
- 분산 서비스 공격 (Dos), 버퍼 오버플로 공격, 슬래머 등으로 진화
- 좀비(Zombie) PC
- 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종함.
- C&C (Command & Control) 서버의 제어를 받아 Ddos 공격 등에 이용되는 PC
- C&C 서버
- 해커가 원격지에서 감염된 좀비 PC에 명령을 내림
- 악성코드를 제어하는 용도로 사용 됨.
- 봇넷 (Botnet)
- 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 PC가 네트워크로 연결된 형태
- 즉, 좀비 PC의 네트워크(?)
- 공격자는 Master 시스템(좀비 PC)으로 Agent 시스템(좀비 PC)를 조종해 공격대상에 분산 공격을 하든 할 수 있음
- Master 시스템 역할을 핸들러(Handler)라고 하고 Agent 시스템 역할을 데몬(Demon)이라고 한다.
- 제로 데이 공격 (Zero Day Attack)
- 보안 취약점이 발견 되었을 때, 발견된 취약점이 공표되기 전 공격
- 취약점을 통해 이루어지는 보안 공격, 신속하게 해야 하므로 제로데이
- 키로거 공격 (Key Logger AttacK)
- 컴퓨터 사용자의 키보드 움직임을 탐지해 중요한 정보를 빼감
- 랜섬 웨어 (Ransomeware)
- 인터넷 사용자 PC에 잠입, 내부 문서나 파일 등을 암호화 함.
- 암호 해독용 프로그램을 조건으로 돈을 요구 하는 악질
- 백도어 (Back Door, Trap Door)
- 시스템 설계자가 서비스 기술자, 유지 보수 프로그래머 등의 접근 용이성을 위해 만들어 놓은 비밀 통로
- 해커가 시스템 보안이 제거된 비밀 통로를 찾아서 컴퓨터 범죄에 악용함
- 무결성 검사, 열린 포트, 로그 분석, setUID 파일 검사 등으로 백도어 탐지 가능
- 트로이 목마 (Trojan Horse)
- 정상적인 기능을 하는 프로그램으로 위장해 프로그램 내 숨어 있음
- 프로그램이 동작할 때, 활성화되어 부작용을 일으킴
- 좀비 PC로 만들 때, 악성 프로그램을 정상 프로그램과 합성해서 배포
- 정상 프로그램 실행 시 좀비 PC가 됨.
11번
- 디자인 패턴
- 모듈 간 관계 및 인터페이스 설계 시 참조할 수 있는 전형적인 방식 또는 예제
- GoF의 디자인 패턴
생성 패턴 (Creational Pattern)
- 클래스나 객체의 생성과 참조 과정을 정의
- 추상 팩토리 (Abstract Factory)
- 구체적인 클래스에 의존하지 않음.
- 서로 연관 및 의존하는 객체들의 그룹으로 생성해 추상적으로 표현
- 인터페이스로 상위 객체를 만들 것들을 미리 정의해 둠.
- 자동차의 바퀴, 엔진, 기능 들
- 빌더 (Builder)
- 작게 분리된 인스턴스를 건축 하듯이 조합해 객체를 생성
- 객체의 생성 과정, 표현 방법을 분리하고 있음.
- 동일한 객체 생성에서도 서로 다른 결과를 만들 수 있음.
- 팩토리 메소드 (Factory Method)
- Virtual Constructor(가상 생성자) 패턴
- 객체 생성을 서브 클래스에서 처리하도록 분리 후 캡슐화
- 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 함.
- 프로토타입 (Prototype)
- 원본 객체를 복제하는 방법
- 객체를 생성하는 패턴으로 일반적인 방법으로 객체를 생성 - new
- 비용이 큰 경우 주로 이용
- 싱글톤 (Singleton)
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 잇다.
- 여러 프로세스가 동시에 참조할 수는 없다.
- 클래스 내에서 인스턴스가 하나 뿐임을 보장해야한다.
- 불필요한 메모리 낭비를 최소화 할 수 있다.
구조 패턴(Structural Pattern)
- 구조가 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만듬
- 어댑터 (Adapter)
- 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환
- 기존의 클래스를 이용하고 싶지만 인터페이스가 일치하지 않을 때, 어댑터로 변환해서 사용
- 브리지 (Bridge)
- 구현부에서 추상층을 분리
- 서로가 독립적으로 확장할 수 있도록 구성한 패턴
- 기능과 구현을 두 개의 별도 클래스로 구현한다.
- Spring 에서 Repository, Controller에서 다른 Interface를 사용하는데 브리지로 되어있는거
- 컴포지트 (Composite)
- 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다룰 때 사용
- 객체들을 트리 구조로 구성한다.
- 디렉터리 안에 디렉터리가 있듯, 복합 객체 안 복합 객체가 포함되도록 구조 가능
- List
- 데코레이터 (Decorator)
- 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
- 임의의 객체에 부가적인 기능을 추가함.
- 다른 객체들을 덧붙이는 방식으로 구현
- 퍼싸드(Facade)
- 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구현
- 서브 클래스들의 기능을 간편하게 사용할 수 있음.
- 서브 클래스들 사이 통합 인터페이스를 제공하는 Wrapper 객체가 필요
- 플라이웨이트(Flyweight)
- 인스턴스가 필요할 때 마다 매번 생성하지 않음.
- 가능한 공유해서 사용하면서 메모리를 절약
- 다수의 유사 객체를 생성하거나 조작할 때 유용함.
- MAP
- 프록시 (Proxy)
- 접근이 어려운 객체와 접근이 어려운 객체에 연결하려는 객체 사이에서 인터페이스를 수행
행위 패턴 (Behavioral Pattern)
- 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
- 책임 연쇄(Chain Of Responsibility)
- 요청을 처리할 수 있는 객체가 둘 이상 존재할 때
- 한 객체는 요청을 처리하지 못한다면 다음 객체로 넘어가는 형태의 패턴
- 요청을 처리하는 각 객체가 Chain으로 묶여 있는 형태
- 요청이 해결 될 때까지 Chain을 따라 책임이 연쇄됨.
- 커맨드 (Command)
- 요청을 객체의 형태로 캡슐화하여 재이용, 취소, 저장, 기록을 하는 패턴
- 요청에 사용되는 각종 명령을 추상 클래스와 구체 클래스로 분리해서 단순화
- 인터프리터 (Interpreter)
- 언어에 문법 표현을 정의, SQL 및 통신 프로토콜 개발 시 사용
- 반복자 (Iterator)
- 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
- 내부 표현 방법의 노출 없이 순차적 접근 가능
- 중재자 (Mediator)
- 수많은 객체간 복잡한 상호작용을 캡슐화하여 객체로 정의
- 객체 사이의 의존성을 줄여 결합도를 낮춤
- 메멘토 (Memento)
- 특정 시점에서의 객체 내부 상태를 객체화
- 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능 제공
- Ctrl + Z와 같은 되돌리기 기능
- 옵저버 (Observer)
- 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달
- 일대다의 의존성을 정의
- 분산 시스템 간 이벤트를 생성,발행(Publish)하고 수신(Subscribe)해야 할 때 이용
- 상태 (State)
- 객체의 상태에 따라 동일한 동작을 다르게 처리해야할 때 사용되는 패턴
- 객체 상태를 캡슐화하고 이를 참조하는 방식으로 처리
- 전략 (Strategy)
- 동일한 계열 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의
- 클라이언트는 독립적으로 원하는 알고리즘 선택 가능
- 클라이언트에 영향 없이 알고리즘 변경 가능
- 스프링의 DI
- 템플릿 메소드 (Template Method)
- 상위 클래스에서 골격을 정의
- 하위 클래스에서 세부 처리를 구체화 하는 구조의 패턴
- 유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에서 정의
- 코드의 양을 줄이고 유지보수를 용이하게 함
- Spring-tx
- 방문자 (Visitor)
- 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성
- 분리된 처리 기능은 각 클래스를 방문하여 수행
- 책임 연쇄(Chain Of Responsibility)
12번
- 튜플 : 릴레이션을 구성하는 각각의 행, 파일 구조에서는 레코드에 해당
- 속성 : 릴레이션을 구성하는 각각의 열
- 속성의 개수를 차수(Degree)라고 함.
- 한 속성의 필드를 제외한 릴레이션 인스턴스를 도메인이라고 함.
- 릴레이션 인스턴스: 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 값을 가진 것
- 실제 값을 가진 튜플을 의미, 테이블의 바디
- 릴레이션 스키마: 데이터 개체를 구성하고 있는 속성들의 데이터 타입이 정의 된 필드의 이름
- 테이블의 헤더, 속성의 집합
- 카디널리티 : 튜플의 개수 (기수, 대응수라고도 함)
18번
- 외부 스키마
- 사용자나 응용 프로그래머가 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의
- 클라이언트 입장
- 개념 스키마
- DB의 전체적인 논리적 구조
- 모든 응용프로그램이나 사용자가 필요로 하는 데이터를 종합한 전체 DB로 하나만 존재
- 개체 간 관계와 제약 조건을 나타냄
- DB의 접근 권한, 보안, 무결성 규칙에 대해 명세
- ERD로 표현
- 내부 스키마
- 물리적 저장장치의 입장에서 본 DB
- 실제로 DB에 저장될 레코드 형식을 정의
- 저장될 데이터 항목의 표현 방법
- 내부 레코드의 물리적 순서
- 실제 DB에 셋팅, 인덱스 등을 추가해서 셋팅
'자격증 > 정보처리기사' 카테고리의 다른 글
[실기] 정보처리기사 24년 1회 기출 오답노트 (0) | 2024.07.28 |
---|---|
[실기] 정보처리기사 22년 3회 기출 오답노트 (0) | 2024.07.26 |
[실기] 소프트웨어 구축 - 소프트웨어 설계 (0) | 2024.07.25 |
[실기] 소프트웨어 구축 - 요구사항 분석 (0) | 2024.07.25 |
[실기] 소프트웨어 구축 - 프로젝트 계획 (0) | 2024.07.25 |