Minssuy

디자인 패턴을 시작하기에 앞서

Design Pattern for Game Development
By Minssuy
Posted 2026/03/092026년 3월 9일 월요일 AM 12:00
2 min read428 words
디자인 패턴을 시작하기에 앞서

프로그래밍을 입문하신 분이라면 나중에 방문해주세요.


이것은 제가 게임개발을 공부하면서 느낀 점 입니다. 지금의 저도 실력이 좋은 편은 아니지만, 프로그래밍을 입문했던 시기에는 욕심이 많았습니다. C#의 문법과 Unity 의 기능들이 어떤 것이 있는지 샅샅이 알아보려고 노력했었고, 그 중 알고리즘 이라던가 디자인 패턴 도 포함되어 있었습니다.


프로그래밍 입문자가 디자인 패턴을 공부하고 직접 적용을 시키려고 하면 어렵습니다. 어려울 뿐만 아니라,  “이게 뭔지는 알았는데, 이걸 대체 왜 사용하는거지?”  라는 의문만이 생깁니다. 왜냐하면 단순히 필요한 지식처럼 보여 공부하려 했을 뿐, 실제로 답답함이나 불편함을 겪어본 적이 없기 때문입니다.


공부를 하다보면, 지식을 공유해주시는 분들께서 꽤 많이 사용하는 말이 있습니다.
“이러한 것을 하고싶을 때가 있을텐데, 그때 그러한 것을 사용해주시면 됩니다”


입문자였던 저는 위와 같은 말을 많이 보고 들었으며, 그렇게 하고 싶은 순간이 대체 언제 오는지부터 의문이였습니다. 똑같은 의문이 들었다면 해당 지식은 여러분에게 당장 필요없는 공부일 가능성이 높습니다.


필요한 공부를 합시다.


혹시 이 글을 보고 계시는 분이 입문자라면, 이렇게 물어보고 싶습니다. 게임개발에 필요한 공부가 뭐라고 생각하시나요? C#, C++, 자료구조, 알고리즘, 디자인 패턴, CS, 게임엔진 일까요? 이것들을 전부 마스터 해야할까요?

단순히 캐릭터를 움직이는 간단한 기능을 만들고 싶다고 가정해봅시다. 캐릭터의 이동을 구현하기 위해 수학, 물리 법칙부터 시작하여, 어떤 자료구조를 사용해야하고, 어떤 디자인 패턴을 사용해야하며, 구현했을 때 CPU 와 GPU, RAM 에선 어떤 일이 일어나는지 공부해야할까요?

깊이 있는 이해는 개발에 있어서 당연히 유리합니다. 하지만 깊이 있는 이해가 있다고 해서 재미있는 게임을 만들 수 있다는 것은 아닙니다.

일단 구현하세요. 궁금증이 생기면, 깊이 있는 이해를 원한다면 그때 알아보셔도 전혀 문제되지 않습니다.


코드를 마음껏 작성하며 망쳐보세요.


디자인 패턴은 공부하는 것이 아니라, 경험하는 것입니다. 코드를 마음대로 작성하며 망쳐보는 것은 디자인 패턴을 가장 빠르게 배우는 방법입니다. 코드가 점점 지저분해지고 관리하기 어려워지면 자연스럽게 답답함과 불편함을 느끼게 됩니다. 그때 스스로 코드를 정리해보시기 바랍니다. 깔끔하게 정리가 되었다면, 여러분께선 은연 중에 디자인 패턴을 사용하셨을 지도 모릅니다.


디자인 패턴은 반드시 지켜야 하는 수칙 같은 것이 아닙니다. 그리고 누군가가 디자인 패턴을 “이런 것이 디자인 패턴이다!” 라고 먼저 정의하고 만들어 낸 것이 아닙니다. 이전 세대의 개발자들이 코드를 작성하며 “이렇게 작성하는게 관리가 수월하고 편하더라”  라고 느꼈던 설계를 디자인 패턴 이라고 이름을 붙여 공유한 것입니다.


이 이야기는 디자인 패턴뿐만 아니라 대부분의 개발 지식에도 적용됩니다. 여러분께서 게임을 만드려고 하는 이유는 무엇인가요? 아마도 재미있는 게임을 만들어 이 경험을 다른 사람에게도 공유하고 싶기 때문일 것입니다.


Silksong Code Review: Optimization, Code Quality, Hidden things
Today, we'll review the reverse-engineered C# code of Silksong.We'll look at the code improvements, bugs, optimization techniques, etc.👉 How to code a mod f...
https://www.youtube.com/watch?v=uVnd5rK_VUw

위의 유튜브 영상은, 유명 인디게임인 할로우 나이트: 실크송 에 대한 코드리뷰입니다.
이 영상을 보면, 이 게임의 로직은 객체지향 프로그래밍 OOP 의 5가지 원칙인 SOLID 원칙을 전혀 지키지 않는 모습을 볼 수 있습니다. 이전 작인 할로우 나이트 는 코드품질이 더욱 좋지 않습니다. 그렇다면 여러분께 질문해보겠습니다. 할로우 나이트 는 실패한 게임인가요?


본질


게이머들은 ‘이 게임이 재미있는가?’  를 판단하는 고객입니다. 게이머들은 저희가 작성한 코드를 보며 아름다움을 느끼고 감탄하지 않습니다. 물론, 설계라던가 SOLID 원칙 등 각종 개발 지식은 중요합니다만, 탄탄한 설계, 아름다운 코드에 집착하지 않으시길 바랍니다.


‘게임은 재미가 있어야 한다.’ 라는 본질을 잊지 않는 것이 중요하다고 생각합니다.
공부는 잠시 내려두고, 코드를 망쳐보세요.


Reference


© Powered by Minssuy