프로그래밍 기본 용어
변수
어떤 값을 주기억장치에서 기억하기 위해서 사용하는 공간
식별자
프로그램의 구성요소를 구별하기 위한 기준
바인딩
변수와 변수에 관련된 속성을 연결하는 과정
정적 바인딩과 동적 바인딩으로 구분
정적 바인딩 : 프로그램 실행 시간 전에 속성을 연결하는 방식
동적 바인딩 : 프로그램 실행 시간에 속성을 연결하는 방식
선언
변수에 이름, 데이터 타입 등의 속성을 부여하는 직업
명시적 선언과 묵시적 선언으로 구분
명시적 선언 : 선언문을 이용하여 변수 이름을 나열하고 속성을 부여하는 방식
묵시적 선언 :별도의 선언문 없이 디폴트 규칙에 의해 속성이 부여되는 방식
영역
이름이 사용되는 범위를 의미, 정적 영역과 동적 영역으로 구분
정적 영역 : 변수를 찾을 때 구조에 기반하는 방식
동적 영역 : 변수를 찾을 때 구조보다는 순서에 기반하는 방식
할당
변수에 메모리 공간을 바인딩 하는 작업
데이터 타입
변수가 가질 수 있는 속성 및 속성값의 길이
연산자
데이터 처리를 위해 연산을 표현하는 기호
명령문
프로그램을 구성하는 문장으로 지시 사항을 처리하는 단위
자료구조
컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조를 의미한다.
단순 구조
프로그래밍 언어에서 제공하는 기본 데이터 ex) int, float, double
선형 구조
데이터가 연속적으로 연결된 자료 구조
ex) 연결 자료 구조, 순차 자료구조, 스택, 큐 등
비선형 구조
자료들 사이의 관계가 계층 또는 그물 형태 등 비순차적인 성질을 가진 자료들을 표현하는데 적합한 구조
ex) 트리, 그래프
파일 구조
보조 기억 장치에 데이터 값이 실제로 기록되는 자료 구조
ex) 순차 파일, 색인 파일
알고리즘
어떤 문제에 대한 답을 찾는 해법을 의미
데이터 타입
프로그래밍 언어에서 실수치, 정수 자료형과 같은 여러 종류의 데이터를 식별하는 형태
데이터 타입의 유형 (불문열 정부배)
불린 타입
조건이 참인지 거짓인지 판단하고자 할 때 사용
문자 타입
문자 하나를 저장하고자 할 때 사용
문자열 타입
나열된 여러 개의 문자를 저장하고자 할 때 사용
정수 타입
정수 값을 저장하고자 할 때 사용
부동 소수점 타입
소수점을 포함하는 실숫값을 저장하고자 할 때 사용
배열 타입
여러 데이터를 하나로 묶어서 저정하고자 할 때 사용
변수
저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억 장치에 기억하기 위한 공간을 의미
변수 설정 규칙
영문 대문자/소문자, 숫자, 밑줄의 사용이 가능
사용 가능 예시 : a, A, a1, _, _hello
사용 불가능 예시 : $a, ?a, <a
변수 사용 규칙
첫 자리에는 숫자를 사용할 수 없음
사용 가능 예시 : _1, a1, a100
사용 불가능 예시 : 1, 1a, 1A, 1234
변수 이름의 중간에는 공백을 사용할 수 없음
사용 가능 예시: my_student
사용 불가능 예시 : my student
변수 의미 부여
데이터 값의 의미나 역할을 표현
age, student
이미 사용되고 있는 예약어의 경우에는 변수로 사용할 수 없음
For, If, While
for, if, while
연산자 (산시관논 비대증)
프로그램 실행을 위해 연산을 표현하는 기호로, 프로그램 내에서는 +, - 와 같은 연산자가 사용된다.
산술 연산자
산술 연산자는 +, -와 같이 가장 일반적으로 사용되는 연산자이다. +, -, *, /, %
시프트 연산자
비트를 이동시키는 연산자이다. <<, >>
관계 연산자
두 피연산자 사이의 크기를 비교하는 연산자이다. >, <, >=, <=, ==, !=
논리 연산자
두 피연자 사이의 논리적인 관계를 정의하는 연산자이다. &&, ||
비트 연산자
0과 1의 각 자리에 대한 연산을 수행하며 0 또는 1의 결괏값을 갖는 연산자이다. &, |, ^
대입 연산자
변수에 값을 대입할 때 사용하는 연산자이며, 오른쪽에 있는 값을 이용해 왼쪽의 변수에 값을 대입한다. =, +=, -=, *=, /=, %=
증감 연산자
피연산자를 1씩 증가 혹은 1씩 감소시킬 때 사용하는 연산자이다. ++x, x++, --x, x--
명령문
프로그램을 구성하는 문장으로, 지시 사항을 처리하는 단위로 조건문과 반복문이 있다.
조건문
참 거짓 여부에 따라 실행 경로를 달리하는 if문과 여러 경로 중에 switch 문으로 구성된다.
조건문의 종류
if 문
조건이 참인지 거짓인지에 따라 경로를 선택
단순 if문
어떤 문장을 수행할지 여부를 결정할 대 사용
선택 if문
경로를 선택할 때 사용
중첩 if문
수행 경로가 2개가 넘어갈 때 사용하는데, else 구문을 추가하여 작성
else 구문은 조건식이 거짓인 경우에 수행하는 구문으로 프로그래밍 언어마다 차이가 있으나 else if 와 같은 방식으로 분기를 추가할 수 있음
switch 문
조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용
if문
조건이 참인지 거짓인지에 따라 경로를 선택하는 명령문이다.
switch문
조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용하는 명령어
반복문
while문
시작과 종료 조건을 지정하여 참인 동안에는 해당 문장을 반복해서 실행하는 명령문
for문
초깃값, 최종값, 증감 값을 지정하여 반복을 실행하는 명령문
while문
조건이 참인 동안에 해당 분기를 반복해서 실행하는 명령문
for문
초기값, 최종값, 증감 값을 지정하여 반복하는 명령어이다.
루프 제어 명령어
break
반복문을 중지하도록 하는 명령어
continue
다음 반복으로 넘어갈 수 있도록 하는 명령어
break문
반복문이나 switch 문을 탈출하기 위해 사용하는 명령어이다.
continue문
반복문에서 다음 반복으로 넘어갈 수 있도록 하는 명령어이다.
사용자 정의 자료형
사용자가 상황에 맞게 기존 자료형들을 조합해서 만드는 자료형이다.
열거체
열거체는 서로 연관된 정수형 상수들의 집합이다.
멤버에 초기값을 설정하지 않으면 0부터 차례대로 할당된다.
구조체
사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 자료형이다
공용체
모든 멤버 변수가 하나의 메모리 공간을 공유하는 사용자 정의 자료형이다.
구조체와 공용체 차이
구조체는 각 변수가 다른 메모리에 할당되어 있고, 공용체는 모든 변수가 같은 메모리에 할당되어 있다.
사용자 정의 함수
사용자가 직접 새로운 함수를 정의하여 사용하는 방법이다.
추상화
세부 사항은 배제하고 중요한 부분을 중심으로 간략화하는 기법이다.
추상화 종류
기능 추상화
입력 자료를 출력 자료로 변환하는 과정을 추상화하는 방법
자료 추상화
자료와 자료에 적용할 수 있는 연산을 함께 정의하는 방법
제어 추상화
외부 이벤트에 대한 반응을 추상화화는 방법
상속
상위 수준 그룹의 모든 특성을 하위 수준 그룹이 이어받아 재사용 또는 확장하는 기법
구체화
하위 수준 그룹이 상위 수준 그룹의 추상적인 부분을 구체화 하는 기법.
프로그래밍 언어
컴퓨터 시스템의 역사와 함께하고 있으며 프로그래밍 언어가 개발된 시대적인 패러다임에 따라 유사한 특성이 있다.
프로그래밍 언어의 분류
개발 편의성에 따라 저급 언어, 고급언어
실행하는 방식에 따라 명령형, 함수형, 논리형, 객체지향형 언어
구현 기법에 따라 컴파일 방식의 언어, 인터프리터 방식의 언어, 혼합형 언어로 분류할 수 있다.
개발 편의성에 따른 언어 분류
저급 언어
기계가 이해할 수 있도록 만들어진 언어
고급 언어
개발자가 소스 코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어
실행하는 방식에 따른 언어 분류
명령형 언어
컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식
ex) FORTRAN, COBOL, PASCAL, C
객체지향 언어
객체 간의 메시지 통신을 이용하여 프로그래밍 하는 방식
ex) JAVA, C++
함수형 언어
수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식
ex) 리스프(LISP)
논리형 언어
논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 개념에 기반한 프로그래밍 방식
ex) 프롤로그
구현 기법에 따른 언어 분류
컴파일 방식의 언어
고급 언어를 기계어로 변역하는 방식의 언어
컴파일러에 의해 필요한 정보가 미리 계산되어 실행속도가 높음
ex) FORTRAN, COBOL, C, C++
인터프리터 방식의 언어
고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어
프로그램 실행과 동시에 동작
ex) basic, 프롤로그, LISP
혼합형 방식의 언어
고급 언어를 컴파일하여 중간 언어로 변환한 후, 인터프리터에 의해 번역을 실행하는 방식의 언어
ex) 자바
인터프리터
프로그램 문장을 하나씩 번역하고 실행할 수 잇도록 하는 프로그램이다.
절차적 프로그래밍 언어 종류
알골
알고리즘 연구 개발에 이용하기 위한 목적으로 생성
절차형 언어 최초로 재귀 호출이 가능
C언어
유닉스 운영체제에서 사용하기 위해 개발한 프로그래밍 언어
모든 컴퓨터 시스템에서 사용할 수 있도록 설계된 프로그래밍 언어
베이직
다양한 종류의 베이직이 존재하며 교육용으로 개발되 언어의 문법이 쉬움
서로 다른 종류 사의의 소스 코드는 호환되지 않음
포트런
과학계산에서 필수적인 기능들이 내장된 과학 기술 전문 언어
객차지향적 프로그래밍 언어 종류
C++
C 문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 템플릿 기능이 추가
C#
MS에서 개발한 객체지향 프로그래밍 언어
C++과 자바의 문법과 비슷한 문법을 가지고 있음
자바
썬 마이크로 시스템즈가 개발한 프로그래밍 언어
웹 애플리케이션 개발에 가장 많이 사용하는 언어
델파이
기본적인 문법은 파스칼 문법에 여러 기능이 추가되어 존재
높은 생산성과 간결한 코드가 대표적인 장점이고, C++과 비슷한 수준의 저수준 시스템 프로그래밍도 가능
스크립트 언어 종류
PHP
동적 웹 페이지를 만들기 위해 설계됨
PHP로 작성된 코드를 HTML에 입력 시 웹 서버에서 해당 코드를 인식하여 작성자가 원하는 방식의 웹 페이지 생성
펄
인터프리트 방식의 프로그래밍 언어
실용성을 모토로하고 있어 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입
파이썬
다양한 플랫폼에서 쓸 수 있으며 라이브러리가 풍부
유니코드 문자열을 지원하여 다양한 언어 문자 처리
자바스크립트
객체 기반 스크립트 프로그래밍 언어
웹 브라우저 내에서 주로 사용하며, 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능이 존재
선언형 언어 종류
함수형 언어
하스켈
패턴 맞춤, 커링, 조건 제시법 등의 기능이 존재
재귀 함수나 대수적 자료형도 지원
리스프
수학 표기법을 나타내기 위한 목적으로 생성
트리 자료구조, 가비지 컬렉션, 동적 자료형과 인터프리터와 같은 개념 제시
논리형 언어
프롤로그
논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용
특수 분야 언어
SQL
관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
객체 지향 프로그래밍
객체와 객체 간의 통신을 통해 프로그램이 구현된다.
객체 지향 프로그래밍의 구성요소 (객클메)
객체
개체, 속성, 메서드로 구성된 클래스의 인스턴스를 의미
클래스
객체지향 프로그래밍에서 객체를 표현하는 추상 데이터 타입으로 객체를 생성하는 틀
메시지
객체 간의 통신
객체의 구성요소 (개속메)
개체
현실 세계에 보이는 본질을 의미
속성
자료 저장소 역할을 하며, 절차 지향 프로그래밍 변수와 대응
메서드
호출 단위를 의미하며, 절차 지향 프로그래밍 함수와 대응
라이브러리
프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체
라이브러리의 구성 (도설샘)
도움말
라이브러리를 사용하는데 이해하기 쉽도록 설명해 놓은 문서
설치 파일
라이브러리를 적용하기 위해 제공되는 파일
샘플 코드
개발자가 라이브러리를 이해하고 손쉽게 적용하기 위해 제공되는 소스 코드
라이브러리의 종류
표준 라이브러리
프로그래밍 언어가 기본적으로 가지고 있는 라이브러리를 의미
각 프로그래밍 언어의 표준 라이브러리는 여러 종류의 모듈과 패키지를 가지며, 표준 라이브를 이용하면 별도의 설치 없이 날짜와 시간등의 기능을 이용 할 수 있음
외부 라이브러리
표준 라이브러리와 별도의 파일을 설치
누구나 개발하여 설치할 수 있으며 인터넷을 통해 공유 가능
모듈과 패키지
모듈
전역변수, 함수 등을 모아둔 파일
import 모듈명
패키지
모듈을 디렉터리 형식으로 구조화한 라이브러리
import 패키지명, 모듈명
'공부 > 정보처리기사' 카테고리의 다른 글
2020년 정보처리기사 실기 정리 #12 (0) | 2022.11.18 |
---|---|
2020년 정보처리기사 실기 정리 #11 (0) | 2022.11.17 |
2020년 정보처리기사 실기 정리 #9 (0) | 2022.11.15 |
2020년 정보처리기사 실기 정리 #8 (1) | 2022.11.14 |
2020년 정보처리기사 실기 정리 #7 (1) | 2022.11.13 |