[2023 정보처리기사] 2과목 – 8. 소프트웨어 버전 등록, 관리, 형상 관리

1. 소프트웨어 버전 등록 1. 1. *형상 관리(SCM) ★ : 소프트웨어의 개발 과정에서 변경사항을 관리하기 위해 개발된 일련의 활동  – 소프트웨어 개발의 전 단계에 적용. – 개발의 전체 비용을 줄이고 개발과정의 여러 방해 요인 최소화. – 형상 관리를 통해 이전 리비전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용. – 불필요한 사용자의 소스 수정 제한. … Read more

[2023 정보처리기사] 2과목 – 7. 소프트웨어 품질 특성, 품질 목표

1. 소프트웨어 품질 특성(국제 표준 품질 특성) ★ ISO/IEC 9126 – 소프트웨어 품질 특성과 척도에 관한 지침. – 고객 관점에서 소프트웨어에 관한 품질 특성과 품질 부 특성을 정의. ISO/IEC 12119 – ISO/IEC 9126의 품질 모델을 따르며 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준. – 제품 설명서, 사용자 문서 및 프로그램으로 구분하여 … Read more

[2023 정보처리기사] 2과목 – 6. 디지털 저작권 관리(DRM)

1. 디지털 저작권 관리(DRM; Digital Right Management)란? : 디지털 컨텐츠가 저작권자가 의도한 용도로만 사용되도록 생성⋅유통⋅이용까지의 전 과정에 걸쳐 사용되는 디지털 컨텐츠 관리 및 보호 기술. – 원본 컨텐츠가 아날로그인 경우 디지털로 변환후 패키저에 의해 DRM패키징 수행. – 패키징 수행 시 컨텐츠에는 암호화된 저작권자의 전자서명이 포함되고, 저작권자가 설정한 라이센스 정보가 클리어링 하우스에 등록. – 사용자가 컨텐츠를 … Read more

[2023 정보처리기사] 2과목 – 5. 소프트웨어 패키징

1. 소프트웨어 패키징이란? : 모듈별로 생성한 실행 파일들을 묶어, 배포용 설치 파일을 만드는 것. 개발자가 아닌 사용자 중심으로 진행.   2. 소프트웨어 패키징 시 고려사항 – OS⋅CPU⋅메모리 등에 필요한 최소 환경을 정의. – 배포한 이후, 하드웨어와 함께 관리될 수 있도록 제공. – 패키징의 변경 및 개선(요구사항)에 대한 관리를 항상 고려.   3. 소프트웨어 패키징 도구 … Read more

[2023 정보처릭기사] 2과목 – 4. 개발 지원 도구

1. 통합 개발 환경(IDE; Integrated Development Environment) : 개발에 필요한 환경. 즉 편집기, 컴파일러, 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공. – 종류: 이클립스, 비주얼 스튜디오, 엑스코드, 안드로이드 스튜디오, IDEA 등.   2. 빌드도구 ★ : 소스코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업들을 수행하는 소프트웨어 Ant(Another Neat Tool) – 아파치 소프트웨어 재단에서 … Read more

[2023 정보처리기사] 2과목 – 3. 데이터베이스, DBMS

1. 데이터베이스란? ★ : 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임. 통합된 데이터(Integrated Data): 자료의 중복을 최소화한 데이터의 모임. 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장매체에 저장된 자료. 운영 데이터(Operational Data): 없어서는 안 될 반드시 필요한 데이터. 공용 데이터(Shared Data): 공동으로 소유하고 유지하는 데이터.   2. DBMS(DataBase Management System) : 사용자와 … Read more

[2023 정보처리기사] 2과목 – 2. 정렬, 해싱 함수

1. 정렬(Sort)이란?

: 데이터를 정해진 순서대로 가지런하게 나열하는 것.

[정렬예제]

  1. 1. 삽입 정렬(Insertion Sort)

: 정렬된 파일에 새로운 하나의 레코드를 순서에 따라 삽입시켜 정렬하는 방법.

Ex) 삽입 정렬을 이용한 오름차순 정렬

[삽입 정렬]

1.

a. 두 번째 배열 값을 키(Key)값으로 지정.

b. ‘키값(5)‘과 ’키값의 앞 배열의 값(6)‘을 비교하여 키값보다 크면 한 칸을 뒤로 밀어주고(c) 밀린 배열의 자리에 키값을 삽입한다.

[삽입 정렬]

2. 다음 배열의 값을 키값으로 지정한 후 a,b,c의 과정을 반복한다.

  1. 2. 버블 정렬(Bubble Sort)

: 인접한 데이터를 비교하면서 그 크기에 따라 데이터의 위치를 바꾸어 정렬하는 방법.

Ex) 버블 정렬을 이용한 오름차순 정렬

[버블 정렬]

1. 첫 번째 배열부터 인접한 1, 2번 배열의 크기를 비교하여 작은 값이 앞으로 위치하도록 치환한다.

2. 다음 인접한 2, 3번 배열의 크기를 비교하여 동일작업을 수행한다.

3. 1번의 회전이 끝나면 가장 큰 수가 가장 뒤로 온다.

  1. 3. 선택 정렬(Selection Sort)

: n개의 레코드 중에서 최소값(or 최대값)을 찾아 첫번째 레코드 위치에 놓고, 나머지 n-1개의 레코드 중에서 최소값(or 최대값)을 찾아 두번째 레코드 위치에 놓는 방법.

Ex) 선택 정렬를 이용한 오름차순 정렬

[선택 정렬]

1. 첫 번째 (6)값을 기준값으로 선택하고 기준값 뒤의 값들과 하나씩 비교하여 기준값보다 작은 경우 위치를 치환한다.

2. 1번의 회전이 끝나면 가장 작은 수가 가장 앞으로 온다.

 

2. *해싱함수

*해싱: 해싱함수(Hashing Function)를 이용하여 레코드키에 대한 해시 테이블(Hash Table)내의 홈 주소(Home Address)를 계산하여 주어진 레코드에 접근하는 방식.

  2. 1. 해싱함수 종류

  • 폴딩법(중첩 방법): 레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용하는 방법.
  • 제산법: 레코드키로 해시표의 크기보다 큰 수 중에서 가장 작은 소수로 나눈 나머지를 홈주소로 사용하는 방법. 나머지 연산자(%)를 사용.
  • 기수변환법: 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수를 절단하고, 이를 다시 주소 벙위에 맞게 조정하는 방법.
  • 숫자분석법(계수분석법): 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 택해서 홈 주소로 사용하는 방식..
  • 중간 제곱 방법: 레코드 키 값을 제곱한 후에 결과값의 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈주소로 사용하는 방법.

 

3. 알고리즘에 따른 시간 복잡도

대표 알고리즘 설명 복잡도
해시 함수 항상 일정한 속도로 작동.

(상수형 복잡도)

O(1)
이진 탐색 문제를 해결하기 위해 log2N번의 수행시간을 가짐.

(로그형 복잡도)

O(logN)
순차 탐색 수행 시간이 자료 크기와 직접적 관계

(선형 복잡도)

O(n)
퀵 정렬

합병 정렬

문제를 해결하기 위해 Nlog2N번의 수행시간을 가짐 O(NlogN)
선택 정렬

버블 정렬

삽입 정렬

N의 크기가 작을 땐 N²이 NlogN보다 느릴 수 있음 O(N²)

 

[2023 정보처리기사] 2과목 – 1. 자료구조

1. 자료구조 : 프로그램에서 사용하기 위한 자료를 기억장치 공간에 저장하는 방법과 자료간의 관계.   1. 1. 자료구조의 분류   2. 비선형 구조(Non-Linear Structure)   2. 1. 트리 (Tree) ★★ : 정점(노드, Node)과 선분(가지, Branch)을 이용하여 사이클을 이루지 않도록 구성. – 노드: 하나의 기억공간. – 링크: 노드와 노드를 연결하는 선. <출처: https://velog.io/@codenmh0822/비선형-자료구조-트리Tree> 노드(Node): 트리의 기본 요소: … Read more

[2023 정보처리기사] 1과목 – 14. 미들웨어 솔루션

1. 미들웨어란? : 운영체제(OS)에서 실행되는 응용 프로그램 사이에서 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어. – 클라이언트와 서버 간 통신을 효율적으로 수행할 수 있도록 도와줌.   2. 미들웨어 종류 ★ DB(Data Base): 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어. RPC(Remote Procedure Call): 클라이언트가 원격에서 동작하는 프로시저를 로컬 프로시저처럼 호출. MOM(Message Oriented Middleware): 응용 … Read more

[2023 정보처리기사] 1과목 – 13. 시스템 인터페이스

1. 시스템 인터페이스란? : 독립적으로 떨어진 시스템끼리 서로 연동하여, 상호작용하기 위한 접속방법이나 규칙.   2. 인터페이스 요구사항 분석 : 요구사항을 기능적 요구사항과 비기능적 요구사항으로 분류.   3. 인터페이스 요구사항 검증 : 인터페이스 설계 및 구현 전, 요구사항들이 실제로 실현 가능한 지를 확인. * 요구사항 검토 계획 수립 -> 검토 및 오류 수정 -> 베이스라인 설정. … Read more