inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Packet Generator #6

패킷 클래스 관련 질문입니다.

352

SilenceColor

작성한 질문수 1

0

안녕하세요,
Generator로 만든 클래스들(packetHander.cs나 GenPackets.cs, ~~Packetmanager.cs)을 보면 namespace가 없는데요, namespace가 없어도 다른 클래스에서 선언 및 사용이 가능한데요,

혹시 namespace 없이 클래스를 선언해 사용하는 것과 namespace를 정의하고 클래스를 선언해 사용하는 것이 어떤 차이가 있는지 알 수 있을까요??

그리고 namespace는 책꽂이 같은 개념이라 namespace를 using으로 선언하고 그 scope아래에 클래스를 만들면, 해당 클래스가 어디 위치에 있다는 것을 정의하는 개념으로 사용된다고 알고 있는데요, 이것도 맞을까요??

C#

답변 1

1

Rookiss

namespace는 말 그대로 이름이 겹치지 않게 보장해주기 위함인데요.
어떤 프로젝트에서 Player라는 클래스를 사용하는데
외부 라이브러리에서 또 동일한 이름의 Player 이름을 사용하면,
이름이 겹쳐서 문제가 되겠죠.
namespace Rookiss { } 를 붙여주면 Rookiss.Player와 같이 이름을 구분지을 수 있게 되고
다만 매 번 이렇게 치기 귀찮으니 using namespace Rookiss;와 같은 형태로 선언해줄 수 있습니다.

0

SilenceColor

그렇다면

프로젝트에서 만든 클래스 A 정보가 빌드 파일 어딘가에 있다고 가정할 때,
1. 동일한 프로젝트 내에서 클래스 A를 사용하려 할 때 A의 정보가 있는 위치에 접근하여 정보를 가져와 사용하기에
2. 특별히 namespace를 선언하지 않더라도 클래스는 사용이 가능하다.
---
3. 하지만 다른 라이브러리에서 A라는 동일한 클래스 이름이 있을 경우, 어떤 A 클래스인지 모르니 이런 충돌을 방지하기 위해 namespace를 사용해 클래스를 구분해 사용할 수 있다.

이렇게 이해했는데 맞을까요?

TLS 질문드립니다.

0

52

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

55

2

Unity Span

0

81

2

XML, Dll 차이점

0

110

2

Session 질문입니다

0

81

1

Write Read 커서 키워드

0

78

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

73

2

네트워크 Send 전담 스레드 배치

0

99

2

UnhandledException 으로 서버 터지는 경우

0

88

2

컨텐츠 단, 엔진 단

0

106

1

질문 있습니다

0

78

2

C# 게임서버 3D MMORPG

0

150

2

유니티6 버전

0

100

2

receive하는 부분과 send하는 부분의 차이

0

134

2

커서의 위치의 중요성

0

105

2

C++ 전혀 모르는데 C# 서버

0

170

2

강의에 질문이 있습니다

0

88

2

멀티스레드 이해도 질문

0

96

1

500 vs 500

0

130

3

OnAcceptHandler 액션 함수

0

64

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

193

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

83

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

107

1

스핀락 질문.

0

110

2