티스토리 뷰

namespace 라는 말 몰라도 코드짜는데 문제는 없었지만 개발서적이나 튜토리얼 읽다보면 눈에 밟힌다.

 C++ 할 때도 그 어떤 기계보다 기계적으로 using namespace std; 를 쳤는데

namespace가 정확히 무엇인지 잘 몰랐다.그런데 요 몇일 namespace라는 단어가 왜이렇게 자주 보이는지...RxSwift 공부하다가 RxCocoa adds the rx namespace to UITextField, URLSession.....Alamofire 공부하다가 Alamofire uses namespacing, so you need to prefix all calls that you use...

 

뭔진 알지. 왜냐면 Rx 때는 titleLabel.rx.text 이런식으로 썼고 Alamofire는 AF.request( ) 이런식으로 쓰니까.그니까.그게 뭐냐구.찾아본다.


Namespace는 놀랍게도 한국어로 '이름 공간'이라고 부른다. (나만 촌스럽게 느껴지는건가 키키)위키피디아를 찾아보면 아래와 같이 namespace를 정의해놓았다.

 

In computing, a namespace is a set of signs that are used to identify and refer to objects to various kinds.

A namespace ensures that all of a given set of objects have uniques names so that they can be easily identified.

(Wikipedia/namespace)

 

즉, 개체를 구분하기 위해 쓰이는 고유 범위(?)이다.

(지금 '고유 범위'라고 말하니까 좀 이상한데 조금 읽다 보면 괜찮아질겁니다! 제가 항규거를 잘 몬해요 하핳)

 

C++ 에서는?

C++ 을 사용할 때 using namespace std; 는C++ 표준라이브러리 타입과 함수들이 std namespace 내에 속해 있으니 scope resolution operator(범위 지정 연산자 ::) 를 안 쓰고 접근하겠다고 지정해준 것이었다.직접 만들 수도 있는데, 아래 코드에서 보듯이 해당 name을 쓰겠다는 범위를 지정해준 내부 변수/함수 등에 대해 활용이 가능하다.

// namespace.h

namespace sueaty 
{
	void DisplayInformation() // 함수 원형
    int count; // 변수 선언
}

// namespace.cpp
#include "namespace.h"

int main(void) {
	...
    sueaty::count = 3;
}

Swift 에서는?

근데 중요한건... Swift가 namespace를 지원하지 않는다는 것.....예? RxSwift랑 Alamofire에서 namespace 쌸라쌸라 한건뭐시여...?들어가보면 되죠. 오픈소스잖소?

아 enum? 어... 잠깐만?

모두 static variable에 static function 들이다.

문득 예전에 짜던 내 코드들이 머릿속을 지나갔다.

예를 들어 enum NotificationName 이라던지.... NotificationCenter를 통해 쓸 이름들을 모두 그 내부에서 static 상수로 정의해 놓아서

NotificationName.transitionNoti 등으로 접근 가능하게 만들었다.

 

즉, swift는 모듈 내에서 namespace type이나 namespace constants에 대한 해결책을 제공하진 않지만 
개발할 때 이름으로 인한 혼란을 줄일 수 있는 몇가지 방법들이 있다.

구조체와 열거형의 사용인데 그 상세한 방법은 링크 요이따!

'CS > 기타' 카테고리의 다른 글

MVC에서 MVP를 거쳐 MVVM까지  (0) 2021.10.19
[GitHub] Personal Access Token  (3) 2021.08.23
[Git] Terminal logout & login (OSX)  (0) 2021.04.15
대기업 코딩 테스트 공부방법  (0) 2019.06.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함