kyuseo의 게임 프로그래밍
프로그램 개발, 프로그래밍 방법 및 절차 순서도(UML) 본문
개요.. |
제가 초보 시절에는 프로그램 개발(프로그래밍)을 무작정 빨리 속도를 최우선으로 작업을 했습니다.
틀린 그림 찾기 서치아이(Searcy eYe) 온라인 게임도, 벽돌 깨기 게임 배드볼(Bad Ball)도 3개월에 개발을 하고(네트워크 프로그래밍을 배우면서), 공개 게임은 1 ~ 2개월에 개발을 완료하였습니다.
빨라서 좋기는 하였지만 그로 인한 개발 후유증이 많았습니다. 개발 완료 이후 나타나는 각종 종합 버그 선물 세트로 서버가 꺼져서 새벽에 회사에 출근하는 경우가 다반사였고 ^^;
오래된 게임들은 머나먼 은하계 넘어 X파일에나 나올법한 외계 코드로 전혀 소스를 분석할 수 없는 경우가 대다수가 되었습니다.
무엇보다 개발자로써 다른 사람에게 보여줄 수 없는 창피한 코드가 부끄러웠습니다.
서치아이 온라인2를 개발할 무렵부터는 코딩 속도보다는 안정성과 구조, 디자인 패턴을 많이 생각하고, UML으로 미리 실행하여 미리 각종 상황에 대처하려 노력을 하고 있지요. 또한 코드자체의 코딩 미학에 신경을 쓰면서 작업을 하기 때문에 전에 비하면 제 프로그래밍 속도가 2배 이상 느려졌지만, 많은 생각을 가지고 미리 머릿속으로 고민한 코드가 더욱 빠르고 안정적입니다.
당연한 이야기겠지만 버그 수정작업이 무척이나 줄어들어 전체 개발시간은 오히려 단축이 되었습니다.
초보자시절에는 힘들겠지만 조금씩 노력을 하면 몇 년 안에 안정적인 코드 설계에 대해서 좋은 생각을 얻을 수 있으리라 생각됩니다.
프로그램 개발(프로그래밍) 방법 및 절차 순서도(UML) |
2004년 6월에 습관적으로 하는 행동을 재정리해본 것입니다.
1. 프로그램의 목적 및 특징을 파악
2. 각종 유사 프로그램의 전체적인 구조 파악 (벤치마크)
(외형적인 부분은 쉽게 파악이 되나 내부적인 코드 설계 자체는 잘 파악이 되지 않습니다. 그 내부적인 것을 파악할 수 있도록 고민 또 고민합니다.)
3. 프로그램 제작에 필요한 내가 알지 못하는 지식 습득
(주로 구굴(Google)과 데브피아, 네이버, 서적… 이용할 수 있는 모든 방법을 이용합니다.)
4. 클래스 구성 및 각종 클래스간의 상관관계를 대략 작성
5. UML 및 메모 등을 이용하여 가상 컴파일&실행 문제점 발생시 4번으로 복귀
6. 각종 예외 상황 파악하고 클래스에 문제점이 없는지 검사
7. 실제 프로그램 제작
8. 문제 발생시 4번으로 복귀