로딩
요청 처리 중입니다...

[공유] 클로저 #2

 [공유] 클로저 #2

출처 카페 > uiaa|hika 클로저 와 클로저를 설명하기 위해 위의 모든 상황을 설명해야 한다는 것과, 더군다나 이걸 대략 남의 링크를 걸어서 보여주면 좋을텐데 그런 글도 매우 희귀해서 제가 쓸 수 밖에 없었다는 사실도 놀랍습니다. 암튼 이제서야 클로저라는 걸 설명할 수 있는데, 먼저 정적 언어 입장에서 스코프(변수의 범위)를 생각해보죠.

문법적으로 어떤 변수가 특정 스코프를 갖게 하면 정적 언어에서는 이 처리를 컴파일 타임에 가상으로 초기화시킨 정적 메모리를 고려하여 처리하게 됩니다. 즉 지역변수인지 보다 오래 존속하는 변수인지 컴파일러가 구문분석을 통해 판단한 후 실제 실행시 확보될 메모리와 실행도중 사용할 메모리에서 어디에 끼워넣을지 정교하게 vtable이나 스택 후보에 올려두는 거죠.

하지만 동적 언어는 완전히 다른 양상입니다. 사실 상 모든 변수는 실행도중 생성되므로 언제 파괴할지 판단하기가 어렵습니다.

유일한 방법은 그 변수가 속해있는 어떤 범위를 인식하여 만약 범위를...

원문 링크 : [공유] 클로저 #2