2012년 9월 2일 일요일

내가 프로그램을 만드는 방식

내가 프로그래밍을 하는 방식으로, 좋은 방법인지는 모르겠지만 이 방식이 현재의 나에게
맞는것 같아서 써본다.

1. 일단 먼저 만들것을 정한다(테트리스 던 원카드 던 전화번호 관리프로그램 등...).
  -원카드를 예를 들어서 설명하겠다.

2. 그 후 그 프로그램이 완성된 모습을 대충 머릿속에 그린다(80% 정도는 그려져야 함).
 -원카드를 하는 모습을 상상해 본다.

3. 프로그램에서 필요한 부품들을 작게 나눈다.
 -일단은 트럼프 카드가 필요하고, 원카드를 할 사람이 필요하다.

4. 부품들의 속성을 파악해서 자료형으로 간단하게 나타낸다.
 -트럼프 카드는 모양과 숫자가 있으니 카드 하나에는 2가지 정보를 담기 위한 변수 2개가 필요하다.
 -사람은 이름과 갖고있는 카드 숫자, 가지고 있는 카드 등의 정보가 필요하니 3개의 변수가 필요하다.

5. 그 부품들이 할 행동들을 함수로 만든다.
 -카드를 대상으로 할 행동들은 카드를 섞고, 카드를 한장 뽑는 행위 등이 있다.
 -사람이 할 행동을 낼 카드가 있으면 내고, 아니면 카드 한장(혹은 그 이상)을 받는 행위가 있다.
 -그 외 낸 카드에 따라서 다음에 낼 카드가 정해지는 등 낼 수 있는 카드의 제한이 필요하다.

6. 위에서 정리한 내용을 바탕으로 자료형을 구성하고, 함수들을 구성해서 메인 함수(반드시 main함수를 일컫는 것은 아니고, 다른 이름의 함수도 게임을 진행시키는 메인 함수가 될 수 있다.)에서 변수를 생성하고, 내가 생각한 순서 대로(2번 단계에서 생각한 순서) 함수를 호출하고 제어문등을 사용해서 게임의 흐름을 제어한다.

7. 6번 과정을 진행하면서 자료형에서 부족한 점이라거나, 필요한 함수가 있으면 추가하거나 수정하면서 프로그래밍을 진행해 간다.

8. 최초로 생각한 모습대로 완성되면 그것이 프로토 타입이라고 할 수있다. 제작 날짜는 프로토 타입이 제작된 날짜를 기준으로 한다.

9. 그 뒤 내가 플레이 하면서 발견한 오류등을 수정하거나 게임 내용을 변경하면서 게임을 수정해 나간다. 그리고 수정한 내용과 날짜를 소스코드에 적어서 수정되는 과정을 알 수 있도록 한다.

이상이 내가 프로그램을 개발하는 과정이다. 머릿속에만 있는 지식을 글로 쓰려니 꽤 힘들었다. 다른 사람에게 도움이 될지는 모르겠다. 아무튼 프로그래밍을 시작한뒤 얼마 안된 사람이나 많은 프로그램을 작성해본 사람이 아니라면 내 방식을 참고하는것도 좋을 것이다.