@@ -330,7 +330,7 @@ createMenu({
330330});
331331```
332332
333- [ type aliases ] ( https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-aliases ) λ₯Ό μ¬μ©ν΄μ κ°λ
μ±μ λ λμΌ μ μμ΅λλ€:
333+ [ νμ
μ¨λ¦¬μ΄μ€ ] ( https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-aliases ) λ₯Ό μ¬μ©ν΄μ κ°λ
μ±μ λ λμΌ μ μμ΅λλ€:
334334
335335``` ts
336336
@@ -698,9 +698,9 @@ console.log(name);
698698
699699### μ¬μ΄λ μ΄ννΈλ₯Ό νΌνμΈμ (ννΈ 2)
700700
701- μλ°μ€ν¬λ¦½νΈμμ μμκ°μ κ°μ μν΄ μ λ¬λκ³ κ°μ²΄/λ°°μ΄μ μ°Έμ‘°μ μν΄ μ λ¬λ©λλ€. κ°μ²΄μ λ°°μ΄μ κ²½μ°, μλ₯Ό λ€μ΄ μ΄λ€ ν¨μκ° μΌν μ₯λ°κ΅¬λ λ°°μ΄μ λ³κ²½νλ κΈ°λ₯μ κ°μ§κ³ μλ€λ©΄, ꡬ맀νλ €λ μμ΄ν
μ΄ μΆκ°λ¨μΌλ‘μ¨ ` cart ` λ°°μ΄μ μ¬μ©νλ λ€λ₯Έ ν¨μλ μ΄ μΆκ°μ μν₯μ λ°μ μ μμ΅λλ€. μ΄κ²μ μ₯μ μ΄ λ μλ μμ§λ§ λ¨μ μ΄ λ μλ μμ΅λλ€. μ΅μ
μ μν©μ μμν΄λ³΄κ² μ΅λλ€:
701+ μλ°μ€ν¬λ¦½νΈμμ μμκ°μ κ°μ μν΄ μ λ¬λκ³ κ°μ²΄/λ°°μ΄μ μ°Έμ‘°μ μν΄ μ λ¬λ©λλ€. μλ₯Ό λ€μ΄, κ°μ²΄μ λ°°μ΄μ κ²½μ° μ΄λ€ ν¨μκ° μΌν μ₯λ°κ΅¬λ λ°°μ΄μ λ³κ²½νλ κΈ°λ₯μ κ°μ§κ³ μλ€λ©΄, ꡬ맀νλ €λ μμ΄ν
μ΄ μΆκ°λ¨μΌλ‘μ¨ ` cart ` λ°°μ΄μ μ¬μ©νλ λ€λ₯Έ ν¨μλ μ΄ μΆκ°μ μν₯μ λ°μ μ μμ΅λλ€. μ΄κ²μ μ₯μ μ΄ λ μλ μμ§λ§ λ¨μ μ΄ λ μλ μμ΅λλ€. μ΅μ
μ μν©μ μμν΄λ³΄κ² μ΅λλ€:
702702
703- μ¬μ©μλ λ€νΈμν¬ μμ²μ μμ±νκ³ μλ²μ ` cart ` λ°°μ΄μ μ μ‘νλ ` purchase ` ν¨μλ₯Ό νΈμΆνλ "ꡬ맀" λ²νΌμ ν΄λ¦ν©λλ€. λ€νΈμν¬ μ°κ²° λΆλ λλ¬Έμ ` purchase ` ν¨μλ μμ²μ μ¬μλν΄μΌ ν©λλ€. λ€νΈμν¬ μμ²μ΄ μμλκΈ° μ μ μ¬μ©μκ° μνμ§ μμ μμ΄ν
μ μ΄μλ‘ "μ₯λ°κ΅¬λμ μΆκ°νκΈ°" λ²νΌμ λλ₯΄λ©΄ μ΄λ»κ² λ κΉμ? λ€νΈμν¬ μμ²μ΄ μμλλ©΄, ` purchase ` ν¨μλ ` addItemToCart ` ν¨μκ° λ³κ²½ν μΌν μ₯λ°κ΅¬λ λ°°μ΄μ μ°Έμ‘°νκ³ μκΈ° λλ¬Έμ ` purchase ` ν¨μλ μ€μλ‘ μΆκ°λ μμ΄ν
μ λ³΄λΌ κ²μ
λλ€.
703+ μ¬μ©μλ λ€νΈμν¬ μμ²μ μμ±νκ³ μλ²μ ` cart ` λ°°μ΄μ μ μ‘νλ ` purchase ` ν¨μλ₯Ό νΈμΆνλ "ꡬ맀" λ²νΌμ ν΄λ¦ν©λλ€. λ€νΈμν¬ μ°κ²° λΆλ λλ¬Έμ ` purchase ` ν¨μλ μμ²μ μ¬μλν΄μΌ ν©λλ€. λ€νΈμν¬ μμ²μ΄ μμλκΈ° μ μ μ¬μ©μκ° μνμ§ μμ μμ΄ν
μ μ€μλ‘ "μ₯λ°κ΅¬λμ μΆκ°νκΈ°" λ²νΌμ λλ₯΄λ©΄ μ΄λ»κ² λ κΉμ? λ€νΈμν¬ μμ²μ΄ μμλλ©΄, ` purchase ` ν¨μλ ` addItemToCart ` ν¨μκ° λ³κ²½ν μΌν μ₯λ°κ΅¬λ λ°°μ΄μ μ°Έμ‘°νκ³ μκΈ° λλ¬Έμ ` purchase ` ν¨μλ μ€μλ‘ μΆκ°λ μμ΄ν
μ λ³΄λΌ κ²μ
λλ€.
704704
705705νλ₯ν ν΄λ²μ ` addItemToCart ` ν¨μμμ ` cart ` λ°°μ΄μ 볡μ νκ³ κ·Έκ²μ μμ νκ³ κ·Έ 볡μ ν κ°μ λ°ννλ κ²μ
λλ€. μ΄λ μΌν μ₯λ°κ΅¬λ λ°°μ΄μ μ°Έμ‘°νκ³ μλ κ°μ λ€κ³ μλ μ΄λ€ λ€λ₯Έ ν¨μλ λ€λ₯Έ λ³κ²½μ μν΄ μν₯μ λ°μ§ μλ κ²μ 보μ₯ν©λλ€.
706706
@@ -1495,7 +1495,7 @@ class UserNotifier {
14951495
14961496Gang of Fourμ [ λμμΈ ν¨ν΄] ( https://en.wikipedia.org/wiki/Design_Patterns ) μ λμμλ―μ΄ ν μ μλ λλ‘ * μμλ³΄λ€ μ‘°ν©μ μ¬μ©ν΄μΌ ν©λλ€.* μμκ³Ό μ‘°ν©μ μ¬μ©ν΄μΌ νλ μ’μ μ΄μ λ€μ κ°κ° λ§μ΅λλ€. μ΄ κ΅νμμ μ€μν μ μ λΉμ μ λ§μμ΄ λ³Έλ₯μ μΌλ‘ μμμ μΆκ΅¬νλ€λ©΄, μ‘°ν©μ΄ λΉμ μ λ¬Έμ λ₯Ό λ μ’κ² ν΄κ²°ν μ μμμ§ κ³ λ―Όν΄λ³΄λΌλ κ²μ
λλ€. μ΄λ€ κ²½μ°μλ λ μ’μ μ μμ΅λλ€.
14971497
1498- λΉμ μ "μΈμ μμμ μ¬μ©ν΄μΌ ν κΉμ?"λΌκ³ μλ¬Έμ μ κ°μ§ κ²μ
λλ€. κ·Έκ²μ λΉλ©΄ν λ¬Έμ μ λ¬λ € μμ΅λλ€. μ‘°ν©λ³΄λ€ μμμ΄ λ μ’μ κ²½μ°κ° μλμ μμ΅λλ€:
1498+ λΉμ μ "μΈμ μμμ μ¬μ©ν΄μΌ ν κΉμ?" λΌκ³ μλ¬Έμ μ κ°μ§ κ²μ
λλ€. κ·Έκ²μ λΉλ©΄ν λ¬Έμ μ λ¬λ € μμ΅λλ€. μ‘°ν©λ³΄λ€ μμμ΄ λ μ’μ κ²½μ°κ° μλμ μμ΅λλ€:
14991499
150015001 . "has-a" κ΄κ³κ° μλ "is-a" κ΄κ³μΌ λ (μ¬λ->λλ¬Ό vs μ¬μ©μ->μ¬μ©μ μ 보)
15011501
@@ -1909,8 +1909,6 @@ renderLargeShapes(shapes);
19091909
19101910### μΈν°νμ΄μ€ λΆλ¦¬ μμΉ (ISP)
19111911
1912- > TODO: μμ νμ
1913-
19141912μΈν°νμ΄μ€ λΆλ¦¬ μμΉμ "ν΄λΌμ΄μΈνΈλ μ¬μ©νμ§ μλ μΈν°νμ΄μ€μ μμ‘΄νμ§ μλλ€" λΌλ κ²μ
λλ€. μ΄ μμΉμ λ¨μΌ μ±
μ μμΉκ³Ό λ§μ κ΄λ ¨μ΄ μμ΅λλ€.
19151913μ΄κ²μ΄ μ§μ μΌλ‘ μλ―Ένλ κ²μ λ
ΈμΆλ λ©μλλ₯Ό μ¬μ©νλ ν΄λΌμ΄μΈνΈκ° λμ μ 체 νμ΄λ₯Ό μ»μ§ μλ λ°©μμΌλ‘ μΆμνλ₯Ό μ€κ³ν΄μΌ νλ€λ κ²μ
λλ€. κ·Έκ²μ λν ν΄λΌμ΄μΈνΈμκ² ν΄λΌμ΄μΈνΈκ° μ€μ λ‘ νμνμ§ μμ λ©μλμ ꡬνμ κ°μνλ κ²λ ν¬ν¨ν©λλ€.
19161914
@@ -2092,7 +2090,7 @@ await report = await reader.read('report.json');
20922090ν
μ€νΈλ λ°°ν¬λ³΄λ€ μ€μν©λλ€. ν
μ€νΈκ° μκ±°λ λΆμ‘±ν κ²½μ°, μ½λλ₯Ό λ°°ν¬ν λλ§λ€ λΉμ μ μ΄λ€ κ²μ΄ μλνμ§ μμμ§ νμ€νμ§ μμ κ²μ
λλ€.
20932091μ μ ν μμ ν
μ€νΈλ₯Ό ꡬμ±νλ κ²μ λΉμ μ νμκ² λ¬λ €μμ§λ§, (λͺ¨λ λ¬Έμ₯κ³Ό λΈλμΉμμ) 100%μ 컀λ²λ¦¬μ§λ₯Ό κ°μ§λ€λ©΄ λ§€μ° λμ μμ κ°κ³Ό λ§μμ ννλ₯Ό μ»μ κ²μ
λλ€. μ΄λ νλ₯ν ν
μ€νΈ νλ μμν¬λΏλ§ μλλΌ, μ’μ [ 컀λ²λ¦¬μ§ λꡬ] ( https://github.com/gotwarlost/istanbul ) λ₯Ό μ¬μ©ν΄μΌ νλ€λ κ²μ μλ―Έν©λλ€.
20942092
2095- ν
μ€νΈλ₯Ό μμ±νμ§ μμ λ³λͺ
μ μμ΅λλ€. νμ
μ€ν¬λ¦½νΈμ νμ
μ μ§μνλ [ λ§μ μμ μ’μ μλ°μ€ν¬λ¦½νΈ ν
μ€νΈ νλ μμν¬] ( http://jstherightway.org/#testing-tools ) κ° μμΌλ―λ‘ λΉμ μ νμ΄ μ νΈνλ κ²μ μ°Ύμ μ¬μ©νμΈμ. λΉμ μ νμ μ ν©ν ν
μ€νΈ νλ μμν¬λ₯Ό μ°Ύμλ€λ©΄, λΉμ μ΄ λ§λλ λͺ¨λ μλ‘μ΄ κΈ°λ₯/λͺ¨λμ μν ν
μ€νΈλ₯Ό νμ μμ±νλ κ²μ λͺ©νλ‘ νμΈμ. ν
μ€νΈ κΈ°λ° κ°λ°(TDD)μ΄ λΉμ μ΄ μ νΈνλ λ°©λ²μ΄λΌλ©΄, λ§€μ° μ’μ΅λλ€. νμ§λ§ μ€μν 건 μ΄λ€ κΈ°λ₯μ λ§λ€κ±°λ κΈ°μ‘΄μ κ²μ 리ν©ν λ§νκΈ° μ μ λͺ©ννλ 컀λ²λ¦¬μ§λ₯Ό λ¬μ±νλ κ²μ
λλ€.
2093+ ν
μ€νΈλ₯Ό μμ±νμ§ μμ μ΄μ λ μμ΅λλ€. νμ
μ€ν¬λ¦½νΈμ νμ
μ μ§μνλ [ λ§μ μμ μ’μ μλ°μ€ν¬λ¦½νΈ ν
μ€νΈ νλ μμν¬] ( http://jstherightway.org/#testing-tools ) κ° μμΌλ―λ‘ λΉμ μ νμ΄ μ νΈνλ κ²μ μ°Ύμ μ¬μ©νμΈμ. λΉμ μ νμ μ ν©ν ν
μ€νΈ νλ μμν¬λ₯Ό μ°Ύμλ€λ©΄, λΉμ μ΄ λ§λλ λͺ¨λ μλ‘μ΄ κΈ°λ₯/λͺ¨λμ μν ν
μ€νΈλ₯Ό νμ μμ±νλ κ²μ λͺ©νλ‘ νμΈμ. ν
μ€νΈ κΈ°λ° κ°λ°(TDD)μ΄ λΉμ μ΄ μ νΈνλ λ°©λ²μ΄λΌλ©΄, λ§€μ° μ’μ΅λλ€. νμ§λ§ μ€μν 건 μ΄λ€ κΈ°λ₯μ λ§λ€κ±°λ κΈ°μ‘΄μ κ²μ 리ν©ν λ§νκΈ° μ μ λͺ©ννλ 컀λ²λ¦¬μ§λ₯Ό λ¬μ±νλ κ²μ
λλ€.
20962094
20972095### TDDμ μΈ κ°μ§ λ²μΉ
20982096
@@ -2112,7 +2110,7 @@ await report = await reader.read('report.json');
21122110
21132111- ** Independent** ν
μ€νΈλ μλ‘ μ’
μμ μ΄μ§ μμ΅λλ€. λ
립μ μΌλ‘ μ€ννλ μ§ μμ μκ΄μμ΄ λͺ¨λ μ€ννλ μ§ λμΌν κ²°κ³Όκ° λμμΌ ν©λλ€.
21142112
2115- - ** Repeatable** ν
μ€νΈλ μ΄λ€ νκ²½μμλ λ°λ³΅λ μ μμ΅λλ€. ν
μ€νΈκ° μ€ν¨νλλ°μ λ³λͺ
μ΄ μμ΄μΌ ν©λλ€.
2113+ - ** Repeatable** ν
μ€νΈλ μ΄λ€ νκ²½μμλ λ°λ³΅λ μ μμ΅λλ€. ν
μ€νΈκ° μ€ν¨νλλ°μ μ΄μ κ° μμ΄μΌ ν©λλ€.
21162114
21172115- ** Self-Validating** ν
μ€νΈλ * ν΅κ³Ό* νΉμ * μ€ν¨* λ‘ λ΅ν΄μΌ ν©λλ€. ν
μ€νΈκ° ν΅κ³Όλμλ€λ©΄ λ‘κ·Έ νμΌμ 보며 λΉκ΅ν νμλ μμ΅λλ€.
21182116
@@ -2277,8 +2275,6 @@ downloadPage('https://en.wikipedia.org/wiki/Robert_Cecil_Martin', 'article.html'
22772275
22782276### νλ‘λ―Έμ€λ³΄λ€ ` async ` /` await ` κ° λ λͺ
λ£ν©λλ€
22792277
2280- With ` async ` /` await ` syntax you can write code that is far cleaner and more understandable than chained promises. Within a function prefixed with ` async ` keyword you have a way to tell the JavaScript runtime to pause the execution of code on the ` await ` keyword (when used on a promise).
2281-
22822278` async ` /` await ` ꡬ문μ μ¬μ©νλ©΄ μ°κ²°λ νλ‘λ―Έμ€ κ΅¬λ¬Έλ³΄λ€ ν¨μ¬ λ λͺ
λ£νκ³ μ΄ν΄νκΈ° μ¬μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€. ` async ` ν€μλκ° μμ λΆμ¬μ§ ν¨μλ ` await ` ν€μλμμ μ½λμ μ€νμ λ©μΆλ€λ κ²μ μλ°μ€ν¬λ¦½νΈ λ°νμμκ² μλ €μ€λλ€.
22832279
22842280** Bad:**
@@ -2711,7 +2707,7 @@ import { UserService } from '@services/UserService';
27112707
27122708### μ£Όμ λμ μ μ체μ μΌλ‘ μ€λͺ
κ°λ₯ν μ½λλ₯Ό μμ±νμΈμ
27132709
2714- μ£Όμμ μ¬κ³ΌμΌ λΏ, νμν κ²μ΄ μλλλ€ . μ’μ μ½λλ λλΆλΆ κ·Έ μ‘΄μ¬ μμ²΄λ‘ λ¬Έμνκ° λ©λλ€.
2710+ μ£Όμμ λ³λͺ
μΌ λΏ, νμνμ§ μμ΅λλ€ . μ’μ μ½λλ λλΆλΆ κ·Έ μ‘΄μ¬ μμ²΄λ‘ λ¬Έμνκ° λ©λλ€.
27152711
27162712** Bad:**
27172713
@@ -2849,7 +2845,7 @@ class Client {
28492845
28502846μΆνμ κ°μ μ μν΄ μ½λμ λ©λͺ¨λ₯Ό λ¨κ²¨μΌν λ, ` // TODO ` μ£Όμμ μ¬μ©νμΈμ. λλΆλΆμ IDEλ μ΄λ° μ’
λ₯μ μ£Όμμ νΉλ³νκ² μ§μνκΈ° λλ¬Έμ ν΄μΌν μΌ λͺ©λ‘μ λΉ λ₯΄κ² κ²ν ν μ μμ΅λλ€.
28512847
2852- νμ§λ§ * TODO* μ£Όμμ΄ λμ μ½λμ λν λ³λͺ
μ μλλΌλ κ²μ λͺ
μ¬νμΈμ.
2848+ νμ§λ§ * TODO* μ£Όμμ΄ λμ μ½λλ₯Ό μμ±ν μ΄μ λ μλλΌλ κ²μ λͺ
μ¬νμΈμ.
28532849
28542850** Bad:**
28552851
0 commit comments