알고리즘이란 무엇인가?
알고리즘은 문제나 과제를 해결하기 위한 처리 절차를 하나하나 구체적인 순서에 따라 표현한 아이디어나 생각을 말한다. 알고리즘은 아이디어 또는 생각이기 때문에 형태가 없기 때문에 다른 사람에게 전달하려면 눈에 보이도록 표현해야 한다. 알고리즘은 프로그래밍에만 사용되는 것이 아니라 일상생활에서도 많이 사용되고 있다. 예를 들면 요리 레시피는 요리라는 과제를 해결하기 위한 절차(알고리즘)를 주로 문장이나 사진을 이용하여 표현한 것이다. 그 외 연주라는 과제를 해결하기 위한 절차를 도형적인 기호나 부호로 표현한 악보 등이 있다.
프로그래밍은 프로그램을 작성하는 작업을 말하며, 프로그램은 컴퓨터가 실행해 주기 원하는 처리 절차를 알고리즘으로 표현한 후 이를 프로그래밍 언어로 기술한 것이다. 프로그램의 작성은 기획, 설계, 프로그래밍, 디버그로 진행한다. 알고리즘은 설계 단계에서 필요하다. 알고리즘은 프로그램의 설계서에 해당한다. 알고리즘을 정해지면 프로그래밍하는데 이를 코딩이라고 한다. 코딩은 프로그래밍 언어를 사용하여 알고리즘을 프로그램으로 만들어 나가는 것을 말한다. 디버그는 프로그램 개발 단계 중 시스템의 논리적 오류나 비정상적 연산(버그)을 찾아내어 수정하는 작업으로, 처음부터 완벽한 결과물을 만들어 낼 수 없는 개발의 특성상 시작 단계에서부터 완료 시까지 계속해서 디버깅 과정이 이뤄진다.
알고리즘 기본형- 순차 구조, 선택 구조, 반복 구조
알고리즘에는 세 가지 기본형이 있다. 처음부터 순서대로 처리하는 순차 구조, 조건식으로 판단해 실행할 처리를 전환하는 선택 구조, 조건을 만족하는 동안 같은 처리를 반복하는 반복 구조가 있다. 순차 구조는 실행해 주길 원하는 처리를 위에서부터 순서대로 작성한 것으로, 알고리즘의 실행 순서를 위에서 아래로 순차적으로 표현한 구조를 말한다. 선택 구조는 두 개 이상의 값을 비교하여 결괏값이 참 또는 거짓인가를 판단하여 다음에 수행할 작업의 단계를 결정할 수 있다. 그래서 예상하지 못한 사태를 가정해 미리 회피할 수 있도록 한다. 선택 구조는 조건에 따라 그 이후의 처리가 나누어진다(분기한다)는 이유로 분기 구조(조건 분기)라고도 한다. 반복 구조는 필요에 의해 몇 개의 단계를 반복적으로 수행해야 할 때 더욱 쉽게 표현할 수 있다.
알고리즘을 기술하는 방법
알고리즘을 기술하는 방법에는 다양한 방법이 있다. 순서도는 주어진 문제를 해결하거나 업무를 처리할 때, 처리할 일의 순서를 한 단계씩 구분하여 약속된 도형으로 한눈에 들어오게 표현한 그림이다. 순서도는 프로그래밍 언어를 사용하지 않고 알고리즘을 기술하는 방법으로, 다른 말로는 플로 차트라고도 한다. 또 다른 알고리즘을 기술하는 방법으로 프로그래밍 언어가 있다. 프로그래밍 언어에는 여러 종류가 있는데, 프로그래밍 학습에서 일반적으로 사용되는 언어는 C와 Java이다. 웹 프로그래밍의 경우 주로 PHP와 JavaScript가 사용된다. 프로그래밍 언어를 사용하여 작성한 프로그램은 즉시 실행할 수 있고 실행 결과를 볼 수 있으나, 문제를 완벽히 이해하지 않은 상태에서는 오류가 발생할 소지가 있다. 세 번째 알고리즘을 기술하는 방법으로 자연어로 표현한 것을 연상 기호 등을 사용하여 쉽고 간단하게 문제의 처리 과정을 나타낸 의사코드가 있다. 의사 언어는 프로그래밍으로 사용할 수 없으나 프로그래밍 언어에 의존하지 않고 알고리즘을 기술할 수 있다는 장점이 있다.
'기초과학' 카테고리의 다른 글
HDD와 SDD -정보 저장 방법의 차이 (0) | 2024.03.22 |
---|---|
빛의 반사와 굴절, 실상과 허상의 차이 (0) | 2024.03.19 |
리튬이온배터리 형태 - 각형 VS 원통형 VS 파우치형 (0) | 2024.03.17 |
유기화합물 명명법의 역사 (0) | 2024.03.15 |
유기화학(Organic Chemistry)이란? 정의와 역사, 탄소를 다루는 이유, 탄소화합물 (0) | 2024.03.14 |