알고리즘이란?
넓은 의미에서는 자료 구조와 함께 프로그램을 구성하는 요소를 의미하고, 좁은 의미에서는 어떤 문제에 대한 답을 찾는 해법을 의미한다. 프로그램 작성 기준에서는 설계와 계획을 하는 단계에 포함이 되며, 문제를 해결하기 위한 일련의 절차나 방법을 수학적으로 공식화한 형태, 계산을 실행하기 위한 단계적인 절차를 말한다. 알고리즘은 기본적으로 5가지의 특성을 가지며, 알고리즘은 기본적인 명령어를 통해서도 작성이 가능하고, 다음과 같은 5가지 특성을 만족해야만 한다. 첫째로 입력 단계이다. 외부로부터 입력되는 자료가 0개 이상이어야 한다. 둘째로는 출력이며, 출력되는 결과가 1개 이상이어야 한다. 셋째로 명확성이다. 각 명령어의 의미가 명확하여야 하고, 넷째로 정해진 단계를 지나면 종료가 되는 유한성을 지녀야 한다. 마지막으로 유효성이 있다. 알고리즘의 모든 명령은 실행이 가능한 연산들이어야 하기 때문이다. 이러한 알고리즘의 표현은 자연어, 순서도, 의사 코드, 프로그래밍 언어 등을 이용하는 방법들이 있으며, 꼭 프로그래밍 언어가 아니더라도 알고리즘의 표현은 가능하다. 이를 정리해 보자면, 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화 한 형태를 알고리즘이라고 하며, 알고리즘의 특성 5가지로는 입력, 출력, 명확성, 유한성, 유효성 등이 있다.
순서도란?
이러한 알고리즘을 표현하는 방식에는 여러 가지가 있는데, 그중 대표적으로 순서도가 있다. 순서도는 미리 약속된 기호와 그림을 통해 논리적 절차, 흐름, 연산 등을 시각적으로 표현한 것을 말한다. 순서도의 산술 연산에는 더하기, 빼기, 곱하기, 나누기, 나머지, 거듭제곱 등이 있으며, 순서도의 관계 연산에는 크다, 크거나 같다, 작다, 작거나 같다, 같다, 같지 않다 등의 관계 연산이 있으며 각각의 기호로는 >, >=, <, <=, =, != 등이 사용된다. 순서도의 기초 공식에서는 변수와 상수가 사용이 되며, 변수는 고정되어 있지 않은 값 또는 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간이다. 상수는 고정되어 있는 값 또는 이미 지정되어 있는 변하지 않은 값을 의미하며, 순서도 안에서 데이터들은 특정한 규칙을 가지고 연산을 하게 된다.
프로그래밍 언어란?
프로그래밍 언어는 컴퓨터 시스템을 동작시키기 위한 프로그램 작성 언어를 말한다. 프로그램은 다소 단순해 보이는 명령어들의 조합으로 구성이 되는데, 이러한 조합들은 비트(Bit)라고 불리는 0과 1의 값으로 작성되거나 변환되어 컴퓨터가 이해할 수 있도록 해주는 역할을 한다. 여기서 비트는 컴퓨터를 이해하기 위한 가장 기본적인 용어로, Binary Digit의 약칭이다. 0과 1로만 구성된 이진법을 이용하게 되며, 컴퓨터를 이용할 시에 가장 흔히 접할 수 있는 1바이트(Byte)는 8비트(Bit)를 의미한다.이러한 단위에는 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트, 페타바이트, 엑사바이트 등이 있으며 각 단위가 커질수록 2의 10제곱씩 배수로 증가하게 된다. 컴퓨터 시스템의 구조는 컴퓨터가 전달받은 0과 1의 값들을 정해진 순서대로 실행하며 그 과정에서 처리, 저장 증을 수행하게 된다. 프로그램 실행 및 데이터 처리는 중앙처리장치에서 수행하게 되며, 저장은 기억장치에서 수행을 담당하게 된다. 더불어 중아처리장치로부터 명령을 받아 데이터를 입력 또는 출력하는 일은 입출력장치에서 수행을 한다. 중앙처리장치에는 목적에 따라 연상을 수행하게 되는데, 이는 연산을 위한 명령어를 실행하고 기록하기 위해서 일반적으로 인출, 해석, 실행, 기록 등의 단계를 거쳐야 한다.
이러한 프로그래밍의 기본 문법과 용어에는 변수, 식별자, 바인딩, 선언, 영역, 할당, 데이터 타입, 연산자, 명령문 등이 쓰이게 된다. 먼저 변수는 어떤 값을 주기억장치에 기억하기 위해서 사용하는 공간을 의미하며, 식별자는 프로그램의 구성요소를 구별하기 위한 기준으로, 변수명 등이 식별다에 속한다. 바인딩은 변수와 관련된 속성을 연결하는 과정으로, 정적 바인딩과 동적 바인딩으로 구분된다. 정적 바인딩에는 프로그램 실행 시간 전애 속성을 연결하는 방식이 있으며, 동적 바인딩에는 프로그램 실행 시간에 속성을 연결하는 방식이 있다. 선언에는 변수에 이름이나 데이터 타입 등의 속성을 부여하는 작업으로, 명시적 선언과 묵시적 선언으로 구분이 된다. 명시적 선언에는 선언문을 이용하며 변수 이름을 나열하고 속성을 부여하는 방식이 있고, 묵시적 선언에는 별도의 선언문 없이 디폴그 규칙에 의해 속성을 부여하는 방식이다. 영역은 이름이 사용되는 범위를 의미하며, 정적 영역과 동적 여역과 동적 영역으로 구분이 된다. 정적 영역은 변수를 찾을 때 구조에 기반하는 방식이 있으며, 동적 영역은 변수를 찾을 때 구조보다는 순서에 기반하는 방식을 말한다. 한당에는 변수에 메모리 공간을 바인딩하는 작업을 의미한다. 데이터 타입은 변수가 가질 수 있는 속성값의 길이 및 성질을 의미하며, 연산자는 데이터의 처리를 위한 연산을 표현하는 기호로서 +나 - 등이 여기에 포함이 된다. 마지막으로 명령문은 프로그램을 구성하는 문장으로, 지시 사항을 처리하는 단위를 의미한다. 추가적으로 서식 지정자에 대해 알아본다면, 변수나 값을 출력문을 통헤 출력하기 위해 사용하는 것으로 printf는 문자열만을 출력하며, 탈출문과 같이 문자열 선언을 탈출하여 변수를 인식시키는 것을 서식 지정자라고 한다.
'자격증 > 정보처리기능사' 카테고리의 다른 글
[정보처리기능사/실기] 데이터베이스 DBMS, DBA 종류 및 분류 이론 정리 (0) | 2023.05.15 |
---|---|
[정보처리기능사/실기] OSI 7계층, 네트워크 및 장비 이론 정리 (0) | 2023.05.14 |
[정보처리기능사/실기] SQL 인덱스, 뷰, 다중테이블 이론 정리 (0) | 2023.05.14 |
[정보처리기능사/실기] DDL, DML, DCL 기본 SQL 명령어 요약 (1) | 2023.05.13 |
[정보처리기능사/실기] 프로그래밍 언어의 특성과 유형 이론 정리 (0) | 2023.05.13 |
댓글