2. JavaScript란? ¶
2.1. Prototype 기반 ¶
- prototype?
- oop class prototype로 나늰다.
- prototype 래가 들고 는 들 가 들고 게 만드는 것다.
- 를 prototype라 부른다.
- oop class prototype로 나늰다.
3.2. Excuteion Context ¶
- this
- p.do() p가 문맥다. 그러나 를변로 면 var f = p.do; f(); 런로 그러면 f는 문맥 기 때문 객가 문맥로 된다.
- p.do() p가 문맥다. 그러나 를변로 면 var f = p.do; f(); 런로 그러면 f는 문맥 기 때문 객가 문맥로 된다.
- 결론로 막 . 는 것 다.
- func.apply(ec, arguments) 나 func.call(ec, arg1, arg2, ... )로 func 문맥(this)를 명로 변경 다.
3.3. new 동 ¶
- new Person();
- 1. create instance
- 2. instance.proto = Person.prototype;
- 때 proto는 로 라 다.(로 다를 다.)
- 때 proto는 로 라 다.(로 다를 다.)
- 3. 문맥 instance로 를 다.
- 1. create instance
3.4.1. Class vs Prototype ¶
- Class : 맴 변가 각각 class 나 는것.
- prototype : 맴 변 모두 되는것
- 단 는 다른 다.
- 그 다른 는 prototype라 부른다.
class <-----------------> prototype VTable <-----------------> prototype chain (proto)
- 단 는 다른 다.
3.4.2. dispatch ¶
- 는 를 는 과
- javascript는 로 다.
- instance proto 고 면 그 proto 고...
- instance proto 고 면 그 proto 고...
- 드로 나내보면..
for (var _proto = a; _proto; _proto = _proto.__proto__) { if (("f" in _proto) && typeof _proto["f"] === "function") _proto["f"].apply(a, arguments]); }
- 바립는 반 변 구 기때문 변 또 dispatch가 된다.
3.4.3. ¶
- 는 prototype chain 록면 된다.
function People(){}; function Man(){}; Man.prototype = new People(); m = new Man();
3.5. same origin policy ¶
- 바 립는 XSS를 막기(?) 동 메 면 javascript문맥 근 다.
- iframe나 XHR 것 는다.
- document.domain 로 동 메 범를 바꿀 다.
- wiki.zeropage.org www.zeropage.org 를 동 메로 급기 document.domain zeropage.org로 다.
- 단, 것 메. 부만 를 며 붙는 것 되 는다.
- wiki.zeropage.org www.zeropage.org 를 동 메로 급기 document.domain zeropage.org로 다.
3.5.1. Same Origin Policy를 극복기 방법 ¶
- proxy
- 다른 메 근기 동 메 다른 결과를 그대로 내려는 proxy를 다.
- 부가 많 리고(다 보내고 그 다 내려므로 및 기 가)
- 문가 릴경 보 될 다.
- 다른 메 근기 동 메 다른 결과를 그대로 내려는 proxy를 다.
- Image
- 래 same origin policy를 로 극복 나 바리므로 당 리가 다.
- 래 same origin policy를 로 극복 나 바리므로 당 리가 다.
- Ifreame
- 내부 다른 바립 드가 동 나 다른 메라면 근 가다.
- 래로 극복 나 라 부가 고 바립 고 방로 결는것 라 다.
- 내부 다른 바립 드가 동 나 다른 메라면 근 가다.
- Script tag
- Same origin policy를 고 바립를 러 나 바로 되므로 다른 방 다.
- script tag를 로딩 끝나면 바로 기 때문 러개를 동 러경 변를 방 가.
- 따라 callback로 결다.
- 때 내려 답 JSON과는 다르다.
- Same origin policy를 고 바립를 러 나 바로 되므로 다른 방 다.
__callback({ "json" : "data"});
- 같 로 내려경 라( ) _callback만 두면 로딩 끝남과 동 리게 된다.
- 답 JSON 만 감기 문 JSON with Padding, JSONP라 부른다.
4.1. 류 ¶
- Apache http server (httpd)
- 리 고 는 고 가 나다.
- 리 고 는 고 가 나다.
- IIS
- windows 고 나고 GUI관리가 가능다.
- windows 고 나고 GUI관리가 가능다.
- lighttpd
- event driven 방
- event driven 방
- nginx
- evnet driven 방며 nodejs 때문 명다.
- evnet driven 방며 nodejs 때문 명다.
4.3.1. Unix File ¶
- Unix File라 다 모두 미다.
- 리가 고 는 그 (Process - Disk)
- 로 되는 Pipe
- 격 머 는 로 는 Socket
- 기 는 드라
- 리가 고 는 그 (Process - Disk)
- Unix는 C 구고 강력 를 뭔가를 고 는 것로 File 만들다.
- 다과 같 느낌다.
FILE f = new Pipe();
4.3.2. CGI ¶
- Common Gateway Interface
- Unix는 Pipe File므로 static file 대 Pipe를 면 뭔가 다나믹게 되까?
- 는 두고 기 다른 로를 그 결과를 들.
- 때 규 CGI라 부른다.
- standard Input는 request body 다.
- standard Output는 response body를 긴다.
- 그 기 보는 경변로 긴다.
- standard Input는 request body 다.
- RFC3875며 IETF 관리다.
- 매 다 로 로를 기때문 메모리 모가 고 disk근 많다.
4.4. 괜 ¶
- 로 로를 만드는 보.
- 공라브러리는 로가 될때 만 러다.
- ISAPI(ISS) : DLL)
- mod (apache : so)
- ISAPI(ISS) : DLL)
- 가 많 되는 방
- process per request 방 fork 고 다 메모리를 많 먹는다.
- 만 모 다 디 기 때문 나다.
4.5.1. MPM ¶
- fork는 부 module로 만들 러 방 다.
- fork 대 Thread를 고 로 다른 방 고 fork를 그대로 다.
- 기 던 방 pre-fork방
- mpm-worker 방 로 대 드를 는 방다.
- 나 로 러개 드를 만들 대기다가 면 나 대는 방
- thread per request 방
- 다만 모 Thread 다.
- 나 로 러개 드를 만들 대기다가 면 나 대는 방
- CPU 많 다.
- Servlet 같 방다.
- context switch가 많 나 고 균 답 길다.
4.5.2. MPM + Queue ¶
- 를 만들 context switch 보려고 노력다.
- connection 두고 worker가 나 꺼내 리
- 기 고 는 방긴 나 context switch는 난다.