본문 바로가기

2020 정보처리기사/2020 실기 정리 (수제비 2020 정보처리기사 실기 Vol.2 기준)

2020 정보처리기사 - 프로그래밍 언어 활용

변수 : 어떤 값을 주기억 장치에 기억하기 위해서 사용하는 공간.

 

ㆍ식별자 : 프로그램의 구성요소를 구별하기 위한 기준

 

ㆍ바인딩 : 변수와 변수에 관련된 속성을 연결하는 과정. 정적, 동적 바인딩으로 구분

1. 정적 바인딩 : 프로그램 실행 시간 전에 연결 

2. 동적 바인딩 : 프로그램 실행 시간에 연결

 

ㆍ선언 : 변수에 이름, 데이터 타입 등의 속성을 부여하는 작업. 명시적, 묵시적 선언으로 구분

1. 명시적 선언 : 선언문을 이용하여 변수 이름을 나열하고 속성을 부여하는 방식.

2. 묵시적 선언 : 별도의 선언문 없이 디폴트 규칙에 읳새 속성이 부여되는 방식.

 

ㆍ영역 : 이름이 사용되는 범위. 정적 영역, 동적 영역으로 구분.

1. 정적 영역 : 변수를 찾을 때 구조에 기반하는 방식.

2. 동적 영역 : 변수를 찾을 때 순서에 기반하는 방식.

 

ㆍ할당 : 변수에 메모리 공간을 바인딩하는 작업.

 

ㆍ데이터 타입 : 변수가 가질 수 있는 속성 및 속성값의 길이.

 

ㆍ연산자 : 데이터 처리를 위해 연산을 표현하는 기호

 

ㆍ명령문 : 프로그램을 구성하는 문장으로 지시사항을 처리하는 단위.

 

 

ㆍ자료구조

컴퓨터에 데이터를 삽입,삭제,수정하게 해주는 논리적인 공간 구조. 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류

유형 설명
단순 구조 프로그래밍 언어에서 제공하는 기본 데이터
(int, float, double, char)
선형 구조 데이터가 연속적으로 연결된 자료구조
(연결자료구조, 순차자료구조, 스택, 큐, 덱)
비선형 구조 자료들 사이의 관계가 계층, 그물 형 태등 비순차적인 성질을 가진 자료를 표현하는데 적합한 구조
(트리, 그래프)
파일 구조 보조 기억 장치에 데이터 값이 실제로 기록되는 자료구조
(순차 파일, 색인 파일)

 

ㆍ알고리즘

어떤 문제에 대한 답을 찾는 해법.

자연어, 순서도, 의사 코드, 프로그래밍 언어를 사용하여 표현

 

ㆍ알고리즘 특성

유형 설명
입력 외부로부터 입력되는 자료가 0개 이상이어야 하는 특성
출력  출력되는 결과가 1개 이성이어야 하느 특성
명확성 각 명령어의 의미가 명확하여야 하는 특성
유한성 정해진 단계를 지나면 종료되어야 하는 특성
유효성 모든 명령은 실행이 가능한 연산들이어야하는 특성

 

ㆍ데이터타입

프로그래밍 언어에서 실수,정수 자료형과 같은 여러종류의 데이터를 식별하는 형태

 

ㆍ데이터타입 유형

유형 설명
Boolean 조건 참,거짓 판단. c++, java 에서는 true/false,  파이썬에서는 True/False 로 표현 
Character 문자하나를 저장하고자 사용
String 문자열 저장 / C언어에서 지원X
Integer 정수 값 저장
Floating Point 실숫값 저장
Array 여러데이터를 하나로 묶어서 저장. 배열

 

ㆍ변수

저장하고자 하는 값을 주기억 장치에 기억하기 위한 공간.

 

ㆍ연산자

프로그램 실행을 위해 연산을 표현하는 기호. 산술, 시프트, 관계, 논리 연산자 등이 있다.

연산자 내용
산술연산자 +, -, *, / , %
시프트 연산자 <<, >>
관계 연산자 >, <, >=, <=, ==, !=
논리 연산자 &&, ||
비트 연산자 &, |, ^
대입 연산자 =, +=, -=, *=, /=, %=
증감 연산자 ++x, x++, --x, x--

 

ㆍ명령문

프로그램을 구성하는 문장으로, 지시사항을 처리하는 단위. 조건문, 반복문으로 나뉨. 

 

1. 조건문 : 참,거짓 여부에 따라 경로를 달리하는 if문, 여러 경로 중 하나를 선택하는 switch문으로 구분.

 

2. 반복문 : 특정조건이 만족할 때 까지 실행하도록 하는 명령문. 특별한 조건이 없을 시 무한루프에 빠짐. while, for.

while문 : 시작과 종료조건을 지정하여 참인 동안 반복 실행.  /  for문 : 초기, 최종, 증감값을 지정하여 반복 실행. 

 

루프 제어 명령어 : 반복문에서 무한루프를 방지하기 위해 break와 continue 사용.

break : 반복문 중지, switch문 중간 탈출용도.  /   continue : 다음 반복으로 넘어갈수 있도록 함.

 

ㆍ사용자 정의 자료형

사용자가 상황에 맞게 기존 자료형들을 조합해서 만드는 자료형으로 열거체, 구조체, 공용체로 분류.

자료형 내용
열거체 서로 연관된 정수형 상수 집합. 초깃값을 지정하지 않으면 0부터 차례대로 할당.
구조체 기본타입을 가지고 새롭게 정의할 수 있는 자료형. 자바,파이썬에서 지원x
공용체 모든 맴버 변수가 하나의 메모리 공간을 공유하는 자료형. 자바,파이썬에서 지원x

 

ㆍ사용자 정의 함수

사용자가 직접 새로운 함수를 정의하여 사용하는 방법. 

 

ㆍ추상화 : 세부사항은 배제하고 중요한 부분을 중심으로 간략화. 기능, 자료, 제어 추상화로 구분.

종류 설명
기능 추상화 입력 자료를 출력 자료로 변환하는 과정을 추상화
자료 추상화 ㅊ 있는 연산을 함께 정의하는 방법
제어 추상화 외부 이벤트에 대한 반응을 추상화하는 방법.

 

ㆍ상속

상위 그룹의 모든 특성을 하위 그룹이 이어받아 재사용하는 기법. 단일속성, 다중속성으로 나뉨.

 

ㆍ구체화

하위 그룹이 상위 그룹의 추상적인 부분을 구체화하는 기법.

 


개발 편의성에 따른 분류

종류 설명
저급 언어 기계가 이해할 수 있도록 만들어진 언어 
(기계어, 어셈블리어)
고급 언어 코드를 작성할 때 쉽게 이해할 수 있도록 만들어진 언어.
(C, C++, 자바, 파이썬)

 

ㆍ실행하는 방식에 따른 분류

종류 설명
명령형 언어 절차형 언어, 명령어들이 순차적으로 실행되는 방식
(FORTRAN, COBOL, PASCAL, C)
객체지향 언어 객체 간 메시지 통신을 이용한 방식
(JAVA, C++)
함수형 언어 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식.
(LISP)
논리형 언어 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 방식
(프롤로그)

 

ㆍ구현 기법에 따른 분류

종류 설명
컴파일 방식 고급언어를 기계어로 번역. 컴파일러에 의해 정보가 미리 계산되어 실행속도가 빠름.
(FORTRAN, PASCAL, C, C++)
인터프리터 방식 고급언어 명령문을 번역하고 실행. 프로그램 실행과 동시에 동작.
(BASIC, 프롤로그, LISP)
혼합형 방식 고급 언어를 컴파일하여 중간언어로 변환 후, 인터프리터에 의해 번역 실행
(JAVA)

 

ㆍ절차적 프로그래밍 언어 종류

종류 설명
ALGOL 알고리즘 연구개발에 이용하기 위한 목적. 절차형 언어로는 최초로 재귀호출이 가능.
C언어 유닉스 운영체제에서 사용하기위해 개발한 언어. 모든 컴퓨터 시스템에서 사용할 수 있도록 설계
BASIC 교육용. 다론 종류의 소스코드는 호환되지 않음.
FORTRAN 과학계산에서 필수적인 계산기능 등이 내장된 과학 기술 전문 언어.

 

ㆍ객체지향 프로그래밍 언어 종류

종류 설명
C++ C문법에 객체지향 개념과 일반화 프로그래밍을 위한 템플릿 기능 추가.
직접 신경써야하는 것들이 많은 언어이기 때문에 개발이 어려움
C# 마이크로소프트에서 개발한 객체지향 프로그래밍 언어.
불안전코드와같은 기술을 통하여 플랫폼 간 상호 운용성 확보
JAVA 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어
델파이 파스칼 문법에 여러 기능이 추가.
높은생산성, 간결한 코드가 장점.

 

ㆍ스크립트 언어 종류

종류 설명
PHP 동적 웹페이지를 만들기 위해 설계됌, 인터페이스 방식의 자체 인터프리터 제공.
HTML에 입력 시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 웹 페이지를 생성.
펄(Perl) 인터프리터 방식의 언어. 
실용성을 모토로, C, 쉘 스크립트 등 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입
Python 다양한 플랫폼에서 쓸 수 있고, 라이브러리가 풍부
유니코드 문자열을 지원하여 다양한 언어의 문자 처리.
javascript 객체 기반의 스크립트 언어. 
웹 브라우저 내에 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능이 존재.

 

ㆍ선언형 언어 종류

구분 종류 설명
함수형
언어
하스켈
(Haskell)
패턴맞춤, 가드, 연산자 정의 등 기능이 존재
재귀 함수나 대수적 자료형도 지원
리스프
(LISP)
수학 표기법을 나타내기 위한 목적.
동적자료형과 인터프리터와 같은 개념 제시
논리형
언어
프롤로그 논리식을 기반으로 객체 간의 관계에 대한 문제를 해결하기 위해 사용
인공지능이나 계산 언어학 분야에 사용
특수분야
언어
SQL 관계형DBMS의 데이터를 관리하기 위해 설계된 언어.
DB관련 프로그램들이 SQL을 표준으로 채택

 

ㆍ객체지향 프로그래밍의 구성요소

구성요소 설명
객체 개체,속성,메소드로 구성된 클래스의 인스턴스
클래스 객체를 표현하는 추상 데이터 타입. 추상화된 자료형 제공
메시지 객체간의 통신

 

ㆍ객체 구성요소

구성요소 설명
개체(entity) 현실에 보이는 본질
속성(Attribute) 자료 저장소
메소드(Method) 호출 단위

ㆍ라이브러리

개발을 위해 필요한 프로그램을 모아놓은 집합체. 도움말, 설치파일, 샘플코드 제공

 

ㆍ라이브러리 구성

구성요소 설명
도움말 라이브러리 사용 설명문서
설치 파일 라이브러리를 적용하기 위한 파일
샘플 코드 개발자가 이해하기 쉽고 적용하기위해 제공되는 소스코드

 

ㆍ라이브러리 종류

종류 설명
표준 라이브러리 프로그래밍 언어가 기본적으로 가지고있는 라이브러리.
별도의 설치 없이 날짜와 시간등의 기능 이용 가능
외부 라이브러리 누구나 개발하고 설치할 수 있으며, 인터넷등을 이용하여 공유가능.
별도의 설치 필요.

 

ㆍ라이브러리 기능

문자열 연산, 탐색, 치환기능 / 수치 계산 / 난수 생성 / 파일 경로 조작 /  디렉터리 생성 / 날짜 조작 / 로그 출력

 

ㆍ모듈과 패키지

라이브러리 = 모듈과 패키지

구성 설명 예시
imp모듈 전역변수, 함수 등을 모아둔 파일  
패키지 모듈을 디렉터리 형시긍로 구조화한 라이브러리