정보처리 기사 실기 마무리

YunGyu Choi·2023년 4월 25일
0

정보처리기사

목록 보기
10/10

정의/원칙

  1. UI설계원칙 : 직관성, 유연성, 유효성, 학습성

  2. UI유형 : CLI, GUI, NUI, OUI

  3. UI품질 요구사항 : 사용성, 기능성, 신뢰성, 효율성, 이식성, 유지보수성,

  4. UML 특징 : 가시화, 구축화, 명세화, 문서화

  5. UML구성요소 : 사물, 관계, 다이어그램

  6. DBMS특징 : 무결성, 일관성, 회복성, 보안성, 효율성

  7. 트랜잭션 특징 : 원자성, 일관성, 격리성, 영속성

  8. 키 : 기본키, 대체키, 후보키(유일성o, 최소성o), 슈퍼키(유일성o), 외래키

  9. 데이터베이스 파일 구조
    인덱스 : <키,값> 쌍으로 구성
    해시 : 키값을 해시함수에 대입해서
    순차 방법 : 레코드 물리적 순서 -> 논리적 순서

  10. 논리 데이터 모델 구성요소 : 개체, 속성, 관계

  11. 논리 데이터 모델 종류 : 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델

  12. SW 보안 3요소 : 기밀성, 무결성(정당한 방법이 아니면 수정x) ,가용성

  13. 서버접근 통제 : 식별 - 인증 - 인가 - 책임추적

  14. 3A : Authentication, Authorization, Accounting

  15. 프로토콜 3요소 : 구문, 의미, 타이밍

  16. 애플리케이션 성능 측정 지표
    처리량
    응답시간 : 입력~응답출력 시작
    경과시간 : 입력~결과출력 완료
    자원사용률

  17. 리팩토링 : 유지보수성 향상, 유연한 시스템, 생산성 향상, 품질 향상

  18. 소프트웨어 테스트 원리
    결함존재 증명
    완벽한 테스팅은 불가능
    초기집중(초반 스노우볼)
    결함 집중(파레토)
    살충제 패러독스
    정황 의심
    오류-부재 궤변 : 요구사항 충족 못하면 오류 없어도 의미 없음

  19. 빅데이터 : Volume + Variety _+ Velocity(속도) / Value + Veracity(정확성)

UML

  1. UML(Unified Modeling Language) : 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할 때 사용

  2. 구조적 다이어그램(정적 다이어그램)
    클래스 다이어그램 : 클래스, 속성, 연산, 접근 제한자
    컴포넌트 다이어그램 : 인터페이스, 의존관계 표현
    패키지 다이어그램 : 패키지 간 의존관계 표현 (파일모양)
    배치 다이어그램 : 물리적 요소들의 위치 표현

  3. 행위적 다이어그램(동적. 다이어그램)
    유스케이스 다이어그램 : 유스케이스, 액터, 시스템, 시나리오, 이벤트 흐름
    상태 다이어그램 : 클래스 상태변화 or 다른 객체와 상호작용하는 상태 변화
    활동 다이어그램 : 객체의 처리나 로직, 조건에 따른 처리흐름 순서대로 표현
    시퀀스 다이어그램 : 객체 상호간 메시지 흐름과 객체사이 메시지 보내는 시간, 구성요소(객체, 생명선, 실행, 메시지)
    커뮤니케이션 다이어그램 : 동작에 참여하는 객체들 간 메시지 표현, 구성요소(액터, 객체, 링크., 메시지)
    타이밍 다이어그램 : 객체 상태변화 + 시간 제약 명시적 표현

  4. 럼바우 객체 지향 분석
    객체 모델링 : ERD
    동적 모델링 : 상태 다이어그램
    기능 모델링 : 자료흐름도(DFD)

  5. 모델링 절차
    개념 모델링 : 추상화, 핵심데이터 간 관계 정의
    논리 모델링 : 관계, 속성, 키 도출
    물리 모델링 : DBMS 특성에 맞게 스키마 만듬

  6. 공통 모듈 구현 저차
    DTO : 가변 클래스, 프로세스 사이에서 데이터 전송하는 객체, 데이터 저장 , 회수 기능만 있음
    VO : 고정 클래스
    DAO : 세부내용 노출 없이 데이터 조작, 특정 타입의 데이터베이스에 추상적 인터페이스 제공하는 객체
    MVC 패턴 : 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션 시각적 요수나 그 이면 비즈니스 로직을 서로 영향 없이 쉽게 고침

디자인 패턴

  1. 생성 패턴
    Builder : 복합객체 생성시 객체와 생성 분리, 동일 생성절차 -> 다른 결과
    Prototype : 처음부터 일반적인 원형 만들고, 필요시 부분 수정
    Factory Method : 상위 클래스에서 객체 생성 인스턴스 정의, 하위 클래스에서 인스턴스 생성
    Abstract Factory : 구체적인 클래스에 의존x, 동일한 주체의 다른 팩토리 묶음
    Singleton : 객체를 어디서든 참조가능, but 여러 프로세스가 동시 참조는 불가능

  2. 구조 패턴
    Bridge : 서로가 독립적으로 확장할 수 있도록 구성한 패턴
    Facade : 복잡한 시스템에 단순한 인터페이스 제공, 리모컨만으로 복잡한 명령을 수행
    Decorater : 객체 간의 결합으로 기능 확장 가능, 기존에 구현되어 있는 클래스에 기능 추가
    Proxy : 실제 객체에 대한 대리 객체로 접근 전에 필요한 행동 취하도록 해줌
    Flyweight : 다수 객체 생성시 모두가 갖는 본질적 요소 클래스화해서 메모리절약, 클래스 경량화
    Composite : 복합객체와 단일 객체 구분없이 다루고자 할 때
    Adapter : 클래스들의 호환성이 맞도록 변환해주는 패턴

  3. 행위 패턴
    Mediator : 중간에 “중재자” 주고 모두 중재자한테 요청해서 통신 빈도수 줄임
    Memento : 객체를 이전 상태로 북구시혀야하는 경우 사용(Undo)
    Template Method : ㅅ아위 작업 구조를 바꾸지 않으면서 서브클래스로 이부분 수행, 상위클래스 골격, 하위 클래스 세부처리를 구체화, 방법을 큰 틀로 묶음, 유지보수 용이
    Visitor : 해당 클래스의 메서드가 각 클래스 돌아다니며 특정 작업 수행
    State : 객체 상태 캡슐화 해서 클래스화, 참조 방식 상태에 따라 다르게 처리
    Command : 실행기능 캡슐화 해서 재사용성 높임
    Strategy : 행위 클래스화 해서 행위 자유롭게 바꿈
    Interpreter : 구체적 구문을 나누고, 구문 해석 클래스 작성, 여러 형태 언어 구문 해석 만듬
    Iterator : 내부 구조 노출x, 복합객체 순차적 접근
    Observer
    Chain of Responsibility

  4. 소프트웨어 4+1 뷰
    유스케이스 뷰 : 유스케이스 or 아키텍처 도출 및 설계, 다른 뷰 검증에 사용
    논리 뷰 : 기능적 요구사항이 어떻게 제공되는지 설명
    프로세스 뷰 : 시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행실행 및 비동기, 이벤트 처리 등
    구현 뷰 : 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여줌
    배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치 되는 가를 보여줌

  5. 소프트웨어 아키텍처 패턴
    계층화 패턴 : 시스템을 계층으로 구분하여 구성하는 패턴, 서로 마주보는 두 계층 사이에서만 상호작용 이뤄짐
    클라이언트 - 서버 패턴 : 하나의 서버와 다수의 클라이언트로 구성된 패턴
    파이프 - 필터 패턴 : 서브 시스템이 입력 데이터를 받아 처리하고, 결과를 다음 서브 시스템으로 넘기기 반복하는 패턴
    브로커 패턴 : 분산 시스템에서 사용, 브로커 컴포넌트는 컴포넌트 간의 통신을 조절하는 역할 수행
    MNV패턴 : 모델 - 뷰 - 컨트롤러

결합도/응집도

  1. 응집도 : 하나의 모듈의 독립성 나타냄
    우연적 응집도(Coincidential) : 연관성이 낮은 것들의 모임
    논리적 응집도 : 성격이나 특징 같은게 비슷한 것들이 모임
    시간적 응집도(Temporal) : 같은 시간대 처리되는 거 모임
    절차적 응집도(Procedure) : 기능이 ‘순차적으로’ 수행되는거 모임
    교환적 응집도 : 동일한 입출력으로 다른 결과 모임
    순차적 응집도(Sequential) : 모듈에서 나온거 다른 모듈이 가져다 쓸 때
    기능적 응집도 : 모듈 내부 기능이 단일 목적을 위해 수행

  2. 결합도 : 모듈간 상호 의존성 나타냄
    내용 결합도 : 다른 모듈 내부의 변수,기능 사용
    공유 결합도 : 공유되는 공통 데이터 영역 사용, 파라미터가 모듈 밖에서 선언되어 전역변수 참조
    외부 결합도 : 어떤 모듈에서 반환 겂을 다른 모듈에서 참조해서 사용하는 경우
    제어 결합도 : 어떤 모듈이 다른 모듈 내부 논리 조직 제어하기위해 제어신호 통신하는 경우
    스탬프 결합도 : 모듈간 인터페이스로 배열이나 오브젝트 등이 전달 되는 경우
    자료 결합도 : 모듈간 인터페이스로 전달되는 파라미터를 통해서만 상호작용

테스트

  1. 검정 : 소프트웨어 개발”과정”에서 개발자 관점에서 테스트

  2. 확인 : 소프트웨어 개발”완료”에서 사용자 관점에서 테스트

  3. 회복 테스트 : 고의로 실패 유도 -> 정상복귀 여부 테스트

  4. 안전 테스트 : 불법 프로그램 접근하지 못하도록 ‘점검’

  5. 성능 테스트 : 사용자 요구에 시스템이 반응하는 속도 측정
    부하 테스트 : 부하를 줘서 임계값 찾는 테스트
    스트레스 테스트 : 임계값 이상 줘서 버티는거 테스트
    스파이크 테스트 : 단시간에 몰아붙이는 테스트
    내구성 테스트 : 오랜시겐 스트레스 주는 테스트

  6. 구조 테스트 : 시스템 내부 논리 경로, ‘복잡도’테스트

  7. 회귀 테스트 : 오류 제거나 수정으로 새로 생긴 오류가 없는지 반복적으로 테스트

  8. 병행 테스트 : 기존코드와 변경코드 변화 없는지 테스트

  9. V모델
    단위테스트 : 사용자 요구사항에 대한 단위 모듈, 서브루틴 테스트
    통합 테스트 : 단위 테스트 통과한 모듈의 인터페이스 테스트 ex. 상향식(드라이브), 하향식(스텁), 샌드위치, 빅뱅
    시스템 테스트 : 통합 시스템이 정상적으로 수행되는지 테스트
    인수 테스트 : 계약상의 요구사항의 제대로 반영되었는지 테스트

  10. 테스트 오라클 : 테스트 결과 판단 위해 사전에 정의된 참 값 입력
    참 오라클 : 모든 값에 대한 결과 제공
    샘플링 오라클 : 샘플 값에 대한 결과 제공
    휴리스틱 오라클 : 일부값은 샘플 값 나머지는 추정 값 제공
    일관성 검사 오라클 : 애프리케이션 변경이 있을 때 수정 전후가 같은지 확인

  11. 정적 테스트
    리뷰 : 동료검토, 임스펙션, 워크스루
    정적 분석 : 코딩표준, 복잡도 측정, 자료흐름 분석

  12. 동적 테스트(화이트박스 테스트)
    기본 경로 커버리지 : 수행 가능한 모든 경로 테스트
    구문커버리지(문장커버리지) : 모든 명력문 적어도 한 번 실행
    결정커버리지 : 전체 조건식이 적어도 한 번은 참/거짓 수행
    조건 커버리지 : 부분 조건식도 적어도 한 번은 참/거짓 수행
    조건/결정 커버리지 : 조건+결정로 최소 조합 달성
    변졍 조건/결정 커버리지
    다중 조건 커버리지
    제어 흐름 테스트 : 제어 구조 + 로직 그래프 통해 테스트
    데이터 흐름 테스트 : 제어흐름 + 데이터 사용 현황 그래프 통해 테스트

  13. 동적 테스트(블랙박스 테스트)
    동등분할 분석 : 그룹 내 값들이 시스템에 의해 동일하게 취급된다는 특성 이용한 테스트
    경계 값 분석 : 경계값에 있는 데이터로 테스트
    결정 테이블 : 요구사항 논리, 발생조건 테이블로 나열 -> 조건,행위 모두 조합해 테스트
    상태전이 테스트
    유스케이스 테스트
    분류트리 : 소프트웨어 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트
    페어와이즈 : 테스트 데이터 값들 간에 최소한 한 번씩 조합해서 테스트

  14. 경험 기반 테스트(블랙박스 테스트)
    탐색적 테스트 : 테스트 케이스 작성 x 경험에 기반해서
    오류 추정 : 자주 하는 실수 오류로 정해놓고 테스트 케이스 만들어서 테스트

암호 알고리즘

  1. 일방향 암호 방식
    MAC : 키사용o 메시지 코드, 무결성, 인증
    MDC : 키사용x 변경감지코드, 무결성o ex. MD5. SHA

  2. 해시 암호화 알고리즘
    MD5 : 128bit 해시 암호 생성 64라운드 / MD4는 48라운드
    SHA-1 : NSA미국 표준 지정 DSA에서 사용, 160bit, 80라운드 해시함수
    SHA-256/384/512 : AES에 대응해서 늘린거
    HAS-160 : 국내 서명 표준, MD5 + SHA
    HAVAL : 1024bit 메시지 블록 다누이

양방향 암호 방식
3. 대칭키 암호화 알고리즘
DES : 64bit
SEED : 국내 개발 128bit
AES : 미국 NIST에서 계발
ARIA : 국정원 + 산학
IDEA : DES 대체하기위해서 스위스에서 개발, 128bit, 8라운드
LFSR(Linear Feedback Shift Register) : 선형 되먹임 시프트 레지스터, 선형 함수로 계산되는 스트림 암호화 기법

  1. 비대칭키 암호화 알고리즘
    디피-헬만
    RSA : MIT공대 3명이서 개발
    ECC : 타원곡선군의 이산 대수 문제 기초,
    EIGamal : 이산대수 계산 어려움에 기초,

  2. 데이터 암호화 전송
    IPSec : 인증해드(AH) 무결성, 인증 / 암호화(ESP) 기밀성 / 키관리(IKE)
    SSL/TLS : 4계층 ~ 7계층에서
    S-HTTP : 메시지 통제로 암호화

  3. 데이터 베이스 암호화 기법
    API방식 : 애플리케이션 차원에서 보안
    Plug-in방식 : DB서버에서 보안
    TDE방식 : DB 커널에서 보안
    하이브리드 방식 : API + Plug-in

  4. 서버접근 통제 유형
    임의적 접근 통제(DAC) : 그룹 기만 통제
    강제적 접근 통제(MAC) : 규칙 기반 통제
    역할기반 접근 통제(RBAC). : 역할 기반 통제

  5. 접근 통제 보호 모델
    벨-라파둘라 모델(BLP) : 위에서 아래 못 수정, 아래서 위 못 읽음
    비바모델 : 아래서 위 못 수정, 아래서 위 못 읽음
    클락-윌슨 모델 :
    만리장성 모델 : 그냥 가능성 있으면 다 통제

  6. 콘텐츠 유출 방지 보안 솔루션
    보안 USB : 사용자 식별/인증, 데이터 암/복호화, 임의 복제 방지, 분시시 데이터 삭제 가능
    데이터 유출 방지 DLP : 정보유출방지, 정보 흐름 모니터링
    디지털 저작권 관리 DRM : 파일 자체에 암호 걸어 권한 없는 사용자 사용 못함

  7. 인증 기술 유형
    지식기반 인증
    소지기반 인증
    생체기반 인증(지문, 홍채)
    특징기반 인증(걸음걸이, 서명)

  8. 비즈니스 연속성 계획 관련 용어
    BIA : 비즈니스 영향력 분석
    BCP : 비즈니스 연속성 유지 계획
    RTP : 재해 복구 시간 선정
    RPO : 재해 복구 지점 선정
    DRP : 재난 복구 계획
    DRS : 재난 복구 시스템

데이터 베이스 입출력 구현

  1. 정규화
    1NF : 도메인이 원자값
    2NF : 부분함수 종속제거, 완전함수종속관계
    3NF : 이행함수 종속제거
    BCNF : 결정자함수 종속제거
    4NF : 다치 종속제거
    5NF : 조인 종속제거

  2. 파티션 : 테이블 또는 인덱스 등을 나누어둔 단위 (파티셔닝 : 성능 개선 및 관리를 위해 테이블 또는 인덱스 등을 파티션이라는 단위로 나누어 저장하는 설계 기법)
    레인지 파티셔닝 : 연속적 숫자나 날짜를 기준으로 하는 파티셔닝
    해시 파티셔닝 : 파티션 키의 해시함수 값에 의한 파티셔닝
    컴포지트 파티셔닝 : 범위 분할 + 해시함수 적용 재분할 하는 파티셔닝 리스트 파티셔닝 : 특정 파티션에 저장될 데이터에 대한 “명시적 제어가 가능한” 파티셔닝
    라운드로빈 파티셔닝 : 라운트로빈 분할로 회전하면서 새로운 행이 파티션에 할당

  3. 병행제어 : 다수 사용자 환경에서 여러 트랜잭션을 수행할 때 ,DB일관성 유지를 위해 상호작용을 제어하는 기법
    로킹 : 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 ‘직렬화 기법’
    낙관적 검증 : 우선 트랜잭션하고, 트랜잭션 종료시 검증하여 DB에 반영
    타임 스탬프 순서 : 트랜잭션 실행전 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업 수행
    다중 버전 동시제어(MVCC) : 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직결 가능성이 보장되는 버전 선택하여 접근

  4. 병행제어 미보장시 문제점
    갱신손실 : 먼저 실행 결과 덮어쓰임
    모순성 : 두 트랜잭션 동시 실행 -> 일관성 결여
    현황파악오류 : 트랜잭션 중간 결과 다른애 참조 오류
    연쇄복귀 : 특정 트랜잭션이 처리 취소 시, 처리한 곳의 부분 취소하지 못하는 경우

  5. 회복기법 : 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터를 손상되기 이전의 정상적인 상태로 복구시키는 기법
    로그기반 - 지연갱신기법 : 트랜잭션 완료전까지 DB 기록
    - 즉각갱신기법 : 트랜잭션 수행 중 갱신 결과 즉각 반영
    세이브포인트기반 : 장애발생 이전 SavePoint로 복구
    그림자페이징기반 : 트랜잭션 수행시 복제본을 생성하여 장애 발생시 이를 이용하여 회복

  6. 절차형SQL
    프로시저 : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리 집합
    사용자 정의 함수 : 일련의 SQL처리를 수행하고, 수행 결과를 단일 값으로 반환
    트리거 : 데이터베이스에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행

운영체제

  1. 선점형 스케줄링 알고리즘 : 새치기 가능
    라운드 로빈(Round Robin) : 균등한 점유시간, 시분할 시스템 사용
    SRT(Shortest Remaining Time First) : 짧은 수행시간 프로세스 우선 수행
    다단계 큐 : 작업 그룹 분할, 여러큐 사용, 독립된 스케줄링
    다단계 피드백 큐 : FCFS + RR

  2. 비선점형 스케줄링 알고리즘 : 새치기 불가능
    우선순위 : 우선순위 정하고 주요 긴급서비스에 대한 우선순위 처리
    기한부 : 기한 정하고 그 기한내 마무리 되게 스케줄링
    FCFS(FIFO) : 먼저온 거 먼저 처리
    SJF(Shortest Job First) : “도착하는 시점에 따라 그 당시에” 프로세스 수행시간 가장 짧은거 수행 <- 기아현상 발생 가능
    HRN(Highest Response Ratio Next) (대기시간 + 서비스 시간) / 서비스 시간 <- 기아현상 최소화

  3. 페이지 교체 알고리즘
    FIFO : 온 순서대로 교체해서 나감
    LRU(Least Recently Used) : 가장 오래 사용 하지 않은 페이지 교체
    LFU(Least Frequently Used) : 가장 오래 참조되지 않은 페이지 교체
    MFU(Most Frequently Used) :가장 많이 참조된 페이지 교체

  4. 메모리 관리
    반입기법 : 주기억 장치에 적재할 다음 프로세서의 반입 시기 결정 (When)
    예상반입 기법, 요구 반입 기법
    배치기법 : 디스크에 있는 프로세서를 주기억장치의 어느 위치에 저장할지 결정 (Where)
    First-fit, Best-fit, Worst-fit
    할당기법 : 실행해야할 프로세스를 주기억 장치에 어떤 방법으로 할당할 것인지 결정 (How)
    교체기법 : 재배치 기법으로 주기억장치에 있는 프로세스중 어떤 프로세스를 재거할 것인지 결정 (Who)

네트워크

  1. OSI 7계층
    응용계층 : 사용자와 네트워크 서비스 간 응용 서비스 연결, 데이터 생성 HTTP, FTP
    표현계층 : 인코딩/디코딩, 압축/해제, 암호화/복호화, 부호교환, 데이터 형식 결정 JPEG, MPEG
    세션계층 : 송수신 간의 “논리적”연결 생성 및 제어 RPC, NetBIOS
    전송계층 : 종단간 신뢰성 있는 데이터 전송 담당, 재조합, 연결제어, 흐름제어, 오류제어, 혼잡제어 TCP(연결성), UDP(비연결성)
    네트워크계층 : 종단간 전성을 위한 경로 설정 담당, 최적화된 경로 제공 IP, ICMP
    데이터링크 계층 : 인접 노드간 신뢰성 있는 전송 제어, 흐름제어, 오류제어, 회선제어 수행 HDLC, PPP
    물리 계층 : 물리적 장치의 전기적, 전자적 연결, 주소개념x, 디지털 데이터를 아날로그적인 전기신호로 변환하여 물리적 전송 RC-232C

  2. 데이터링크 프로토콜
    HDLC(High-level Data Link Control) : 점대점 링크 및 멀티포인트 링크, ISO에서 표준화한 “동기식 비트” 중심 프로토콜
    PPP(Point to Point Protocol) : 두 통신 노드간 직접적인 연결을 위해 사용
    X.25 : 연결형 프로토콜 흐름제어, 오류제어기능 있음, 신뢰성 높고, 한 회선에 장애가 발생해도 우회 전송 가능,
    ATM(Asynchronous Transport Mode) : 정보전달 기본 단위 “53”바이트, 비동기식 시분할 다중화 방식

  3. 네트워크 계층 프로토콜
    IP : 송수신 간 패킷 단위로 데이터 주고받을 때 사용
    IPv4 : 10진수, 12자리, 0~255, 32비트(8비트씩 4개)
    IPv6 : 16진수, 128비트(16비트씩 8부분)
    ICMP : IP패킷 처리할 때 발생되는 문제 알려줌, 네트워크 상태 진단
    IGMP : 인터넷 그룹 관리 프로토콜, 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 형성시 사용 IPTV등
    ARP : IP -> MAC(물리적 주소) 변환
    RARP : MAC는 알지만 IP는 모를 때 역순 주소 결정
    라우팅 프로토콜
    RIP : 거리 백터 알고리즘 기반, 목적지까지 거리 방향 결정
    OSFP : 상태링크알고리즘 기반, 다익스트라 알고리즘 기반, 최단 경로 트리 구성
    BGP : 거리 백터알고리즘, 변경 발생시 대상까지 가장 짧은 경로

  4. 세션 계층 프로토콜
    RPC(Remote Procedure Call) : 원격 프로시저 호출, 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에 함수나 프로시저 실행
    NetBIOS : 7계층에 API를 제공하여 상호 통신할 수 있게 해줌

  5. 응용 계층 프로토콜
    HTTP : 하이퍼텍스트 빨리 교환하기 위한 프로토콜
    FTP : 파일 전송 프로토콜
    SMTP : 메일 보내는 프로토콜, MQTT(iot에 사용)
    POP3 : 메일 가져오는데 포트번호 110
    IMAP : 메일 가져오는데 포트번호 143, 온/오프라인 모두 지원
    Telnet : 인터넷이나 로컬영역에서 네트워크 연결에 사용
    SSH : Telnet보다 강력한 원격 접속 지원
    SNMP(Simple Network Management Protocol) : 네트워크 관리 프로토콜

통합 구현 / 인터페이스 구현

  1. 직접 연계 방식
    DB링크 : 수신 측에서 DBㄹ이크 송신측에 직접 참조
    DB연결 : 수신 WAS에서 송신 커넥션풀 생성, 연계시스템이 연결
    API : 송신 시스템의 DB에서 데이터 읽어서 제공
    JDBC : 자바에서 DB 접속할 수 있게 해주는 자바 API
    하이퍼링크

  2. 간접 연계 방식
    EAI : 애플리케이션 간 ‘단단한 결합’ Point to Point, Hub&Spoke, Message bus, Hybrid
    ESB : 애플리케이션 간 ‘느슨한 결합’, 지능형라우터, 포맷변환, 개방형 표준 <- 기업 내부 + 외부
    웹서비스 : 네트워크에 분산 된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유
    SOAP : HTTP, HTTPS, SMTP등을 사용하영 XML 기반 메시지를 네트워크 상태에서 교환하는 프로토콜
    WSDL : 웹 서비스에 대한 상세정보가 기술되어 있는 XML형식으로 구현된 언어
    UDDI : WSDL을 등록하고 접근하기 위한 저장소, 공개적으로 접근,검색이 가능한 레지스트리 이자 표준
    IPC(Inter Process Communication)방식 : 프로세스간 서로 데이터를 주고받기 위한 통신 기술
    소켓 : 네트워크를 경유하는 ‘프로세스 간 통신의 접속점’

  1. 인터페이스 구현 기술
    JSON
    XML
    AJAX : 자바스크립트 이용해 웹서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹기술
    REST : 웹 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처

보안 용어

  1. DOS : 혼자서 서버 과부하 만들어서 서비스 거절 시키는 공격

  2. DDOS : 좀비PC 이용해서 하는 DOS공격

  3. DRDOS : 어쩌고 저쩌고 반사시켜 추적 어렵게 공격하는 DDOS 공격

  4. 죽음의 핑 (PoD) : ICMP패킷 아주 작게 쪼개서 보내서 패킷 재조합과정에서 버퍼오버플로우 발생시킴

  5. 티어드롭 : IP 단편의 offset 값을 서로 중첩되도록 조작하여 이를 재조합하는 상대에게 에러 유발

  6. 랜드어택 : 서버가 자기 자신에게 응답하도록 유도

  7. 스머프 : 여러 곳에서 서버로 요청이 들어오도록 공격

  8. 봉크 : 시퀀스번호 같은거 계속 보냄

  9. 보잉크 : 시퀀스 번호 중간에 빈공간 보냄

  10. SYN-Flooding : 다량의 TCP SYN 보내서 시스템 마비

  11. UDP-Flooding : 다량의 UDP 보내서 시스템 마비

  12. HTTP GET Flodding : 다량의 GET메시지로 시스템 마비

  13. 세션 하이재킹 : 특정 상태 를 가로챔 예를 들어 로그인 상태 그런거 / TCP 취약점 이용한 건 TCP세션하이재킹

  14. Slow HTTP GET DOS : 헤더에 문장 끝 알려주는 기호 빼서 전송해서 장기간 접속 유지

  15. Slow HTTP POST DOS : 요청 헤더 Content-lengh. 비정상적으로 크게 설정해 장기간 접속 유지

  16. Slow HTTP Read DOS : 데이터 처리율을 감소시키고 (제로 윈도우 어쩌고) 다수 HTTP 패킷을 보내 장기간 접속 유지

  17. Hulk DOS : 공격 대상 URL 변경하면서 다량 GET 요청

  18. Hash DOS : 수많은 파라미터 POST 방식으로 여러개 보내서 해쉬 충돌 유발

  19. 스니핑 : 정보 훔쳐보는 수동적 공격 기법

  20. 스니퍼 : 네트워크 취약점 살펴보는 도구

  21. IP 스푸핑 : IP 인증된 사용자 처럼 속여서 스니핑 하는 거

  22. ARP 스푸핑 : ARP Reply만들어서 MAC 주소 바꿔서 스니핑 하는 거

  23. ICMP Redirect : ICMP Redirect 를 바꿔서 특정 목적지로 가는 패킷 스니핑 하는 거

  24. 패스워드 크래킹
    무차별 크래킹(아무거나입력)
    사전 크래킹(사전 만들어두고 크래킹)
    패스워드 하이브리드 공격(무차별 + 사전)
    레인보우 테이블 공격(해시값 미리 생성해두고 해시값 역추적)

  1. 버퍼오버 플로우 : 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력해 프로세스 흐름 변경, 악성코드 실행
    스택카드 : 오버플로우 발생시 카나리 어쩌고로 비교
    스택쉴드 : Global RET에 저장해서 비교
    ASLR : 메모리 공격 방어하기 우해 주소 공간 배치 난수화, 리눅스 설정 가능

  2. 백도어 : 정상적인 절차를 우회하는 방법

  3. 포맷 스트링 공격. : 포맷 스트링을 인자로하는 함수 어쩌고 RET위치 어쩌고 쉘 읽어오는 거

  4. 레이스컨디션 공격 : 둘이상의 스레드가 동시에 어쩌고 순서 꼬일 때 어쩌고 오류 발생하는 거

  5. 키로거 공격 : 키보드 움직임 읽어서 정보 빼오는 거

  6. 루트킷 : 불법 해킹 사용되는 도구모음

  7. 스피어 피싱 : 한 사람 정해놓고 계속 메일 보내고 어쩌고해서 해킹 하려는 거

  8. 스미싱 : SMS + Pising 합성어

  9. 큐싱 : QRcode + Pishing 합성어

  10. 악성봇 : 좀비 PC

  11. 봇넷 : 좀비 pc 들의 네트워크

  12. 웜 : 자가복제, 네트워크 연결로 전파 됨

  13. 공급망 공격 : 정상 공급망에 있는 파일이나 소스코드 악성코드로 바꿔서 공격

  14. 제로데이 공격 : 버그 뜬거 패치하기전에 공격

  15. 이블 트윈 : 합법적인 wifi인 것 처럼 속이는 거

  16. APT공격 : 특수 목적으로 하나의 조직이 한 대상에게 집중적으로 총 공세하는 거

  17. 사이버 킬체인 : 공격형 방위 시스템 7단계 보안 모델 어쩌고

  18. XSS : 악의적 스크립트 넣어두고 페이지 들어오면 실행

  19. SQL Injection : 외부 입력값 sql 쿼리문에 삽입해서 공격하는 거

  20. CSRF : 사이트간 ‘요청 위조’, 자신과 무관하게 공격자가 의도하는 요청을 특정사이트에 요청

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글