정보처리기사 개념 정리 (1)

·2025년 4월 18일

just공부

목록 보기
17/47

1. 요구사항 확인

1) 소프트웨어 생명 주기

  1. 폭포수 모형
  • 고전적 생명 주기 모형
  • 가장 오래되고 전통적인 SW 생명 주기 모형
  1. 프로토타입 모형
  • 실제 개발될 소프트웨어에 대한 Prototype을 만들어 최종 결과물을 예측
  1. 나선형 모형
  • 보헴이 제안
  • 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발
  • 계획 → 분석 → 개발 → 평가
  1. 애자일 모형
  • 변화에 유연하게 대응
  • 폭포수 모델과 대조적
  • 개발 모형
    • 스크럼
    • XP(eXtreme Programming)
    • 칸반

2) 스크럼(Scrum) 기법

  • 팀 중심
  • 개발 작업에 관한 전반적인 것을 스스로 해결
  • 계획 → 진행(스프린트) → 회의 → 검토 → 회고

3) XP(eXtreme Programming) 기법

  • 짧고 반복적인 개발주기, 단순 설계로 소프트웨어를 빠르게 개발
  • 5대 핵심 가치
    • 의사소통
    • 단순성
    • 용기
    • 존중
    • 피드백
  • 계획 → 진행(iteration) → 검사 → 출시(Release)

4) 요구사항 분석

  • 요구사항 분석
    • 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화
  • 구조적 분석 기법
    • 자료의 흐름과 처리를 중심
    • 구조적 분석 기법 도구
      • 자료 흐름도(DFD)
      • 개체 관계도(ERD)
      • 상태 전이도(STD)
      • 제어 명세서

5) UML(Unified Modeling Language)

  • 의사소통을 위한 대표적인 객체지향 모델링 언어
  • 구성 요소
    • 사물 : 관계가 형성될 수 있는 대상들
    • 관계 : 사물과 사물 사이의 연관성
    • 다이어그램 : 사물과 관계를 도형으로 표현한 것

UML - 사물

  • 연관 관계 : 2개 이상의 사물이 서로 관련
  • 집합 관계 : 하나의 사물이 다른 사물에 포함
  • 포함 관계 : 포함하는 사물의 변화가 포함되는 사물에 영향을 미침
  • 일반화 관계 : 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적
    • 부모 - 자식 관계
  • 의존 관계 : 연관은 있으나 필요에 의해 짧은 기간만 연관을 유지
  • 실체화 관계 : 서로를 그룹화할 수 있는 관계

UML - 다이어그램

분류종류내용
구조적 다이어그램클래스 다이어그램- 클래스 사이의 관계
객체 다이어그램- 인스턴스를 객체 사이의 관계로 표현
- 럼바우
컴포넌트 다이어그램- 컴포넌트 간의 관계 또는 인터페이스를 표현
- 구현 단계
배치 다이어그램- 물리적 요소들의 위치 표현
복합체 구조 다이어그램- 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 구조 표현
패키지 다이어그램- 모델 요소들을 그룹화한 패키지들의 관계
행위 다이어그램유스케이스 다어이그램- 사용자의 요구 분석
시퀀스 다이어그램- 상호작용하는 시스템이나 객체들이 주고받는 메시지 표현
커뮤니케이션 다이어그램- 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관 관계 표현
상태 다이어그램- 변화 혹은 상호 작용에 따라 상태가 어떻게 변하는지 표현
활동 다이어그램- 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
상호작용 개요 다이어그램- 상호작용 다이어그램 간의 제어 흐름 표현
타이밍 다이어그램- 객체 상태 변화와 시간 제약을 명시적으로 표현

6) 비용 산정 기법 - 상향식

  • LOC (source Line Of Code) 방식
    • 비관치, 낙관치, 기대치 측정
    • 비관치 : 가장 많이 측정된 코드 라인 수
    • 낙관치 : 가장 적게 측정된 코드 라인 수
    • 기대치 : 측정된 모든 코드 라인 수의 평균
    • 노력 = LOC / 생산코드라인수
    • 개발 비용 = 노력 x 단위 비용(인건비)
    • 개발 기간 = 노력 / 투입 인원
    • 생산성 = LOC / 노력

7) 비용 산정 기법 - 하향식

  • 델파이
    • 많은 전문가의 의견을 종합하여 산정

8) 소프트웨어 개발 프레임워크

  • 반제품 형태의 소프트웨어 시스템
  • 스프링 프레임워크
  • 전자정부 프레임워크
  • 닷넷 프레임워크(.NET Framework)

2.데이터 입•출력 구현

1) 데이터베이스 개요

  • DBMS (DataBase Management System)

    • 필수 기능
      • 정의
      • 조작
      • 제어
  • 스키마(Schema)

    종류내용
    외부 스키마개인의 입장에서 논리적 구조 정의
    개념 스키마조직 전체의 데이터베이스, 전체적인 논리적 구조
    내부 스키마물리적 저장장치

2) 구성 요소

  • 개체 (Entity)
    • 다른 개체와 하나 이상의 관계
  • 속성 (Attribute)
    • 가장 작은 논리적 단위
    • 데이터 항목 또는 데이터 필드
    • Degree 또는 차수 : 속성의 수
  • 관계 (Relationship)
    • 개체와 개체 사이의 논리적 연결
  • 튜플 (Tuple)
    • 릴레이션을 구성하는 각각의 행
    • 레코드와 같은 의미
    • Cardinality 또는 기수 : 튜플의 수
  • 도메인 (Domain)
    • 원자값들의 집합

3) 관계형 데이터베이스의 제약 조건 - 키(Key)

  • 후보키 (Candidate Key)
    • 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
    • 유일성, 최소성 모두 만족시켜야 함
  • 기본키 (Primary Key)
    • 후보키 중 선정된 키
  • 대체키 (Alternate Key)
    • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
  • 슈퍼키 (Super Key)
    • 속성들의 집합으로 구성된 키
    • 유일성 만족
  • 외래키 (Foreign Key)
    • 다른 릴레이션의 기본키를 참조하는 속성

4) 관계형 데이터베이스의 제약 조건 - 무결성(Integrity)

종류내용
개체 무결성기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없음
참조 무결성외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함
도메인 무결성주어진 속성 값이 정의된 도메인에 속한 값이어야 함

5) 관계대수

연산기호설명SQL예시
Selectionσ조건에 맞는 튜플 선택WHEREσ(부서='인사')(직원)
Projectionπ특정 속성만 추출SELECTπ 이름,직급(직원)
Join두 릴레이션을 공통 속성 기준으로 결합JOIN직원 ⋈ 부서
Cartesian Product×모든 튜플을 곱하여 조합직원 × 부서
Difference (차집합)A에만 존재하고 B에는 없는 튜플EXCEPT학생 − 수강생
UNION (합집합)두 릴레이션의 모든 튜플 합집합UNION학생 ∪ 수강생
Intersection (교집합)두 릴레이션에 모두 있는 튜플INTERSECT학생 ∩ 수강생
Division%모든 조건을 만족하는 튜플A % B

6) 이상 / 함수적 종속

  • 삽입 이상 (Insertion Anomaly)
    • 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 됨
  • 삭제 이상 (Deletion Anomaly)
    • 의도와는 상관없는 값들도 함께 삭제
  • 갱신 이상 (Update Anamaly)
    • 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생김

7) 정규화 (Normalization)

절차설명
제 1정규화도메인의 원자성 확보
제 2정규화부분 함수 종속성 제거
제 3정규화이행 함수 종속성 제거
BCNF모든 결정자가 후보키 집합에 속해야 함
제 4정규화다중값 종속 제거
제 5정규화조인 종속 제거
  • 도부이결다조

8) 데이터베이스 보안

  • 접근 통제

    정책통제 권한정책 기준유연성보안성
    MAC (Mandatory Access Control)관리자보안 등급에 따라 결정낮음매우 강함
    RBAC (Role-Based Access Control)관리자(역할 기준)사용자 -> 역할 -> 권한 간의 연결매우 높음역할 설계에 따라 다름
    DAC (Discretionary Access Control)소유자사용자가 설정한 권한에 따름높음상대적으로 약함

3. 통합 구현

1) XML (eXtensible Markup Language)

  • 다목적 마크업 언어
  • 트리 구조로 구성

2) SOAP (Simple Object Access Protocol)

  • XML을 교환하기 위한 통신 규약
  • 무거운 구조인 SOAP 대신 RESTful 프로토콜 이용하기도 함

4. 서버 프로그램 구현

1) 아키텍쳐 패턴

패턴설명
레이어 패턴시스템을 계층으로 구분 및 구성
클라이언트-서버 패턴하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성
파이프-필터 패턴각 단계를 필터로 캡슐화하여 파이프를 통해 전송
MVC(Model-View-Controller) 패턴모델, 뷰, 컨트롤러로 구조화

2) 객체 지향 분석 및 설계

객체 지향 분석의 방법론

종류내용
럼바우객체, 동적, 기능 모델로 나눠 수행
부치미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스 모두 사용
Jacobson유스케이스 강조
Coad와 YourdonE-R 다이어그램

3) 결합도

종류내용
내용 결합도한 모듈이 직접 참조하거나 수정
공통 결합도공유되는 공통 데이터 영역을 여러 모듈이 사용
외부 결합도외부의 다른 모듈에서 참조
제어 결합도내부의 논리적 흐름을 제어하기 위해, 권리 전도 현상
스탬프 결합도자료 구조가 전달될 때
자료 결합도자료 요소로만 구성될 때
  • 내공외제스자 (결합도 약한 순)

4) 응집도

종류내용
기능적 응집도모든 기능 요소들이 단일 문제와 연관
순차적 응집도그 다음 활동 입력데이터로 사용할 경우
교환적 응집도동일한 입출력 사용, 다른 기능 수행하는 요소들이 모임
절차적 응집도기능을 순차적으로 수행할 때
시간적 응집도특정 시간에 처리되는 기능을 모아 하나의 모듈로 작성
논리적 응집도처리 요소들로 하나의 모듈이 형성되는 경우
우연적 응집도서로 관련 없는 요소로만 구성된 경우
  • 우논시절교순기
    • 산에 있던 , 자랑 억나?......

5) 디자인 패턴

  • 생성 패턴
종류내용
싱글톤하나의 인스턴스
팩토리 메소드하나의 객체 생성, 가상생성자
추상 팩토리서브 클래스 묶어 교체, 추상적 표현, 키트 패턴
빌더단계적으로 복잡한 객체 조립, 조립자 패턴
프로토타입기존 객체를 복사하여 생성, 복제 패턴
  • 구조 패턴
종류내용
어댑터다른 인터페이스 통일, 래퍼 패턴
프록시객체 대신 요청 수행, 대리자 패턴
파사드복잡한 서브시스템을 간단히 제공, 통합 인터페이스 패턴
브릿지두 개의 별도 클래스
데코레이터기능을 동적으로 추가
컴포지트폴더와 파일 합성, 부분-전체 패턴
플라이웨이트인스턴스 공유하여 메모리 절약, 경량 패턴
  • 행위 패턴
종류내용
옵서버상태 변화 감시
전략알고리즘 교체 가능, 정책 패턴
책임 연쇄요청 해결될 때까지 책임 넘어감
커맨드명령어 하나로 합침, 동작 캡슐화 패턴
인터프리터언어에 문법 표현 정의
반복자(iterator)같은 명령 반복, 커서 패턴
중재자(Mediator)복잡한 상호작용을 객체 정의, 조정자 패턴
메멘토(Memento)특정 시점의 상태로 돌릴 수 있음, 스냅샷 패턴
상태객체 상태에 따라 동일 동작을 다르게, 오토마타 패턴
템플릿 메소드상위 클래스에서 골격 정의
방문자처리 기능을 별도 클래스로 구성
profile
Whatever I want | Interested in DFIR, Security, Infra, Cloud

0개의 댓글