정처기 실기) 개념정리

정우시·2022년 7월 3일
1

3. 정처기 실기

목록 보기
1/8

1. 개발 방법론

소프트웨어 생명주기(SDLC; Software Development Life Cycle) 모델

  • 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.
  • 키워드: 시스템, 요구분석, 유지보수, 전 공정, 체계화, 절차

소프트웨어 생명주기 모델 프로세스

두음 암기: 요설구테유

순서프로세스설명활동
1요구사항 분석소프트웨어의 기능과 제약 조건, 목표 등을 소프트웨어 사용자와 함께 정의하는 단계기능 요구사항, 비기능 요구사항
2설계수행 방법을 논리적으로 결정하는 단계시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계
3구현언어 선택, 기법, 스타일, 순서 등을 결정하는 단계인터페이스 개발, 자료 구조 개발, 오류 처리
4테스트시스템을 검사하고 평가하는 단계단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트
5유지보수시스템이 인수되고 설치된 후 일어나는 모든 활동예방, 완전, 교정, 적응 유지보수

소프트웨어 생명주기 모델 종류

두음 암기

소프트웨어 생명주기 모델 종류

  • 폭프나반: 폭포수 모델, 프로토타입 모델, 나선형 모델, 반복적 모델

나선형 모델 절차

  • 계위개고: 계획 및 정의, 위험 분석, 개발, 고객 평가

폭포수 모델(Waterfall Model)

  • 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델

프로토타이핑 모델(Prototyping Model)

  • 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델

나선형 모델(Spiral Model)

  • 소프트웨어 개발 시 위험을 최소화하기 위해 점진적으로 개발해 나가는 모델
  • 절차: 계획 및 정의 → 위험 분석 → 개발 → 고객 평가

반복적 모델(Iteration Model)

  • 반복적으로 개발하여 점증적으로 완성 시키는 SDLC 모델

소프트웨어 개발 방법론 종류

  • 구조적 방법론(구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용)
  • 정보공학 방법론
  • 객체 지향 방법론
  • 컴포넌트 기반 방법론
  • 애자일 방법론
  • 제품 계열 방법론

객체 지향 분석 방법론 종류

  • OOSE - 야콥슨
  • OMT - 럼바우
    • 객체 모델링(Object Modeling) 또는 정보 모델링(Information Modeling)
    • 동적 모델링(Dynamic Modeling)
    • 기능 모델링(Functional Modeling)
  • OOD - 부치

애자일 방법론

  • 절차보다 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 개발 방법론이다.

애자일 방법론 유형

  • XP(extreme programming), 스크럼(SCRUM), 린(LEAN)

XP의 5가지 가치

두음 암기: 용단의 피존

  • 용기(Courage), 단순성(Simplicity), 의사소통(Communication), 피드백(Feedback), 존중(Respect)

XP의 12가지 기본원리

  • 짝 프로그래밍(Pair Programming)
  • 공동 코드 소유(Collective Ownership)
  • 지속적인 통합(CI; Continuous Integration): 매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리이다.
  • 계획 세우기(Planning Process)
  • 작은 릴리즈(Small Release)
  • 메타포어(Metaphor)
  • 간단한 디자인(Simple Design)
  • 테스트 기반 개발(TDD; Test Driven Develop): 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램 코드를 작성한다는 원리이다.
  • 리팩토링(Refactoring): 프로그램의 기능은 바꾸지 않으면서 중복 제거, 단순화 등을 위해 시스템을 재구성한다는 원리이다.
  • 40시간 작업(40-Hour Work)
  • 고객 상주(On Site Customer)
  • 코드 표준(Coding Standard)

델파이 기법(Delphi Method)

  • 전문가의 경험적 지식을 통한 문제 해결 및 미래예측을 위한 기법이다.

비용산정 모형 종류

  • LoC(Lines of Code) 모형
  • Man Month
  • COCOMO(COnstructive COst MOdel) 모형
  • 푸트남(Putnam) 모형
  • 기능점수(FP; Function Point) 모형

COCOMO 모형

  • 조직형(Organic Mode)
  • 반 분리형(Semi-Detached Mode)
  • 임베디드형(Embedded Mode)

일정관리 모델 종류

  • 주 공정법(CPM)
    • 임계 경로: 가장 오랜 기간이 걸리는 경로를 찾는다.
  • PERT
  • 중요 연쇄 프로젝트 관리(CCPM)

2. 아키텍처

현행 시스템 파악 절차

현행 시스템 파악 절차

  • 1단계: 구성/기능/인터페이스 파악 → 2단계: 아키텍처 및 소프트웨어 구성 파악 → 3단계: 하드웨어 및 네트워크 구성 파악

소프트웨어 아키텍처 4+1 뷰

두음 암기: 유논프구배

  • 소프트웨어 아키텍처 4+1 뷰
    • 유스케이스 뷰(Usecase View)
    • 논리 뷰(Logical View)
    • 프로세스 뷰(Process View)
    • 구현 뷰(Implementation)
    • 배포 뷰(Deployment View)

소프트웨어 아키텍처 패턴 유형

  • 소프트웨어 아키텍처 패턴 유형
    • 계층화 패턴(Layered Pattern)
    • 클라이언트-서버 패턴(Client-Server Pattern)
    • 파이프-필터 패턴(Pipe-Filter Pattern)
    • 브로커 패턴(Broker Pattern)
    • 모델-뷰-컨트롤러 패턴(MVC; Model View Controller Pattern)

아키텍처 비용 평가모델 종류

두음 암기: SACAA(사카) → 사카린

  • 아키텍처 비용 평가모델 종류
    • SAAM(Software Architecture Analysis Method)
    • ATAM(Architecture Trade-off Analysis Method)
    • CBAM(Cost Benefit Analysis Method)
    • ADR(Active Design Review)
    • ARID(Active Reviews for Intermediate Designs)

3. 디자인 패턴

디자인 패턴 구성요소

두음 암기: 패문솔 사결샘

  • 디자인 패턴 구성요소
    • 패턴의 이름
    • 문제 및 배경
    • 솔루션
    • 사례
    • 결과
    • 샘플 코드

목적에 따른 디자인 패턴 유형

두음 암기: 생구행

  • 목적에 따른 디자인 패턴 유형
    • 생성
    • 구조
    • 행위

목적에 따른 디자인 패턴 종류 - 생성 패턴

  • 목적에 따른 디자인 패턴 종류 - 생성 패턴
    • Builder
    • Prototype
    • Factory Method
    • Abstract Factory
    • Singleton

목적에 따른 디자인 패턴 종류 - 구조 패턴

  • 목적에 따른 디자인 패턴 종류 - 구조 패턴
    • Bridge
    • Decorator
    • Facade
    • Flyweight
    • Proxy
    • Composite
    • Adapter

목적에 따른 디자인 패턴 종류 - 행위 패턴

  • 목적에 따른 디자인 패턴 종류 - 행위 패턴
    • Mediator
    • Interpreter
    • Iterator
    • Template Method
    • Observer
    • State
    • Visitor
    • Command
    • Strategy
    • Memento
    • Chain of Responsibility

4. OSI 7계층

두음 암기: 아파서 티내다, 피나다

  • OSI 7계층
계층 이름설명프로토콜전송단위장비
응용 계층(Application Layer)사용자와 네트워크 간 응용서비스 연결, 데이터 생성HTTP, FTP데이터(Data)호스트(PC 등)
표현 계층(Presentation Layer)데이터 형식 설정, 부호교환, 암호화 또는 복호화JPEG, MPEG데이터(Data)호스트(PC 등)
세션 계층(Session Layer)송수신 간의 논리적인 연결, 연결 접속, 동기제어RPC, NetBIOS데이터(Data)호스트(PC 등)
전송 계층(Transport Layer)송수신 프로세스 간의 연결, 신뢰성 있는 통신 보장, 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼합 제어TCP, UDP세그먼트(Segment)L4 스위치
네트워크 계층(Network Layer)단말기 간 데이터 전송을 위한 최적화된 경로 제공IP, ICMP패킷(Packet)라우터
데이터 링크 계층(Data Link Layer)인접 시스템 간 데이터 전송, 전송 오류 제어, 동기화, 오류 제어, 흐름 제어, 회선 제어HDLC, PPP프레임(Frame)브리지, 스위치
물리 계층(Physical Layer)0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환RS-232C비트(Bit)허브, 리피터
  • 응용 계층(Application Layer)
  • 표현 계층(Presentation Layer)
  • 세션 계층(Session Layer)
  • 전송 계층(Transport Layer)
  • 네트워크 계층(Network Layer)
  • 데이터 링크 계층(Data Link Layer)
  • 물리 계층(Physical Layer)

5. 애플리케이션 테스트 관리

테스트 유형

  • 테스트
    • 정적 테스트
      • 리뷰, 정적 분석
    • 동적 테스트
      • 블랙박스 테스트(명세 기반 테스트)
      • 화이트박스 테스트(구조 기반 테스트)

화이트박스 테스트(White-Box Test)

두음 암기: 구결조 조변다 기제데

  • 화이트박스 테스트
    • 구문 커버리지 = 문장 커버리지(Statement Coverage)
    • 결정 커버리지 = 선택 커버리지(Decision Coverage) = 분기 커버리지(Branch Coverage)
    • 조건 커버리지(Condition Coverage)
    • 조건/결정 커버리지(Condition/Decision Coverage)
    • 변경 조건/결정 커버리지(Modified Condition / Decision Coverage)
    • 다중 조건 커버리지(Multiple Condition Coverage)
    • 기본 경로 커버리지 = 경로 커버리지(Base Path Coverage)
    • 제어 흐름 테스트(Control Flow Testing)
    • 데이터 흐름 테스트(Data Flow Testing)

블랙박스 테스트(Black-Box Test)

두음 암기: 동경결상 유분페원비

  • 블랙박스 테스트
    • 동등분할 테스트 = 동치 분할 테스트, 균등 분할 테스트, 동치 클래스 분해 테스트(Equivalence Partitioning Testing)
    • 경곗값 분석 테스트 = 한곗값 테스트(Boundary Value Analysis Testing)
    • 결정 테이블 테스트(Decision Table Testing)
    • 상태 전이 테스트(State Transition Testing)
    • 유스케이스 테스트(Use Case Testing)
    • 분류 트리 테스트(Classification Tree Method Testing)
    • 페어와이즈 테스트(Pairwise Testing)
    • 원인-결과 그래프 테스트(Cause-Effect Graph Testing)
    • 비교 테스트(Comparison Testing)

테스트 레벨의 종류

두음 암기: 단통시인

  • 테스트 레벨 종류
    • 단위 테스트
    • 통합 테스트
    • 시스템 테스트
    • 인수 테스트

6. 데이터 모델

데이터 모델(Data Model) 개념

  • 데이터 모델(Data Model) 개념
    • 연산(Operation)
    • 구조(Structure)
    • 제약 조건(Constraint)

데이터 모델 절차

  • 데이터 모델 절차
    • 요구사항 분석
    • 개념적 설계
    • 논리적 설계
    • 물리적 설계

7. 정규화 / 반 정규화

정규화

  • 정규화(Normalization)의 개념

    • 데이터의 중복성을 제거하고 무손실을 분해하는 과정이다.
  • 데이터베이스 이상현상

    • 삽입 이상
    • 삭제 이상
    • 갱신 이상
  • 데이터베이스 정규화 단계

    • 1정규형(1NF): 원자값으로 구성
    • 2정규형(2NF): 부분 함수 종속 제거(완전 함수적 종속 관계)
    • 3정규형(3NF): 이행함수 종속 제거
    • 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
    • 4정규형(4NF): 다치(다중 값) 종속 제거
    • 5정규형(5NF): 조인 종속 제거

반 정규화

  • 반 정규화(De-Normalization) 개념
    • 정규화된 것에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 것을 말한다.
  • 반 정규화 기법
    • 테이블 병합
    • 테이블 분할
    • 중복 테이블 추가
    • 컬럼 중복화
    • 중복관계 추가

8. 응집도 / 결합도

응집도

  • 응집도(Cohesion)의 개념

    • 응집도는 모듈의 독립성을 나타내는 정도를 말한다.
    • 높을수록 좋다.
  • 응집도의 유형

    • 우연적 응집도(Coincidental Cohesion)
    • 논리적 응집도(Logical Cohesion)
    • 시간적 응집도(Temporal Cohesion)
    • 절차적 응집도(Procedural Cohesion)
    • 통신적 응집도(Communication Cohesion)
    • 순차적 응집도(Sequential Cohesion)
    • 기능적 응집도(Functional Cohesion)

    결합도

  • 결합도(Coupling)의 개념

    • 모듈 간의 상호의존성을 말한다.
    • 낮을수록 좋다.
  • 결합도의 유형

    • 내용 결합도(Content Coupling)
    • 공통 결합도(Common Coupling)
    • 외부 결합도(External Coupling)
    • 제어 결합도(Control Coupling)
    • 스탬프 결합도(Stamp Coupling)
    • 자료 결합도(Data Coupling)

9. 소프트웨어 개발 보안 구축

SW 개발 보안의 3대 요소

  • SW 개발 보안의 3대 요소
    • 기밀성(Confidentiality)
    • 무결성(Integrity)
    • 가용성(Availability)

DoS 공격의 종류

  • DoS 공격의 종류
    • SYN 플러딩(SYN Flooding)
    • UDP 플러딩(UDP Flooding)
    • 스머프(Smurf) / 스머핑(Smurfing)
    • 죽음의 핑(PoD; Ping of Death)
    • 랜드 어택(Land Attack)
    • 티어 드롭(Tear Drop)
    • 봉크(Bonk) / 보잉크(Boink)

    네트워크 공격

  • 네트워크 공격
    • 스니핑(Sniffing)
    • 네트워크 스캐너(Scanner), 스니퍼(Sniffer)
    • 패스워드 크래킹(Password Cracking)
    • IP 스푸핑(IP Spoofing)
    • ARP 스푸핑(ARP Spoofing)
    • ICMP Redirect 공격
    • 트로이 목마(Trojan Horses)

    서버 접근 통제의 유형

  • 서버 접근 통제 유형
    • 임의적 접근 통제(DAC)
    • 강제적 접근 통제(MAC)
    • 역할 기반 접근 통제(RBAC)

    3A

  • 3A
    • 인증(Authentication)
    • 권한 부여(Authorization)
    • 계정 관리(Accounting)

    암호 알고리즘 상세

  • 대칭 키 암호화 알고리즘
    • DES
    • SEED
    • AES
    • ARIA
  • 비대칭 키 암호화 알고리즘
    • 디피-헬만
    • RSA
    • ECC
    • ElGamal
  • 해시(Hash) 암호화 알고리즘
    • MD5
    • SHA-1
    • SHA-256/384/512
    • HAS-160
profile
프론트엔드 공부하고 있는 정우시입니다.

0개의 댓글