donaricano-btn

namespace(네임스페이스)


1. 정의

A namespace is a container which allows developers to bundle up functionality under a unique, application-specific name. In JavaScript a namespace is just another object containing methods, properties, and objects.

- 구분 가능한 영역

- 자바의 package 와 같다

- 자바스크립트에서는  namespace 와같은 기능을 제공하지 않는다. 그렇기 때문에 object를 이용하여 namespace를 만든다


2. 사용

1) namespace(네임스페이스)의 필요성


- 실행결과 : 3

- 의도 하지 않게 a의 변수에 함수가 담기면서 값이 3으로 변했다

- 전역 변수를 무분별 하게 사용 함으로서 변수 명과 함수명 혹은 변수명 사이에 중복이 발생한다

- 이걸 방지 하고자 namespace를 사용한다


2) namespace 사용법

- 전역 객체 선언

 

- 1, 2 번의 결과는 동일하게 myApp 이라는 object를 생성한다

- 위와 같이 선언함으로서 namespace 선언의 중복을 방지 할 수 있다

- sub_namespace

 

- 자바스크립트의 특성을 이용하여 sub_namespace 도 가능하다

- 자바의 package안에 폴더를 구성하는 것과 같다

- 구현

 

- 실행결과 : kyle, BMW, 02

- 문제점:  객체생성( sub_namespace)하고 오브젝트를 채워 넣을 때마다 위에 먼저 선언해야 한다는 문제가 있다. 이는 소스 코드를 어지럽힐 수 있다 


3) 지저분한  namespace 선언 해결

 

- 함수를 이용하여 먼저 namespace, subnamespace 를 선언한다

- 위와 같은 방법을 통해 위에서 발생한 지저분한 코드 문제점을 해결 할 수 있다

- nameFun('master_namespace.subnamespace.subnamespace.subnamespace.....')


3. 네임스페이스의 문제점

- 소스코드량 증가

- 전역 인스턴스가 바뀐다면 소스 코드 모두 수정

- 이름을 따라 가기 때문에 성능이 느리다


블로그 이미지

리딩리드

,