현재 자바스크립트 표준은 어디쯤

1,096 views

Published on

- OOP, 모듈 패턴
- CommonJS, AMD
- Node.js Arduino, RequireJS

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,096
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
14
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

현재 자바스크립트 표준은 어디쯤

  1. 1. 현재 자바스크립트 표준은 어디쯤? Javascript Standard of 2012 Denny Lim <hello@iamdenny.com> <iamdenny@nhn.com>
  2. 2. 객체철학문법추상수학컴퓨터과학객체지향 프로그램밍
  3. 3. 객체지향 프로그래밍
  4. 4. 왜 OOP를 해야 할까? 배우기 쉽다 유지보수 용이 직관적인 코드
  5. 5. OOP의 특징
  6. 6. 캡슐화
  7. 7. 왜 캡슐화가 필요하지?원하지 않는 무언가로부터 변수를 보호한다.
  8. 8. 자바스크립트는프로토타입 언어다
  9. 9. Private Data
  10. 10. 코딩 컨벤션fnto Hmnsedr{ucin ua(Gne) /Piae /rvt ti.ng =1 hs_Ae ; ti.sedr=sedr| ae; hs_Gne Gne | Ml /Pbi /ulc ti.rwp=fnto({ hsgoU ucin) ti.ng+; hs_Ae+ }}
  11. 11. 어디서든 접근가능
  12. 12. 특권(Privileged) 메소드fnto Hmnsepedr{ucin ua(TmGne) /Piae /rvt vrng =1 a Ae , sedr=sepedr| ae; Gne TmGne | Ml /Piiee Mto /rvlgd ehd ti.rwp=fnto({ hsgoU ucin) ng+; Ae+ }}
  13. 13. 일부 접근가능
  14. 14. 모듈 패턴
  15. 15. 모듈 패턴fnto Hmnsepedr{ucin ua(TmGne) /Piae /rvt vrng =1 a Ae , sedr=sepedr| ae; Gne TmGne | Ml /Pbi /ulc rtr { eun goU :fnto({ rwp ucin) ng+; Ae+ } }}
  16. 16. 접근 가능
  17. 17. 장점쉽다Private Data가 안전하다
  18. 18. 단점상속이 어렵다.
  19. 19. 대형 프로젝트 수많은 모듈 복잡한 의존성
  20. 20. 수많은 모듈파일 하나에 모듈 하나많은 파일들에 대한 이슈 성능 이슈 비동기 로딩
  21. 21. 복잡한 의존성불러올 모듈의 순서수동으로 순서를 지정하기 힘듬
  22. 22. 해결책은?어렵지 않다.다만, 표준이 없을 뿐.
  23. 23. CommonJS APIs Binary Console Encoding Filesystem IO Modules Packages Promises
  24. 24. CommonJS Modules Modules/1.0 : Node.js Modules/1.1 Modules/1.1.1
  25. 25. 웹서버 제작vrht =rqietp)a tp eur(ht;ht.raeevrfnto (e,rs {tpcetSre(ucin rq e) rswieed20 {CnetTp etpan}; e.rtHa(0, otn-ye: tx/li) rsedel Wrdn) e.n(Hlo ol;}.itn13,2...;)lse(37 17001)cnoelgevrrniga ht:/2...:37;osl.o(Sre unn t tp/1700113/)
  26. 26. Arduino
  27. 27. breakout.js를 이용한 예제 http://localhost:8888
  28. 28. AMD
  29. 29. Asychronous Module Definitiondfn(d,dpnece? fcoy;eiei? eednis, atr)
  30. 30. 사용법dfn(eie con acut, [srie,usb] evc pbu, fnto(evc,pbu) ucinsrie usb{ / PiaeCd / rvt oe / epr pbi AI / xot ulc Ps rtr { eun sgI :fnto({, inn ucin)} sgOt:fnto( {, inu ucin) } gtae:fnto( {, eNm ucin) } stae:fnto( { eNm ucin) } } });
  31. 31. 다른 방법(ucin)fnto({ / PiaeCd / rvt oe eprs={ xot sgI :fnto({, inn ucin)} sgOt:fnto( {, inu ucin) } gtae:fnto( {, eNm ucin) } stae:fnto( { eNm ucin) } }; dfn(acut,fnto({ eiecon ucin) rtr eprs eun xot; }});()
  32. 32. Jindo & jQuerydfn(jno,[,fnto( {eunjno})eieid ] ucin) rtr id; ;dfn(jur [,fnto( {eunjur; )eieqey, ] ucin) rtr Qey} ;
  33. 33. RequireJs
  34. 34. RequireJSAMD 구현 by James Burke비동기 로딩2.0.5
  35. 35. 사용법<cittp=tx/aacit sc"eur.s>/citsrp ye"etjvsrp" r=rqiej"<srp><cittp=tx/aacit sc"anj"<srp>srp ye"etjvsrp" r=mi.s>/cit
  36. 36. main.jsrqie[ap] fnto(p)eur(p, ucinap{ apii(; p.nt)};)
  37. 37. app.jsdfn(i/con i/esin]eie[lbacut, lbssto, fnto(con,ssin{ ucinacut eso) / 내부 코드 / rtr { eun ii :fnto({ nt ucin)} } });
  38. 38. 장점클로벌 스코프 문제 해결모든 것은 모듈안에서 작동커피스크립트로도 컴파일 가능플러그인을 지원함
  39. 39. 단점모듈 로딩 실패시 디버깅이 어렵다. 잘못된 모듈 경로 설정 플러그인 에러
  40. 40. 여전히 풀리지 않은 문제 수많은 모듈들 수많은 파일들 수많은 요청들 성능 저하
  41. 41. Gracias BY Denny Lim

×