자격증 따야지/정보처리산업기사 2023

2023 정보처리 산업기사 필기 요점정리 [1과목]_합격

jju_developer 2023. 2. 25. 22:29
728x90

2023 정보 산업 기사 필기시험 D-1

1과목 최종 정리본을 공유드립니다.

시나공 책 보면서 시험에 나온다는 부분만 정리했습니다!

2023년도 1회차 정보산업기사는 내일이 첫 시험날 입니다...부디 쉽게 나오기를...빕니다.(눈물)

 

운영체제 개념

  • 시스템 관리
  • 사용자와 하드웨어 간의 인터페이스
  • 다른 응용 프로그램이 작업 잘하게 도와줌
  • 목적: 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환시간 단축
  • = Throughput Availability Reliability Trun Around Time

운영체제 기능

  • 프로세서, 기억장치, 입출력, 파일, 정보등의 자원 관리
  • 스케줄링 기능 제공
  • 인터페이스
  • 하드웨어, 네트워크 관리 및 제어
  • 데이터 관리, 공유 기능 제공
  • 오류 검사 및 복구
  • 가상 계산기 기능 

 

운영체제 운용 기법의 발달 과정 순서 중요!

1세대 -일괄처리
(Batch)
>> 2세대 -다중 프로그래밍
(멀티 프로그래밍)

-다중처리 (멀티 프로세싱)

-실시간 처리
(real time processing)
>> 3세대 -다중모드
(멀티 모드 프로세싱)
>> 4세대 -분산처리
(Distributed)

multi programming / multi processing

*다중 프로그래밍 : 하나의 cpu & 여러 프로그램 동시에 처리

*다중 처리 시스탬: 여러개의 cpu & 여러 프로그램 동시에 처리

-> cpu 하나가 고장나더라도 다른 cpu 쓰면 됨 ㅋ

*다중 모드 처리: 일과르 시분하르 다중처리, 실시간 처리를 한 시스템에서 모두 제공


프로세스 관리

프로세스 정의

  • 운영체제가 관리하는 최소 단위의 작업, task
  • PCB를 가진 프로그램
  • 주기억장치(실기억)에 저장된 프로그램
  • 프로세서가 할당
  • 프로시저가 활동중
  • 비동기적 행위
  • 계통적 동작
  • 목적 & 결과에 따라 발생되는 사건들의 과정

프로세스 상태 전이

***프로세스가 CPU를 점유하고 있는 상태 = 실행상태

 

Submit->Hold->Ready->Run->Terminated

Submit->Hold->Ready->Run->Wait,Block->Ready->Run->Terminated

 

*실행: 준비 상태 큐에 있는 프로세스가 프로세서를 할당받아 실행함

*대기, 보류 블럭: 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고,

입출력 처리가 완료 될때까지 대기하고 있는 상태

 

스레드 Thread

  • 프로세스 내의 작업 단위
  • 경량 프로세스랑 같은말
  • 자신만의 스텍과 레지스터를 갖으며 독립된 제어흐름 가짐

스케줄링

비선점 스케줄링 - 이미 할당된거 뺏을수 없엉~~

FIFO, FCFS, SJF, HRN, 우선순위, 기한부

 

선점 스케줄링 - 실행중 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗음!

RR, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐

*RR방식에서 시간 할당량이 길면 FIFO와 비슷해지고, 

시간 할당량이 짧으면 문맥 교환이 많아져 부하가 높아진다.


병행 프로세스와 상호 배제

임계구역

Critical Section

어느 한 시점에는 하나의 프로세스만 자원 또는 데이터 사용 가능

임계 구역의 문제를 해결하기 위하여..

  1. 상호 배제 (Mutual Exclusion)
  2. 진행 (Process)
  3. 한계 대기 (Bounded Waiting)

상호 배제에 대한 문제점 : 교착상태

교착상태는 DEAD LOCK 상호 배제에 의해 나타나는 문제점으로

둘 이상의 프로셋들이 자원을 점유한 상태에서 서로 다른 프로새스가 점유하고 있는 자원을 요구하며

무한정 기다리는 현상이다.

 

교착상태 필요 조건 4가지

  1. Mutual Exclusion
  2. Hold and Wait
  3. Non-preemption
  4. Circular Wait

 


기억장치 관리

기억장치 관리 전략

  • When : Fetch
  • Where : Placement
  • Replacement : FIFO, OPT, LRU, LFU, NUR, SCR
    First In First Out
    Least Recently Used
    Not Used Recently

가상 기억장치 

  • 페이징 - 내부 단편화, 주소변환, 맵테이블 필요
    (페이지의 원래 크키가 17이고 페이지 크기가 4 라면 17을 4로 계속 쪼갤때 마지막 페이지의 실제 용량은 1이 되고 주기억장치에 적재되면 3의 내부 단편화가 생김)
  • 세그먼테이션 - 논리적 크기로 나눔, 주소변환, 맵테이블 필요

디스크 스케줄링

종류

  1. FCFS = FIFO : 큐, 순서변함없음, 헤드이동거리 늘어남..ㅋ
  2. SSTF ( shortest seek time first) : 비교적 빠름, 일괄처리
  3. SCAN
  4. C-SCAN
  5. N-step SCAN
  6. 에센바흐, SLTF 스케줄링 등등

정보 관리

파일 시스템

  • 사용자와 보조기억 장치 사이의 인터페이스 제공
  • 공동 사용
  • 엑세스 제어 방법 제공
  • Backup & Recovery
  • 기호화된 이름
  • 논리적 상태(디렉터리)
  • 파일 보호 = 무결성 유지

파일 디스크립터 (파일 서술자)

시스템(운영체제)가 필요로 하는 파일에 대한 정보를 가지고 있는 

제어블록을 의미한다. (파일 디스크립터 = FCB)

파일디스크립터는 파일 시스템이 관리하므로, 사용자가 직접 참조할 수없음!!!!!!

 

파일의 구조

  1. Sequential File : 급여엄부, 일괄처리
  2. Direct File : 물리적 저장공간에 기록, 해싱함수, 주소에 레코드 저장, 자기디스크, 자기드럼
  3. Indexed Sequential File : 키값순으로 논리적으로 저장, 포인터 사용, 오버플로우 영역 필요

디렉터리의 구조

  1. 1단계 : 모든 파일들이 유일한 이름 가지고 있어야함
  2. 2단계 : 중앙에 마스터, 그아래 서로다은 파일
  3. 트리 : 하나의 루트, 포인터
  4. 비순환 그래프 : 사이클 허용 안함, 삭제시, 고아포인터 발생 가능성있음
  5. 일반 : 트리+링크

자원보호

  1. 접근제어 행렬 (Access Control Matrix)
  2. 전역 테이블 (Global Table)
  3. 접근제어 리스트 (Access Control List)
  4. 권한 자격 리스트 (Capability List) 
    각 행 즉, 영역을 중심으로 권한 리스트 구성

통신 프로토콜

기본요소

  1. Syntax
  2. Semantics
  3. Timing

OSI 7계층

  1. 물리 : 비트 : 기계 전기 기능
  2. 데이터 : 프레임 : 흐름제어 오류제어 순서제어
  3. 네트워크 : 패킷 : 경로설정 트레픽 제어
  4. 전송 : 세크먼트 : 주소설정 다중화 에러제어 흐름제어
  5. 세션 : 메시지 : 대화 동기 체크점
  6. 표현 : 메시지 : 코드변환 암호화 암축 구문 검색
  7. 응용 : 메시지 : 정보교환 파일전송 전자 사서함

표준 프로토콜

전송 계층: TCP 다중화 에러제어 흐름제어

네트워크 계층: IP 비연결 주소지정 경로선택

 

경로제어 프로토콜 (셋다 라우팅 프로토콜임)

  1. 내부
    IGP : RIP : 소규모 : 벨멘 알고리즘 : 거리 백터 방식!! (RIP,EIGRP, BGP)
           : OSPF: 대규모 : 링크상태 라우팅
  2. 외부
    EGP : 자율시스템
  3. 보더
    BGP : EGP 단점 보안

정보 통신망 기술

정보 교환 방식

  1. 회선 교환 : 음성
  2. 패킷 교환 : 데이터
    2-1 가상회선 방식
    2-2 데이터그램 방식
  3. LAN : 근거리 통신
    3-1 물리계층
    3-2 데이터 링크 계층 : CSMA, CSMA/CD, 토큰버스, 토큰링
  4. CSMA/CD (802.3)

인터넷 주소 IPv6 vs IPv4

IPv6: 16비트씩 총 8부분 128비트

각 부분을 16진수로 표현하고 콜론으로 구분

유니케스트 멀티캐스트 애니케스트

IPv4에 비해 전송속도 빠름

 

ATM

비동기 전송

셀로 분할

셀은 53

헤더는 5

사용자 정보는 48


XP 기법 => 애자일 방법론중 하나임

eXtreme Programming

수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화

  • 짧고 반복적인 개발주기
  • 단순설계
  • 의사소통
  • 용기
  • 존중
  • 피드백

eXtreme 주요 실천 방법

  1. 짝 프로그래밍 pair
  2. 공동 코드 소유 Collective Ownership
  3. Test-Driven Development
  4. Whole Team
  5. 지속적 통합 Continuous Integration
  6. Design Improvement
  7. Small Release

요구사항 정의

요구사항 유형

Functional -시스템이 뭘하는지
-입출력 정보
-시스템이 반드시 포함해야하는것
Non-Functional -시스템 장비 구성 요구사항
-성능 요구사항: 처리속도, 동적 정적, 가용성
-인터페이스 요구사항
-데이터 요구사항
-테스트 요구사항
-품질 요구사항
-제약사항
-프로젝트 관리 요구사항등등등 ㅋ
User -사용자 관점에서 본 시스템이 제공해야 할 요구사항
-사용자를 위함으로 친숙하게 표현하긔~
System -개발자 관점
-같은말로 소프트웨어 요구사항이라고함
-전문적이고 기술적인 용어 사용함

 

요구사항 개발 프로세스

도출-> 분석-> 명세-> 확인

Elication-> Analysis-> Specification-> Validation

 

  1. 도출
    SDLC동안 지속적으로 반복된다 (소프트웨어 생명주기)
    기법: 인터뷰, 설문, 워크샵, 프로토타이핑, 유스케이스 
  2. 분석
    타당성 조사
    기법: 자료흐름도(DFD), 자료사전(DD)
  3. 명세
    빠짐없이 명확히 기술
    정형 명세: 수학적 기호 : 간결하지만, 이해하기 어려움
    -> VDM, Z, Petri-net, CSP
    비정형 명세: 상태, 기능, 객체중심: 서술 또는 다이어그램 활용 : 일관성 떨어지지만 의사소통 용이 
    -> ER 모델링, State Chart, FSM, Decision Table
  4. 확인
    여기서 확인하지 않고 넘어가면 재작업 비용이 발생할 수있음!

요구사항 분석 - UML, DFD, DD, Mini-Spec, ERD, STD

 

  1. 자료 흐름도 (Data Flow Diagram)
    *프로세스 : 원
    *자료흐름 : ->
    *자료저장소
    ---
    ---
    *단말: 사각형(도형)

  2. 자료사전
    [l] : 또는 or
    {} :  반복
  3. 소단위 명세서
  4. 개체 관계도 erd
    개체: 사각
    관계: 마름모
    속성: 원
  5. 상태 전의도 std

요구사항 분석 기법 중 -> UML이란?

 

Unified Modeling Language

객체 지향 모델링 언어

  1. 사물 Thing
  2. 관계 Relationship
  3. 다이어그램 Diagram
  1. 사물 Thing
    다이어그램 안에서 관계가 형성될 수 있는 대상
    예) 클래스, 유스케이스, 컴포넌트, 노드 등
  2. 관계 Relationship
    사물과 사물사이의 연관성 표현
    연관, 집합, 포함, 일반화, 의존, 실체화 관계
  3. 다이어그램 Diagram
    사물과 관계를 도형으로 표현한것

    정적 모델링: 구조적 다이어그램
    동적 모델링: 행위 다이어그램

구조적 다이어그램 종류

-> 클래스 class, 컴포넌트 conponent, 복합체 composite, 객체 object, 배치 deployment, 패키지 package

CCCODP
*클래스 다이어그램: 오퍼레이션: 클래스가 수행할 수 있는 동작 = 함수라고도함

 

행위 다이어그램 종류

-> 유스케이스, 순차, 상태 state, 커뮤니케이션, 활동 activity, 상호작용 interaction, 타이밍

USSCAIT

 

*순차 다이어그램: 액터, 객체, 생명선, 실행상자, 메시지


소프트웨어 아키텍쳐

설계

골격 & 관계 표현 & 시스템의 구조 또는 구조체

뷰의 종류 중요!

유논구프배 (ULIPD)

  1. 유스케이스뷰 : 외부 사용자 관점
  2. 논리적뷰 : 설계자 관점
  3. 구현뷰 : 개발자 관점
  4. 프로세스뷰 : 시스템 통합자 관점
  5. 배포뷰 : 테스터 관점

모듈화

재사용

추상화

제과자

  1. 제어
  2. 과정
  3. 데이터

정보은닉(Information Hiding)

모듈을 독립적으로 수행

설계 과정

목표설정->시스템 타입 설정-> 패턴적용-> 구체화-> 검토

 

*협약에 의한 설계시 조건 3개

선행조건, 결과조건, 불변조건


아키텍쳐

아키텍쳐 패턴 개요

아키텍쳐를 설계할 때 참조할 수있는 전형적인 해결 방식 또는 예제

 

아키텍쳐 패텬 = 스타일 = 표준 아키텍쳐 

 

레이어 패턴

계층으로 구분

클라이언트-서버 패턴

하나의 서버와 다수의 클라이언트

파이프-필터 패턴

서브시스템이 입력 데이터를 받아 처리하고
결과를 다음 서브시스템으로 넘겨주는 과정을 반복한다.

 

재사용성 좋음, 추가 쉬움, 확장 용이

데이터 변환, 버퍼링, 동기화 

유닉스의 쉘이 대표적

데이터 교환시 오버해드 발생

모델-뷰-컨트롤러 패턴

모델: 데이터 보관

뷰: 정보표시

컨트롤러: 명령보냄

여러개의 뷰를 만들 수 있음 -> 대화형

 


객체지향 분석 및 설계

객체지향 분석의 방법론

럼바우, Booch, Jacobson, Coad와 Yourdon, Wirfs-Brock

럼바우

객동기

객쳬: 정보

동적: 상태다이어그램, 흐름 동적

기능: 자료흐름도 이용

객체 지향 설계 원칙!!! => SOLID 원칙

  1. 단일 책임 원칙
  2. 개방-폐쇄 원칙 : 캡슐화
  3. 리스코프 치환 원칙 : LSP : 자식클래스는 무시X, 재정의 하지 않고 확장만 수행
  4. 인터페이스 분리 원칙 : ISP : 사용 안하는 인터페이스는 의존X 
  5. 의존 역전 원칙 : 추상성 높은거 상속받아라

Single, Open, Liskov, Interface, Dependency


디자인 패턴

바퀴를 다시 발명하지 마라!

디자인 패턴은 서브시스템에 속하는 컴포넌트들과 그 관계를 설계하기 위한 참조 모델이다.

*아키텍쳐는 디자인보다 상위 수준의 설계! (전체 구조 설계)

!장단점

-구조파악 용이

-생산성 높아짐

-시간 배용 절약

-초기비용은 부담

-의사소통 원할

-객체지향 기반-> 다른 기반의 개발은 적합하지 않다!!!

생성 패턴! 5개의 생성 패턴 있음!

생성패턴은 객체의 생성과 관련된 패턴으로

객체의 생성과 참조 과정을 캡슐화 하여 객체가 생성되거나 변경되어도

프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해준다.

  1. 추상팩토리 : 인터페이스를 통해 서로 연관, 의존하는 객체의 그룹 생성
  2. 빌더 : 작게 분리된 인스턴스를 조합하여 객체 생성
  3. 팩토리 메소드 : 캡슐화된 패턴, 가상 생성자 패턴
  4. 프로토타입 : 원본 객체를 복제, 비용이 큰경우 주로 이용
  5. 싱글톤 : 클래스내에 인스턴스가 하나이며, 어디서나 참조 가능하지만 여러 객체가 동시에 참조는 못함!

구조 패턴! 7개의 구조 패턴 있음!

클래스나 객체를 조합하여 더 큰 구조로 만들수 있게 해주는 패턴이다.
구조가 복잡한 시스템을 개발하기 쉽게 도와준다.

  1. 어댑터
  2. 브리지
  3. 컴포지트
  4. 데코레이터
  5. 퍼싸드
  6. 플라이웨이트
  7. 프록시

정리

* 어댑터는 호환성 없는 클래스들의 인터페이스를 다른 클래스가 사용하게 변환

* 브리지는 층 분리하여 서로 독립적으로 확장
* 데코레이터는 결합을 통해 능동적으로 기능 확장 (덧붙히는것)
* 프록시는 접근이 어려운 객체와 연결하려는 객체 사이의 인터페이스!

 

행위 패턴! 11개의 행위 패턴 있음!

클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의 하는 패턴이다.

하나의 객체로 수행 할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화 할 수있도록 도와준다.

  1. 책임 연쇄
  2. 커맨드
  3. 인터프리터
  4. 반복자
  5. 중재자
  6. 메멘토
  7. 옵서버
  8. 상태
  9. 전략
  10. 템플릿 메소드
  11. 방문자

정리

* 커맨드 : 요청을 객체의 형태로 캡슐화 하여 재이용, 명령 분리 단순화

* 중재자 : 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴, 의존성 줄임, 결합도 감소

* 옵서버 : 객체 상태변화->다른객체들에게 변화된 상태 전달

* 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리할때 -> 상태 캡슐화하고 이를 참조함

* 전략 : 알고리즘 캡슐화, 상호 교환 가능 독립적, 클라이언트에 영향 없이 알고리즘 변경 가능

* 방문자 : 처리 기능을 분리하여 별도의 클래스 구성-> 분리된 처리 기능은 각 클래스를 방문하여 수행

 

등등...낼 아침 08:40시험이므로 나머지는 cbt 문제 풀고 자려고 합니담...

 

이상 1과목 요점정리였습니다!

 


2023.03.21 (화) 정보처리 산업기사 필기시험 합격 결과가 나왔습니다~!

다들 모두 열심히해서 좋은 결과 있으시길 바라겠습니다~!!😍

728x90