TypeScript, Angular¸¦ »ç¿ëÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßºÎÅÍ NativeScript¸¦ È°¿ëÇÑ ³×ÀÌƼºê ¾Û º¯È¯°ú Azure Ŭ¶ó¿ìµå¿¡¼ ¼ºñ½º »ý¼º±îÁö ±×´ë·Î µû¶óÇÏ¸ç °³¹ßÇϱâ
ÀÌ Ã¥Àº TypeScript °³¹ßÀ» °¡Àå ½Ç¿ëÀûÀ¸·Î ½ÃÀÛÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù. µÎ °³ÀÇ Èï¹Ì·Î¿î ÇÁ·ÎÁ§Æ®¸¦ óÀ½ºÎÅÍ °³¹ßÇϸç TypeScriptÀÇ ±âÃʸ¦ ´ÙÁö°í ÇÔ¼ö, Á¦³×¸¯, ÇÁ·Î¹Ì½º, Äݹé°ú °°Àº ±â´ÉÀ» ¹è¿ì°Ô µÈ´Ù. °´Ã¼ÁöÇâ ¹æ½ÄÀ¸·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ°í È¿À²ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ °ü¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¹è¿î´Ù. ¶ÇÇÑ Á¦ÀÛÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷Çϱâ Àü¿¡ Å×½ºÆ®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼµµ ¼³¸íÇÑ´Ù. Angular¸¦ »ç¿ëÇØ ´ÜÀÏ ÆäÀÌÁö ¾ÖÇø®ÄÉÀ̼Ç(SPA)À» ¸¸µé°í, ÀÌ·¸°Ô ¸¸µç À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» NativeScript¸¦ »ç¿ëÇØ ³×ÀÌƼºê ¾ÛÀ¸·Î º¯È¯ÇÑ´Ù. ¸¶Áö¸·À¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÁ¦ ¼ºñ½ºÇϱâ À§ÇØ Azure Ŭ¶ó¿ìµå Ç÷§Æû¿¡ ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù. ÀÌ·¯ÇÑ °úÁ¤Àº »çÀüÁö½Ä ¾øÀ̵µ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï ±âÃʺÎÅÍ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. ÀÌ Ã¥À» ÀÐ°í ³ª¸é µÎ °³ÀÇ ±âº»ÀûÀÎ ±â´ÉÀÌ ¸ðµÎ Æ÷ÇÔµÈ ÇÁ·ÎÁ§Æ®¸¦ ¾òÀ» ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó, ´ÙÀ½ ´Ü°è·Î ³ª¾Æ°¥ ¼ö ÀÖ´Â ´Ù¾çÇÑ ±âº» ±â¼úÀ» ¿¬¸¶ÇÏ°Ô µÈ´Ù.
À¥ ±â¹Ý ±â¼ú¿¡ ±íÀº °ü½ÉÀ» °¡Áø ±â¼ú ¾ÆÅ°ÅØÆ®·Î 10³â ³Ñ°Ô ´å³Ý, JavaScript, Durandal, Angular, TypeScript¿Í °°Àº ±â¼úÀ» »ç¿ëÇÏ¿© À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ°í ÀÖ´Ù. Fortune 500´ë ±â¾÷¿¡ ¼³°è µðÀÚÀÎ, ±â¼ú Áö¿ø, °³¹ß Àü¹® °¡À̵带 Æ÷ÇÔÇÑ ±â¼ú ¼Ö·ç¼ÇÀ» Á¦°øÇÏ°í ÀÖ´Ù.
»õ·Î¿î ¾ð¾î¿Í ±â¼úÀ» ¹è¿ì´Â °ÍÀ» Áñ±â´Â Æú¸®±Û¶ù °³¹ßÀÚ(¿©·¯ ¾ð¾î¸¦ ±¸»çÇÏ´Â °³¹ßÀÚ)ÀÌ´Ù. ÃÖ±Ù¿¡´Â ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Azure¸¦ »ç¿ëÇÑ Å¬¶ó¿ìµå ±â¹ÝÀÇ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ °ü½ÉÀ» °¡Áö°í ÀÖÀ¸¸ç, Microsoft Azure Architect, Microsoft ASP.NET MVC Web Application, Microsoft Programming with C#°ú °°Àº ´Ù¾çÇÑ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ÀÚ°ÝÁõÀ» °¡Áö°í ÀÖ´Ù.
Chapter 1 TypeScript ½ÃÀÛÇϱâ
JavaScriptÀÇ ÇöÀç
JavaScriptÀÇ ÁÁÁö ¾ÊÀº ºÎºÐ
±â´É
ŸÀÔ À¯Ãß(Type Inference)
¹è¿
µ¿µî ºñ±³(Equality comparision)
Null or undefined
TypeScript ±¸Á¶´ë
TypeScriptÀÇ ÀåÁ¡
TypeScript¿Í JavaScript ºñ±³
JavaScriptÀÇ ´ë¾È
TypeScript ±â´É
ÁÖ¿ä ±â´É
µ¥ÀÌÅÍ Å¸ÀÔ
Á¦¾î È帧 ºÐ¼®(Control flow analysis)
ĸ½¶È
»ó¼Ó
ÀÎÅÍÆäÀ̽º
½¦ÀÌÇÁ(Shape)
µ¥ÄÚ·¹ÀÌÅÍ
TypeScript ¹®¹ý°ú Å°¿öµå
¼³Ä¡¿Í ¼³Á¤
TypeScript ¼³Ä¡
TypeScript ¿¡µðÅÍ
Visual Studio
VS Code
TypeScript ÄÄÆÄÀÏ·¯
TypeScript TODO ¸ñ·Ï ¾ÖÇø®ÄÉÀ̼Ç
todo.ts
TypeScriptÀÇ Å¬·¡½º
TypeScriptÀÇ ÇÔ¼ö
TypeScript ÄÚµå µð¹ö±ë
³îÀÌÅÍ(Playground)
¿ä¾à
Chapter 2 ù ¹ø° ¾ÖÇø®ÄÉÀÌ¼Ç . Sport News Combinator
Sports News Combinator . SNC
ÄÚµå ´Ù¿î·Îµå
SNCÀÇ ±â´É
ŸÀÔ ½Ã½ºÅÛ(Type System)
º¯¼ö
var Å°¿öµå
let°ú const Å°¿öµå
TypeScriptÀÇ Å¸ÀÔ
ŸÀÔ ¾î³ëÅ×À̼Ç
¿ø½Ã ŸÀÔ
¹è¿
Æ©ÇÃÇü(Tuple)
Any
Void
Null°ú undefined
À¯´Ï¿Â ŸÀÔ(Union types)
ŸÀÔ Ãß·Ð(Type Inference)
ŸÀÔ Ã¼Å©
TypeScriptÀÇ Å¬·¡½º
TypeScriptÀÇ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö
Ŭ·¡½ºÀÇ ÀÌÇØ
Á¢±Ù Á¦¾îÀÚ(access modifier)
Ŭ·¡½º¿¡¼ º¯È¯µÈ JavaScript
SNC . °³¿ä
Angular . superhero ÇÁ·¹ÀÓ¿öÅ©
SPA
Angular . °³³ä
Angular . ¾ÆÅ°ÅØÃÄ
SNC . ¾ÆÅ°ÅØÃÄ
SNC . ÄÚµå ¼³Á¤
Angular CLI ¼Â¾÷
¾ÖÇø®ÄÉÀÌ¼Ç ¼Â¾÷
SNC . Æú´õ ±¸Á¶
¸ðµ¨ ¸¸µé±â
ù ¹ø° ÄÄÆ÷³ÍÆ® . NewsComponent
ÅÛÇø´
ÄÄÆ÷³ÍÆ® Ŭ·¡½º
ÄÄÆ÷³ÍÆ® ¸ÞŸµ¥ÀÌÅÍ
Import
newsComponent
newsComponent ºñÁî´Ï½º ·ÎÁ÷
newsComponent template ·ÎÁ÷
SNC - ÄÚµå ½ÇÇà
¿ä¾à
Chapter 3 Sports News Combinator - ±â´É Ãß°¡
ÇÔ¼ö
ÇÔ¼öÀÇ Å¸ÀÔ
¼±ÅÃÀû(Optional)/±âº»(default) ÆĶó¹ÌÅÍ
³ª¸ÓÁö(Rest) ÆĶó¹ÌÅÍ
ÇÔ¼ö ¿À¹ö·Îµù
ŸÀÔ½ºÅ©¸³Æ®ÀÇ Å¬·¡½º
Ŭ·¡½º Á¤ÀÇ
»ý¼ºÀÚ
ÇÁ·ÎÆÛƼ¿Í ¸Þ¼µå
»ó¼Ó
Ãß»ó(Abstract) Ŭ·¡½º
ÀÎÅÍÆäÀ̽º
ÀÎÅÍÆäÀ̽º Á¤ÀÇ
´ö ŸÀÌÇÎ(duck typing)
ÀÎÅÍÆäÀ̽º È®Àå
ÀÎÅÍÆäÀ̽º ±¸Çö
SNC¿¡ ±â´É Ãß°¡
¸ðµ¨ À籸¼º
ÄÚ¾î ÄÄÆ÷³ÍÆ®
ÅÛÇø´°ú »ðÀÔ½Ä(interpolation)
AngularÀÇ Áö½ÃÀÚ ·Îµå ÀýÂ÷
¿ä¾à
Chapter 4 Sports News Combinator
µ¥ÄÚ·¹ÀÌÅÍ
µ¥ÄÚ·¹ÀÌÅÍ µðÀÚÀÎ ÆÐÅÏ
TypeScript µ¥ÄÚ·¹ÀÌÅÍ
SNC µ¥ÄÚ·¹ÀÌÅÍ
SNC Ãß°¡ ±â´É
SNC¿¡ ¼ºñ½º Ãß°¡
SNC¿¡¼ HTTP È£Ãâ ±¸Çö
SNC ¶ó¿ìÆÃ
ÃÖÁ¾ ÇÁ·Î´öÆ®
¿ä¾à
Chapter 5 µÎ ¹ø° ¾ÖÇø®ÄÉÀÌ¼Ç . Æ®·¼·Î
Æ®·¼·Î ¿¹Á¦ ¾ÖÇø®ÄÉÀÌ¼Ç ¼Ò°³
¾ÖÇø®ÄÉÀÌ¼Ç °³¿ä
±â¼ú °³¿ä
TypeScript ³×ÀÓ½ºÆäÀ̽º¿Í ¸ðµâ
À¯´Ï¹ö¼³ ³×ÀÓ½ºÆäÀ̽º
TypeScript ³×ÀÓ½ºÆäÀ̽º
TypeScript ¸ðµâ
TypeScript Á¦³×¸¯
Á¤ÀÇ
ÇÔ¼ö
Ŭ·¡½º
Á¦³×¸¯ Á¦¾à
Æ®·¼·Î ¿¹Á¦ ¾ÖÇø®ÄÉÀ̼Ç
¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÅ°ÅØÃÄ
ÄÚµå ¼³Á¤
Æ®·¼·Î ȨÆäÀÌÁö
¸ðµ¨
ȨÆäÀÌÁö ÄÄÆ÷³ÍÆ®
ȨÆäÀÌÁö . µ¥ÀÌÅÍ ÃʱâÈ
ȨÆäÀÌÁö . ÅÛÇø´
ȨÆäÀÌÁö . »õ·Î¿î º¸µå Ãß°¡
¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà
Æ®·¼·Î - º¸µå ÄÄÆ÷³ÍÆ®
¶ó¿ìÆÃ
º¸µå ÄÄÆ÷³ÍÆ® . µ¥ÀÌÅÍ ÃßÃâ
º¸µå ÄÄÆ÷³ÍÆ® . ÀÚ½Ä ÄÄÆ÷³ÍÆ®¿¡ µ¥ÀÌÅÍ Àü´ÞÇϱâ
¿ä¾à
Chapter 6 Æ®·¼·Î¿¡ ±â´É Ãß°¡Çϱâ
¹Ýº¹ÀÚ(iterator)
JavaScript ¹Ýº¹ÀÚ
TypeScript ¹Ýº¹ÀÚ
TypeScript for...of¿Í for...in ·çÇÁ
TypeScript¸¦ ÀÌ¿ëÇÑ ºñµ¿±â ÇÁ·Î±×·¡¹Ö
Äݹé ÇÔ¼ö
ÇÁ·Î¹Ì½º(Promise)
Async-await
¿¹Á¦ Æ®·¼·Î ¾ÖÇø®ÄÉÀ̼ǿ¡ ±â´É Ãß°¡
¿¹Á¦ Æ®·¼·Î¿¡¼ ÇÁ·Î¹Ì½º »ç¿ëÇϱâ
ÇÁ·Î¹Ì½º ±¸Çö
ȨÆäÀÌÁö ÄÄÆ÷³ÍÆ®¿¡¼ È£ÃâÇϱâ
±â´É ±¸Çö
±¸Çö . »õ·Î¿î ÀÛ¾÷ Ãß°¡
±¸Çö . »õ·Î¿î ÇÏÀ§ ÀÛ¾÷ Ãß°¡Çϱâ
º¸µå, ÀÛ¾÷, ÇÏÀ§ ÀÛ¾÷ÀÇ Á¦¸ñ º¯°æÇϱâ
AngularÀÇ µ¥ÀÌÅÍ Æ÷¸ËÆÃ
³»Àå ÆÄÀÌÇÁ
»ç¿ëÀÚÁ¤ÀÇ ÆÄÀÌÇÁ
Angular ÀÇÁ¸¼º ÁÖÀÔ ÀÌÇØÇϱâ
ÀÇÁ¸¼º °ü¸®
¿ä¾à
Chapter 7 Æ®·¼·Î ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®
±âº» °³³ä
Å×½ºÆ®ÀÇ ¾î·Á¿ò
Å×½ºÆ® ±â¹Ý °³¹ß
´ÜÀ§ Å×½ºÆ® vs Á¾´Ü°£ Å×½ºÆ®(end-to-end test)
Å×½ºÆ® ±¸Á¶
Å×½ºÆ® µµ±¸
ÀÚ½º¹Î(Jasmine)
Ä«¸£¸¶(Karma)
ÀÚ½º¹Î°ú Ä«¸£¸¶ ¼³Ä¡ ¹× ¼³Á¤
Å×½ºÆ® ÇÁ·ÎÁ§Æ®ÀÇ Æú´õ¿Í ÆÄÀÏ ±¸Á¶
ÆÄÀÌÇÁ¿ë Å×½ºÆ® ÀÛ¼ºÇϱâ
»õ·Î¿î ÆÄÀÏ »ý¼º
Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
Å×½ºÆ® ÄÉÀ̽º ½ÇÇà
¼ºñ½º Ŭ·¡½º¸¦ À§ÇÑ Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
»õ·Î¿î ÆÄÀÏ »ý¼º
Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
µ¶¸³µÈ ÄÄÆ÷³ÍÆ®ÀÇ Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
»õ·Î¿î ÆÄÀÏ ÀÛ¼º
Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
Å×½ºÆ® ÄÉÀ̽º ±¸Çö
ÅëÇÕ ÄÄÆ÷³ÍÆ®¸¦ À§ÇÑ Å×½ºÆ® ÄÉÀ̽º ÀÛ¼º
ÅëÇÕ Å×½ºÆ® ¼³Á¤
Å×½ºÆ® ÄÉÀ̽º ±¸Çö
´Ù¸¥ ÄÄÆ÷³ÍÆ®¸¦ À§ÇÑ Å×½ºÆ® ÄÉÀ̽º
¿ä¾à
Chapter 8 Æ®·¼·Î . Angular CLI »ç¿ëÇϱâ
Angular CLI ¼Ò°³
Angular CLI ¼³Á¤
Angular CLI help ¸í·É¾î
Angular CLI·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
ÆÄÀÏ °³¿ä
ng new . Ç÷¡±×¿Í Ä¿½ºÅ͸¶ÀÌ¡
¾Û Ä¿½ºÅ͸¶ÀÌ¡
Angular CLI ÆÄÀÏ
¾ÖÇø®ÄÉÀ̼ǿë ÆÄÀÏ ¸¸µé±â
ÄÄÆ÷³ÍÆ® ¸¸µé±â
¼ºñ½º »ý¼º
ÆÄÀÌÇÁ »ý¼º
¸ðµâ »ý¼º
TypeScript ÆÄÀÏ »ý¼º
Angular ¾Û ºôµå
ºôµå ÇÁ·Î¼¼½º
dev ¸ðµå·Î ¾ÖÇø®ÄÉÀÌ¼Ç ºôµå
»ó¿ë ¸ðµå¿¡¼ ¾ÖÇø®ÄÉÀÌ¼Ç ºôµå
Angular ¾Û ±¸µ¿
ng serve ¿É¼Ç
Angular ¾ÖÇø®ÄÉÀÌ¼Ç ¸°ÆÃ
¸°ÆÃ ±ÔÄ¢
¸°Æà ¿É¼Ç
Æ®·¼·Î ¾ÖÇø®ÄÉÀÌ¼Ç ¸°ÆÃ
Angular CLI¸¦ »ç¿ëÇÑ ÄÚµå Ä¿¹ö¸®Áö
Æ®·¼·Î ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå Ä¿¹ö¸®Áö
¿ä¾à
Chapter 9 Æ®·¼·Î ¸ð¹ÙÀÏ . NativeScript »ç¿ëÇϱâ
NativeScript¶õ?
NativeScript µðÀÚÀÎ
NativeScript vs À¥ ¾ÖÇø®ÄÉÀ̼Ç
NativeScript ȯ°æ ¼³Á¤
NativeScript CLI
¸ð¹ÙÀÏ Ç÷§Æû ÀÇÁ¸¼º ¼³Ä¡
NativeScript¸¦ »ç¿ëÇÑ ¿¹Á¦ Æ®·¼·Î ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß
¾ÖÇø®ÄÉÀÌ¼Ç °ñ°Ý »ý¼º
NativeScript ¾ÖÇø®ÄÉÀÌ¼Ç ±âº» Æú´õ ±¸Á¶
ȨÆäÀÌÁö ÄÄÆ÷³ÍÆ® °³¹ß
±âÁ¸ ÄÁÅÙÃ÷ Á¦°Å
Æ®·¼·Î º¸µå ¸ðµ¨
Æ®·¼·Î ¼ºñ½º ±¸Çö
ȨÆäÀÌÁö ÄÄÆ÷³ÍÆ® ±¸Çö
ȨÆäÀÌÁö ÄÄÆ÷³ÍÆ® ¿¬°á
Áö±Ý±îÁöÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç °ËÅä
run ¸í·É¾î ½ÇÇà
¾ÖÇø®ÄÉÀÌ¼Ç µð¹ö±ë
º¸µå ÄÄÆ÷³ÍÆ® °³¹ß
º¸µå ÄÄÆ÷³ÍÆ® ÅÛÇø´
º¸µå ÄÄÆ÷³ÍÆ® ¶ó¿ìÆà º¯°æ
ÄÚµå ½ÇÇà
NativeScript UI ¿¤¸®¸ÕÆ®
¿ä¾à
Chapter 10 ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Azure¸¦ »ç¿ëÇؼ ¿¹Á¦ Æ®·¼·Î¸¦
Ŭ¶ó¿ìµå¿¡ ¹èÆ÷Çϱâ
¹èÆ÷ Ç÷§ÆûÀ¸·Î¼ÀÇ Azure Ŭ¶ó¿ìµå
Ŭ¶ó¿ìµå Ç÷§ÆûÀÇ ÀåÁ¡
¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Azure ¹èÆ÷ ¿É¼Ç
FTP¸¦ »ç¿ëÇÑ ¿¹Á¦ Æ®·¼·Î À¥¾Û ¼ºñ½º ¹èÆ÷
À¥¾Û ¼ºñ½º °ü¸®
Æ®·¼·Î ¿¹Á¦ ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷
À¥¾Û ¼ºñ½º GitHub¸¦ »ç¿ëÇÑ ¿¹Á¦ Æ®·¼·Î ¹èÆ÷
GitHub ÅëÇÕ
¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà
Áö¼ÓÀûÀÎ ¹èÆ÷¿Í ¸ð´ÏÅ͸µ
¿ä¾à
Appendix A ºÎ·Ï
1. ºñÁÖ¾ó ½ºÆ©µð¿À Äڵ忡¼ TypeScript µð¹ö±ëÇϱâ
2. TypeScript 2.8 ¼Ò°³
3. TypeScript 2.9 ¼Ò°³
ã¾Æº¸±â