컴퓨터 프로그램은 어떠한 문제를 해결하기 위해서 컴퓨터가 해야 할 일들을 작성해 놓은 코드들의 모음입니다.

여기서 '문제의 해결'이라는 것은 다른말로 '목적의 달성'이라고 생각할 수도 있습니다. 전역일 계산기 프로그램은 남은 복무 기간를 표시하는 것이 프로그램의 목적이 되고 게임의 경우 사용자에게 즐거움을 주는 것이 목적이 됩니다.

프로그램이 해결할 문제/목적이 정해지면, 이를 달성하기 위한 구체적인 과정이 논리적으로 계획되어야 하는데, 이 구체적인 실행 계획을 알고리즘이라고 합니다. 전역일 계산기를 예로들면:

  1. 입대날짜를 입력받음
  2. 복무기간을 입력받음
  3. 남은 기간 계산 (남은 기간 = 입대날짜+복무기간-오늘날짜)
  4. 남은 기간 화면에 표시

이 정도면 컴퓨터가 실행할 수 있을 것 같습니다. 이제 각각 항목을 코드로 작성(코딩)하면 프로그램이 됩니다.

게임을 만드는 것은 훨씬 복잡한 알고리즘을 필요로 합니다. 비행기 슈팅 게임을 만들 때 실제 게임의 진행 방식을 생각해 봅시다.

  1. 배경을 화면에 그림
  2. 플레이어 비행기를 화면에 그림
  3. 적 비행기를 화면에 그림
  4. 적비행기 총알을 만들고 화면에 그림
  5. 0.05초 기다림
  6. 방향키 입력이 있으면 플레이어 비행기를 그 방향으로 한칸 움직임
  7. 발사키 입력이 있으면 플레이어 비행기에서 총알을 만들고 화면에 그림
  8. 게임 종료키 입력이 있으면 게임 메뉴 화면으로 돌아감
  9. 적 비행기 움직임
  10. 총알들을 움직임
  11. 배경을 움직임
  12. 총알들 충돌확인 후 할 일(플레이어가 적군 총알에 맞는 경우 플레이어 생명 감소, 적군총알이 내 총알에 맞는 경우 둘다 사라짐 등등)
  13. 비행기들 충돌확인 후 할 일(플레이어의 생명 감소 등)
  14. 처음으로 돌아감

이런식으로 굉장히 구체적으로 계획을 세워야 합니다. 이마저도 간단하게 작성된 것이고 실제로 게임을 만들기 위해서는 더욱 구체적인 세부 사항들까지 생각해야 합니다.(적 비행기의 출현, 이동경로, 점수의 계산, 총알이 몇 개까지 나갈지 등등등)

이렇게 만든 알고리즘을 코드로 작성하면 아래와 같은 게임이 됩니다. 아래는 C언어로 작성한 비행기 게임입니다.

프로그래밍을 한다는 것은 1. 컴퓨터가 처리할 수 있는 알고리즘을 만들고, 2. 그 알고리즘을 코드로 작성하는 것입니다.

알고리즘을 잘 만들기 위해서는 목적과 기능을 구체적, 논리적으로 쪼개고 정리하는 방법을 연습해야 하고, 코드를 작성하기 위해서는 자바스크립트, 자바, C, C++, C#, 파이썬 등의 프로그래밍 언어의 문법과 사용법을 익혀야 합니다.

이 강의 시리즈에서는 프로그래밍을 전혀 모르는 사람들을 대상으로 프로그래밍에 대한 일반적인 지식과 자바스크립트를 사용하여 코딩을 하는 방법을 알아보겠습니다.

+ Recent posts