Priv's Blog
1. Introducing design patterns 본문
1. 디자인 패턴을 소개합니다.
여러분이 Unity에서 작업하실 때, 굳이 바퀴를 새로 발명할 필요는 없습니다. 이미 다른 분들이 여러분을 위해 발명을 해두었기 때문이죠.
여러분이 마주하는 모든 소프트웨어 디자인 문제는 수천 명이 넘는 개발자들도 이미 겪어본 문제입니다. 그렇기 때문에 여러분들이 문제를 마주할 때마다 조언을 얻고자 매번 그분들에게 질문을 남기는 것 대신, 디자인 패턴들을 통해 그분들이 어떤 결정을 내렸는지를 학습해 볼 수 있습니다.
디자인 패턴은 소프트웨어 엔지니어링 과정에서 흔하게 마주치게 되는 문제들을 해결하는 보편적인 해결책들을 말합니다. 비록 여러분의 코드에 단순히 복사해 붙여 넣는 것만으로 문제를 해결할 수 있는 완벽한 해결책이 될 수 없겠지만, 디자인 패턴을 여러분의 도구상자에 담아둘 여분의 공구로써 생각해 볼 수 있습니다. 어떤 디자인 패턴은 다른 디자인 패턴에 비해 더 명확하게 보이기도 합니다.
이 가이드는 Unity 개발에서 잘 알려진 디자인 패턴들을 모아둔 것입니다.
가이드에서 제공하는 예시들은 더 쉽게 접근할 수 있도록 단순화하였으며, 기술 용어의 비중을 줄였지만, 이 가이드를 읽기 전에 먼저 C#에 대한 기초적인 개념을 알고 있어야 합니다.
만약 디자인 패턴을 처음 접해보거나, 간단하게 복습이 필요할 경우, 이 가이드가 게임 개발에 적용해 볼 수 있는 일반적인 시나리오를 제공할 것입니다. 또한 다른 객체 지향 언어(Java, C++, 등)에서 C#으로 전환할 경우, 제공된 예제들이 어떻게 Unity에 적합하도록 디자인 패턴을 적용할 수 있는지 보여줄 것입니다.
여기서 가장 중요한 것은 디자인 패턴은 단순한 아이디어일 뿐이라는 것입니다. 모든 상황에 디자인 패턴이 적용되지는 않을 것입니다. 하지만 디자인 패턴을 올바르게 사용하면 여러분이 규모를 더 확장할 수 있는 큰 규모의 애플리케이션을 빌드하는 데 도움이 될 것입니다. 디자인 패턴을 여러분의 프로젝트와 통합하여 코드의 가독성을 향상하고 코드 베이스를 더 깔끔하게 만들어보세요. 디자인 패턴에 대한 경험이 쌓이면 디자인 패턴이 여러분의 개발 속도를 끌어올릴 수 있는 순간이 언제인지 알아차릴 수 있게 될 것입니다.
자, 그러면 이제 바퀴를 발명하는 걸 멈추고, 음, 뭔가 좀 더 새로운 걸 만들어 보도록 하죠.
기여해 주신 분들
이 가이드는 15년 이상 3D 및 비주얼 이펙트 아티스트로써 영화와 텔레비전 산업 분야에서 일하셨으며, 현재는 인디 게임 개발자 및 교육자로서 일하고 계시는 Wilmer Lin 선생님이 쓰셨습니다. 또한 시니어 테크니컬 콘텐츠 마케팅 매니저 Thomas Krogh-Jacobsen, 시니어 Unity 엔지니어 Peter Andreasen와 Scott Bilas 선생님도 크게 기여해 주셨습니다.
2. 이 가이드를 'KISS 원칙'과 함께 사용하세요.
이 가이드는 여러분의 코드를 새로운 방향으로 생각하고 구성하는 방법을 제공하는 것에 초점을 맞추고 있습니다. 이 가이드에서 특별히 소개된 몇 가지 디자인 패턴들은 Unity 개발에 맞게 수정되었습니다.
함께 포함된 샘플 프로젝트는 설명 도중에 등장한 코드의 내용을 담고 있습니다. 해당하는 씬을 직접 열어서 적용된 디자인 패턴과 그 기본 원리를 파악해 보세요.
하지만 이러한 예제들을 살펴보실 때, 문제를 해결하는 “정답”이 아니라는 것을 명심하세요. 예제 코드는 그저 수많은 해결책 중의 하나일 뿐입니다.
확신이 없을 때는 가이드에서 소개하는 모든 내용에 KISS 원칙(“단순하게 해, 이 바보야.”)을 적용해 보세요. 꼭 필요한 순간에만 복잡성을 추가하는 겁니다.
모든 디자인 패턴은 희생이 따릅니다. 이는 유지보수를 해야 할 추가적인 구조가 있거나, 작업을 시작할 때 더 많은 준비가 필요할 수 있음을 의미합니다. 디자인 패턴을 구현하기 전에 요구되는 추가 작업량을 통해 얻을 수 있는 이득이 어느 정도인지를 먼저 알아보세요.
만약 여러분이 마주한 문제에 어떤 디자인 패턴을 적용하면 좋을지 잘 모르겠다면, 더 자연스러운 적합한 상황이 올 때까지 기다리는 것이 더 좋은 선택지일 수 있습니다. 디자인 패턴을 새로운 것 또는 색다른 것이라는 이유만으로 사용하려고 하지 마세요. 디자인 패턴은 여러분이 필요할 때 쓰는 겁니다.
그러면 디자인 패턴은 의도된 목적대로 동작할 것입니다. 여러분이 더 나은 소프트웨어를 개발하는 것 말이죠.
이제 시작해 봅시다.
수고하셨습니다!
'Unity Learn > Game Programming Patterns' 카테고리의 다른 글
6. Singleton pattern (0) | 2023.10.31 |
---|---|
5. Object pool (0) | 2023.10.23 |
4. Factory pattern (0) | 2023.10.11 |
3. Design patterns for game development (0) | 2023.10.05 |
2. The SOLID principles (0) | 2023.10.01 |