※ 샌드박스 (Sandbox)샌드박스를 이해하려면 먼저 어원을 알아보기로 하자.샌드박스는 영어 그대로 해석하자면 "모래상자"라는 뜻이다. 아이들이 놀이터에서 놀 수 있는 공간을 의미한다. 모래 상자 안에는 당연히 모래가 있겠고 아이들이 모래를 가지고 놀다보면 그 공간은 상당히 더러워(?)질 수가 있다. 어원에 담겨 있듯이 샌드박스란 정해진 공간 안에서 형식 없이 마음껏 자유자재로 놀아라는 뜻을 가지고 있다. 즉 컴퓨터에서는 어떤 프로그램/코드를 실행할 때 제한된 공간에서 벗어나지 않고 허용되는 범위 안에서 마음껏 작업을 할 수 있음을 뜻한다. 자바스크립트에서 샌드박스 패턴을 사용하면 콜백함수로 코드를 감싸기 때문에 전역 네임스페이스를 보호할 수 있다. 샌드박스 생성자구현 (자바스크립트 코딩기법과 핵심패턴..
※ 모듈패턴자바스크립트에서 모듈 패턴은 전역 영역에서 특정 변수영역을 보호하기 위해 하나의 객체 안의 private/pulbic 변수를 포함하는 클래스 형식의 개념을 구현모듈 패턴은 복잡한 코드를 구조화시키고 정리하는 데 최적의 패턴이다. 모듈패턴을 사용하면 개별적인 코드를 느슨하게 결합시킬 수 있는 장점이 있다. 즉 개발중에라도 끊임없는 요구사항에 따라 기능을 추가하거나 삭제하거나 자유롭게 사용이 가능하다. 모듈패턴은 여러개 패턴을 조합해서 사용한다.1) 네임스페이스패턴 2) 즉시 실행함수 3) 비공개 멤버와 특권멤버 4) 의존 관계 선언 예제를 따라해보면 이해가 될 것이다.
자바스크립트에는 private, public, protected 와 같은 별도의 문법이 없다. 기본적으로는 객체의 모든 멤버는 public(공개)되어 있다. 공개가 되었다는 뜻은 외부에서 해당변수의 접근이 가능하다는 것이다.간단한 예제를 보자 비공개 멤버(private)별도의 문법은 존재하지 않지만 클로저를 이용하여 구현할 수 있다. 생성자 함수안에서 클로저를 만들면 유효범위안의 변수는 생성자 함수 외부에 노출 되지 않지만 객체의 공개 함수에서는 사용이 가능하다. 위와 같이 간단히 비공개 멤버를 구현할 수 있다. 비공개 멤버의 주의점비공개 변수값을 배열이나 객체를 반환하게 되면 비공개 변수 값을 수정할 수 있다. 따라서 비공개멤버를 반환할 때는 객체나 배열이 아닌 변수를 반환하는 것이 좋으며 객체나 배열..
객체생성패턴의 두 번째로는 의존관계선언 패턴 이다.의존관계 : 어느 사물의 존재나 성질이 다른 사물에 의하여 규정되고 제약되는 관계 ( 사전적 정의 ) 말이 어렵긴 하지만 소스코드를 보면 이해가 쉬울 것이다.예를 들어 window.history.go(-1); 을 사용한다고 가정했을 시에 위의 소스와 같이 var his = window.history; 를 변수로 선언하여 사용한다.window.history 는 전역이고 his 지역이다.위와 같은 방식을 의존관계선언 패턴이라고 한다. 프로그래밍을 해본 사람의 입장에서는 당연하고 간단한 패턴이지만 상당한 장점들이 있다.1) 의존관계가 명시적으로 선언 되어 있어 코드를 사용하는 사람이 페이지에 포함시켜야 하는 파일이 무엇인지 알 수 있다. 2) 함수의 첫머리에 ..