반응형

자격증/정보처리필기 86

[정보처리산업기사] 66강 데이터베이스 개요

1. 데이터저장소 소프트웨어 개발 과정에서 다루어야 할 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축하는 것을 의미한다. 데이터저장소는 논리 데이터저장소와 물리 데이터저장소로 구분 논리 데이터저장소는 데이터 및 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화 물리 데이터저장소는 논리 데이터저장소에 저장된 데이터와 구조들을 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 하드웨어적인 저장장치에 저장 논리 데이터저장소를 거쳐 물리 데이터저장소를 구축하는 과정은 데이터베이스를 구축하는 과정과 동일 2. 데이터베이스의 정의 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임 저장..

[정보처리산업기사] 65강 정렬(Sort)

1. 삽입정렬 (Insertion Sort) 삽입 정렬은 가장 간단한 정렬 방식으로 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬한다. 초기상태: 아래의 8,5,6,2,4를 삽입정렬을 사용해 정렬시키면 아래와 같은 과정을 거치게 된다. 1회전 : 두번째 값을 첫번째 값과 비교해 첫번째 자리에 삽입, 8을 뒤로 한칸 이동 2회전 : 세번째 값을 5,6과 비교해 삽입, 8을 뒤로 한칸 이동 3회전 : 네번째 값을 5,6,8과 비교해 삽입, 5,6,8을 뒤로 한칸 이동 4회전 : 다섯번째 값을 2,5,6,8과 비교해 삽입, 5,6,8을 뒤로 한칸 이동 2. 쉘 정렬 (Shell Sort) 삽입 정렬을 확장한 개념이다. 입력 파일을 어떤 매개변수의 값으로 서브파일을 구성하고, 각 서브파..

[정보처리산업기사] 64강 트리(Tree)

1. 트리의 개요 트리는 정점(Node,노드)과 선분(Branch,가지)을 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태입니다. 트리는 하나의 기억 공간을 노드(Node)라고 하며, 노드와 노드 사이를 연결하는 선을 링크(Link)라고 합니다. 트리 관련 용어 노드 (Node) 트리를 구성하고 있는 기본 요소로서 자료 항목과 다른 항목에 대한 브랜치를 합친것 예) A, B, C, D, E, F, G, H, I, J 근 노드 (Root Node) 트리 구조에서 부모가 없는 최상위 노드 예) root node : A 디그리 (Degree) 각 노드에서 뻗어 나온 가지의 수 예) A = 2, B = 2, C = 2 단말 노드 (Terminal Node) = 잎 노드 (Leaf Node) 자식이 ..

[정보처리산업기사] 63강 자료 구조

1. 자료 구조의 정의 프로그램에서 사용하기 위한 자료를 기억장치의 공장 내에 저장하는 방법과 저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법 등을 연구 분석하는 것을 말한다. 자료의 표현과 관련된 연산이다. 일련의 자료들을 조직하고 구조화하는 것이다. 어떠한 자료 구조에서도 필요한 모든 연산들을 처리할 수 있다. 자료 구조에 따라 프로그램 실행시간이 달라진다. 2. 자료구조의 분류 선형 구조: 배열, 선형리스트(연속리스트, 연결리스트) 스택, 큐, 데크 비선형 구조: 트리, 그래프 3. 배열 (Array) 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖는 집합이다. 배열은 첨자를 이용하여 데이터에 접근한다. 반복적인 데이터 처리 작업에 적합한 구조다. 데이터 삭제 시 메모리 낭비 발생..

[정보처리산업기사] 62강 보안 및 API

1. 소프트웨어 개발 보안의 개요 소프트웨어 개발 보안은 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동을 의미한다. 데이터의 기밀성, 무결성, 가용성을 유지하는 것을 목표로 한다. 정부에서 제공하는 소프트웨어 개발 보안 가이드를 참고하여 보안 항목들을 점검한다. 보안 요소 기밀성 : 정보와 자원은 인가된 사용자에게만 접근이 허용 무결성 : 오직 인가된 사용자만 수정 가능 가용성 : 인가받은 사용자는 언제든 사용 가능 인증 : 사용하려는 사용자가 합적인지 확인하는 모든 행위 부인 방지 : 데이터를 송/수신한 사용자가 사실을 부인할 수 없도록 증거를 제공 2. 소프트웨어 개발 보안 점검 항목 세션 통제 : 세션은 서버와..

[정보처리산업기사] 61강 공통 모듈

1. 공통 모듈의 개요 여러 프로그램에서 공통적으로 사용할 수 있는 모듈을 의미한다. 자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될 수 있다. 모듈의 재사용성 확보와 중복 개발 회피를 위해 설계 과정에서 공통 부분을 식별하고 명세를 작성할 필요가 있다. 다른 개발자들이 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야한다. 정확성 : 해당 기능이 시스템 기능이 필요한지 정확하게 작성해야 한다. 명확성 : 해당 기능에 대해 일관되게 이해되고 한 가지로 해석되게 해야한다. 완전성 : 시스템 구현에 필요한 모든 것을 기술해야 한다. 일관성 : 공통 기능 간에 상호 충돌이 없도록 해야한다. 추적성 : 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관계..

[정보처리산업기사] 60강 모듈

1. 모듈 (Module) 개요 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 의미 모듈은 단독으로 컴파일이 가능, 재사용 가능 모듈의 독립성은 결합도와 응집도에 의해 측정됨 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함 모듈화 : 소프트웨어 성능 향상이나 수정 및 재사용 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것 2. 결합도 (Coupling) 모듈간에 상호 의존하는 정도, 두 모듈 사이의 연관 관계를 의미 결합도가 강하면 시스템 구현 및 유지보수가 어려움 결합도의 종류 : 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용 자료 결합도(Data Coupling) 자료 결합도는 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도이다. 어떤..

[정보처리산업기사] 59강 서버 개발

1. 서버 개발의 개요 서버 개발은 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것을 의미한다. 웹 애플리케이션 서버에 구현된 서버 프로그램은 웹 서버로부터 받은 요청을 처리하여 결과를 반환하는 역할을 수행한다. 서버 개발에 사용되는 프로그래밍 언어에는 Java, JavaScript, Python, PHP, Ruby 등이 있다. 각 프로그래밍 언어에는 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크가 있다. 2. 서버 개발 프레임워크 서버 개발 프레임워크는 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어를 의미한다. 서버 개..

[정보처리산업기사] 58강 개발 환경 구축

1. 개발 환경 구축 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것을 의미한다. 응용 소프트웨어가 운영될 환경과 유사한 구조로 구축한다. 개발 프로젝트의 분석 단계의 산출물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어를 선정한다. 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품들을 최종적으로 결정하여 구축한다. 2. 하드웨어 환경 사용자와의 인터페이스 역할을 하는 클라이언트 그리고 통신하여 서비스를 제공하는 서버로 구성된다. 클라이언트는 PC, 스마트폰이 있다. 서버는 사용 목적에 따라 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버등으로 나뉜다. 웹 서버(Web Server) 클라이언트로부터 직접 요청..

[정보처리산업기사] 52강 절차적 프로그래밍 언어

1. 절차적 프로그래밍 언어의 개요 절차적 프로그래밍 언어는 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 언어이다. 절차적 프로그래밍 언어는 프로그램이 실행되는 절차를 중요시 한다. 절차적 프로그래밍 언어는 데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있다. -절차적 프로그래밍 언어는 자연어에 가까운 단어와 문장으로 구성된다. 절차적 프로그래밍 언어는 과학 계산이나 하드웨어 제어에 주로 사용된다. 2. 절차적 프로그래밍 언어의 장단점 컴퓨터의 처리 구조와 유사하여 실행 속도가 빠르다. 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용할 수 있다. 모듈 구성이 용이하며, 구조적인 프로그래밍이 가능하다. 프로그램을 분석하기 어렵다. 유지보수나 코드의 수정..

반응형