인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

아오우미님의 프로필 이미지
아오우미

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Singleton 패턴

Dependency Injection(DI)

작성

·

72

1

웹 개발에서는 DI를 통해 객체를 관리하는 경우가 많은데, 게임 프로젝트에서도 DI를 활용해 객체를 관리하는 사례가 많을까요? 아니면 강의에서 소개된 것처럼 Managers 객체를 통해 관리하는 경우가 더 일반적인가요

답변 2

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

그건 프로젝트 리더가 정하는 것을 따르면 됩니다.
일반적으로 클라는 구조에 그래도 좀 너그러운 편이고
경험상 서버는 그래도 조금 더 Component화 해서 관리하긴 했습니다.

아오우미님의 프로필 이미지
아오우미
질문자

헉;; 답변 엄청 빠르네요.. 감사합니다!

클라이언트 쪽은 테스트 코드 작성이 제한적이고 구조도 비교적 단순해서 DI가 꼭 필요하지 않은 걸까요? 아니면 오히려 Component화 같은 설계 방식이 클라이언트에서는 더 복잡하게 느껴질 수도 있는 걸까요? 제가 게임 프로그래밍 경험이 많지 않아서 혹시 엉뚱한 질문이었다면 죄송합니다;; 🙇‍♂

Rookiss님의 프로필 이미지
Rookiss
지식공유자

클라는 아무래도 UI 등이 서버에 비해 변경이 심해서 그런 것도 있고요.
단순하고 빠르게 개발할 때는 전역 객체를 이용하는게 나름 효율적입니다.
서버는 그보다 많은 유저들을 관리해야 해서,
컨텐츠 코드 구조상 전역 객체가 많이 필요하지 않습니다.

아오우미님의 프로필 이미지
아오우미
질문자

답변 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

아오우미님, Dependency Injection(DI)의 사용은 웹 개발뿐만 아니라 게임 개발에서도 점점 더 널리 퍼지고 있는 추세입니다. DI는 모듈화와 테스트의 용이성을 높이기 때문에, 대규모 게임 프로젝트에서의 사용 빈도가 늘고 있습니다. 특히 유연한 코드 구조와 유지보수를 위해 DI를 선택하는 개발자들이 많습니다.

다만, 게임 프로젝트에서는 여전히 전통적인 Managers 패턴을 선호하는 경우도 많습니다. Managers 객체를 통해 각종 게임 로직을 한 곳에서 관리함으로써 복잡성을 줄이려고 합니다. 이는 특히 소규모 프로젝트나 팀에서 빠르게 구현하는 방식으로 여전히 자주 사용됩니다.

DI에 대하여..
이 질문은 웹 개발에서의 DI 사용과 게임 개발에서의 객체 관리 비교에 대한 유사 사례로 참고하시면 좋을 것 같습니다.

추가적으로, 게임 개발에서 DI를 사용할 때의 장점과 단점, 그리고 DI를 도입하는 방법에 관한 더 깊이 있는 설명이 필요하시다면 관련 자료를 찾아보시는 것도 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아오우미님의 프로필 이미지
아오우미

작성한 질문수

질문하기