inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Unity6] 나만의 서바이벌 게임 만들기

아이템 설명 팝업

Dictionary Key를 int에서 string으로 변경한 이유에 대한 문의

4

용현박

작성한 질문수 2

0

안녕하세요.

강의 내용 중 Dictionary의 Key 타입이 기존 int에서 string으로 전반적으로 변경된 부분에 대해 궁금한 점이 있어 문의드립니다.

일반적으로 int 타입에 비해 string 타입은 메모리 사용량이 더 크고, 해시 계산 비용 또한 상대적으로 높은 것으로 알고 있습니다. 따라서 Key를 string으로 변경할 경우 성능 및 메모리 측면에서 비효율이 발생할 가능성이 있다고 생각됩니다.

그럼에도 불구하고 해당 변경이 이루어진 의도나 설계상의 이점(예: 가독성, 확장성, 데이터 관리 측면 등)이 무엇인지 궁금합니다. 실제 프로젝트 환경에서 이러한 선택이 가지는 장점에 대해 설명해주시면 많은 도움이 될 것 같습니다.

감사합니다.

C# unity

답변 1

2

Pinous

안녕하세요. 좋은 질문 감사합니다

말씀주신 것처럼 string은 int에 비해 메모리 사용량과 해시 비용이 더 큰 것은 맞습니다.다만 이번 강의에서 Key를 string으로 변경한 가장 큰 이유는 가독성과 유지보수성 때문입니다.

게임 개발은 코드와 데이터가 많고 여러 시스템이 연결되어 있기 때문에,1001 같은 숫자보다 "Player_HP"처럼 의미가 바로 드러나는 Key가 디버깅과 협업에 훨씬 유리합니다.또한 CSV/JSON 등 데이터 테이블과 연동하거나 확장할 때도 string이 더 유연하게 관리됩니다.

성능 측면에서는 string이 더 무거운 것은 사실이지만,일반적인 게임 로직에서는 체감될 정도의 성능 차이가 발생하는 경우는 거의 없습니다.대부분의 병목은 렌더링이나 물리, GC 등 다른 영역에서 발생하는 경우가 많기 때문입니다.

추가로, 실무 기준에서 보면 string보다는 enum으로 관리하는 방식이 더 안전하고 효율적인 경우가 많습니다.타입 안정성도 확보할 수 있고, 오타로 인한 오류도 방지할 수 있습니다.

이 부분은 강의에서 핵심 흐름 위주로 설명드리다 보니 충분히 짚어드리지 못한 것 같아 아쉬운 부분입니다.

정리하면

가독성과 데이터 관리 → string, enum

안정성과 성능 → enum / int

상황에 맞게 선택하는 것이 가장 좋은 방법입니다.

감사합니다.

1

용현박

헉! 강사님이시당...
상세한 답변 감사합니다.

말씀해주신 가독성과 유지보수성 측면에서 string Key를 사용하는 이유가 잘 이해되었습니다.

말씀해주신 것처럼 상황에 맞게 선택하는 것이 중요하다는 부분을 잘 고려해서 적용해보겠습니다.

상세하고 좋은 답변 한번 더 감사드립니다.

0

Pinous

감사합니다 :)

프로젝트 질문 문의

0

37

1

강의 코드 파일은 혹시 어디에 있나요?

0

67

1

오브젝트 파괴 애니메이션문제

0

59

2

Atlas에서 만든 Item 이미지가 삐져나옵니다

0

87

2

AddMarker를 했는데 east와 west는 잘되는데, north/south가 거꾸로 인식되는데 어떻게 해야할까요?

0

48

1

3강의 내용이 1강과 동일합니다

0

64

2

Text Object 애니메이션 이슈

0

71

3

Material 방식 수정 후 처음 포탈 할때만 아래 오류가 발생합니다

0

105

4

Inventory #1 강의 31분 28초경 오류 납니다

0

55

1

World 좌표

0

66

1

자료 ?

0

89

2

Terrain 세팅 값 문의

0

99

1

Resources.RoadAll 질문

0

67

2

Inventory #1

0

109

2

Item 연출 13:24 - Asset Manager 를 거쳐서 데이터를 가져오는 이유

0

123

2

오브젝트활성화 > 오브젝트 Hit 이펙트 쪽 질문입니다

0

99

2

1:30 - cutdown > idle - NoneInteraction false ?

0

99

2

ItemClicktap오류

0

77

1

일꾼 구현하기 #2 부분 영상 오류?

1

135

3

TextMeshPro 폰트 깨짐

0

418

2

character movement 반응속도

0

145

2

인터렉티브 키 24:14 Destory 질문

0

166

1

move함수

0

154

2

폰트에 따라 번집니다.

0

253

2