2022. 6. 6. 10:06ㆍ개발자 일지
게임을 제작하기 위해선 알고리즘을 정확히 알고 있는 것이 중요합니다. 다른 컴퓨터 분야 역시 마찬가지입니다.
우리는 알게 모르게 알고리즘을 사용하고 있는 경우가 많습니다.
유니티로 게임 개발 시 볼트를 사용해 그래프를 연결할 때도, 사진을 찍거나 포토샵으로 그림을 그린 뒤 JPG 파일로
저장할 때도 알고리즘이 사용됩니다.


알고리즘이란?
주어진 문제를 논리적으로 해결하기 위해 사용되는 방법이나 절차, 명령어들을 의미합니다.
컴퓨터는 사람과 달리 구체적으로 문제 처리 순서와 내용들을 알려주어야 명령을 정확히 수행합니다.
명령으로 처리할 내용이나 처리 방법, 순서 등을 모아 둔 것이 알고리즘입니다.
알고리즘은 구성에 따라 신속하게 일을 처리하거나 오래 걸릴 수 있고,
원치 않게 오류를 발생시킬 수 있기 때문에 효율적인 알고리즘은 무엇인지, 정확히 작성하는 것이 중요합니다.
알고리즘의 유래
알고리즘은 아랍의 수학자 무하마드 이븐 무사 알콰리즈미(Muhammad ibn Musa AI Khowarizmi)의 이름에서 유래되었습니다.
알고리즘 설계 방법론과 알고리즘의 특성들
알고리즘 설계 방법론에는 크게 그리디(Greedy), 동적 계획(Dynamic Programming), 분할 정복 방법(Divide_and_Conquer) 등을 들 수 있습니다. 알고리즘에서 중요한 것은 효율성과 정확성으로 0개 이상의 입력과 1개 이상의 출력이 있어야만 합니다. Data -> Processer -> Information
알고리즘이 특성은 효율성, 정확성, 수행성, 유한성 등 4가지 특성으로 나뉩니다.
효율성- 알고리즘은 시간적, 공간적 효율성을 갖고 있어야 하는데, 이는 주어진 입력에 대해 빠른 시간에 답을 주어야 하고, 메모리 공간이 효율적이어야 함을 의미합니다.
정확성- 결과가 출력되지 않으면 알고리즘이라 할 수 없습니다. 올바른 답을 내려야 결과가 출력 됨으로 알고리즘은 정확해야 합니다.
수행성- 알고리즘의 각 단계들은 컴퓨터에서 수행되어야 하는데, 불분명한 표현들로 프로그래밍 언어로 작성하지 않아야 합니다.
유한성- 알고리즘은 수행이 종료되지 않거나 오랜 시간이 걸리면 가치를 잃게 되어 일정 시간 내에 종료되는 것을 원칙으로 합니다.
알고리즘 (Algorithm)의 표현법
|
종류
|
내용
|
|
Natural Language (자연어)
|
사람이 사용하는 일반적인 언어
|
|
Flow-Chart (순서도)
|
알고리즘에 대한 논리적인 절차, 흐름,
처리방법을 그림으로 나타낸 것
|
|
Pseudo Code (의사코드)
|
일반적인 언어로 코드를 흉내 내어
알고리즘을 써놓은 코드
|
|
Programming Language (프로그래밍 언어)
|
컴퓨터에서 사용되는 언어로 Java, C 등과
같은 언어
|

코딩이란?
알고리즘을 C언어 등의 프로그래밍 언어로 코드를 작성하는 것을 뜻합니다.
'개발자 일지' 카테고리의 다른 글
| 배열의 이름과 포인터 변수의 차이점 (0) | 2022.06.06 |
|---|---|
| [게임 엔진] 유니티 다운로드 및 설치 방법 (0) | 2022.06.06 |
| 유니티 게임 개발 시 필요한 비주얼 스튜디오 2019 설치 방법 (0) | 2022.06.05 |
| 게임 개발 시 알아두면 도움 되는 에셋 사이트 (0) | 2022.06.05 |
| 코딩 없이 '빌드박스'로 게임 만들기 [NO CODE 게임 개발 툴] (0) | 2022.06.05 |