[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

[2023 정보처리기사] 1과목 – 12. 아키텍처 패턴, 디자인 패턴

1. 아키텍처 패턴이란 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식. 자주사용하는 기능을 미리 구현한 것. – 장점: 시행착오를 줄임, 예측 가능, 안정적 개발 가능   2. 아키텍처 패턴의 종류 ★ 레이어 패터(Layers pattern) : 각각의 서브시스템들이 계층 구조를 이룸. Ex) OSI참조 모델 클라이언트-서버 패턴(Client-Server Pattern) ★ : 하나의 서버 컴포넌트와 다수의 클라이언트 … Read more

[삼성전자 뉴스룸] 지문인증IC개발, 새로운 결제 경험을 위한 생체인증카드.

소개 삼성전자는 생체인증카드를 위한 올인원 보안 솔루션으로 지문인증IC를 개발하여 안전하고 편리한 새로운 결제 경험을 가능하게 하였습니다. 이 제품은 CES 2023 사이버 보안 및 개인 정보 보호 부문에서 최고 혁신상을 수상할 정도로 주목받았습니다. 삼성전자의 지문인증IC는 어떻게 결제와 신원 확인을 둘러싼 문제를 해결하며, 새로운 결제 경험을 제공하는지 살펴봅시다.   비밀번호나 서명이 필요 없는 지문인증카드 지문인증카드의 소유자는 결제 … Read more

[2023 정보처리기사] 1과목 – 11. 모듈, 코드

1. 모듈 : 모듈화를 통해 분리된 시스템. 하나의 기능을 하는 코드의 집합 – 단독으로 컴파일 가능, 재사용 가능 – 모듈의 독립성은 결합도⋅응집도에 의해 측정 – 결합도는 약하게, 응집도는 강하게 설계. ★★★   1. 1. 결합도(Coupling) ★★★ : 모듈 간에 상호 의존 정도. 모듈 사이의 관계. 자료 결합도(Data Coupling): 모듈 간의 인터페이스가 자료요소로만 구성. => 함수에 … Read more