Angularλ κ°κ°μ μλ‘μ΄ λ²μ μμ κ°λ°μ κ²½νκ³Ό μ ν리μΌμ΄μ μ±λ₯μ μ§μμ μΌλ‘ ν₯μμμΌ μμ΅λλ€. μλ₯Ό λ€μ΄ μκ·Έλ(signal) κΈ°λ° λ°μν λͺ¨λΈμ΄λ μλ² μ¬μ΄λ λ λλ§(SSR) κ°μ κΈ°λ₯μ μ΄λ―Έ λ§μ κ°λ°μλ€μκ² κ·Έ μ μ©μ±μ μ μ¦ν΄ 보μμ΅λλ€.
Angular v20μμλ νμΈ΅ λ λμκ° λͺ¨λ μ ν리μΌμ΄μ μμ μ±λ₯μ κΈ°λ³Έκ°μΌλ‘ μ 곡νλλ‘ μ€κ³λμμ΅λλ€. νλ μμν¬ ν΅μ¬ μν€ν μ² μ λ°μ κ±ΈμΉ μ‘°μ¨λ κ°μ μ¬νλ€μ ν΅ν΄, Angular v20μ λ³λμ μΆκ° μμ μμ΄λ λΉ λ₯΄κ³ λ°μμ±μ΄ λ°μ΄λ νμ₯ κ°λ₯ν μΉ μ ν리μΌμ΄μ μ ꡬμΆν μ μλλ‘ μ§μν©λλ€.
κ·Έλ λ€λ©΄ μ΄λ ꡬ체μ μΌλ‘ 무μμ μλ―Έν κΉμ?
Angular v20μμ μ£Όλͺ©ν λ§ν μ±λ₯ μ€μ¬μ μ£Όμ κΈ°λ₯λ€μ ν¨κ» μ΄ν΄λ³΄κ² μ΅λλ€.
μλ² μ¬μ΄λ λ λλ§: λκ·λͺ¨ μ ν리μΌμ΄μ μμμ κ³ μ±λ₯ μ 곡
μλ² μ¬μ΄λ λ λλ§(Server-Side Rendering)μ μ΄κΈ° λ‘λ© μλ ν₯μκ³Ό SEO μ΅μ νλ₯Ό μν΄ μ¬μ ν μ€μν κΈ°λ₯μ λλ€. Angularλ μλ² μΈ‘μμ νμ΄μ§ λ΄μ©μ μμ±ν¨μΌλ‘μ¨ μ¬μ©μμκ² λΉ λ₯΄κ² μ½ν μΈ λ₯Ό νμνκ³ κ²μ μμ§ μ΅μ νμλ ν¨κ³Όμ μ λλ€.
Angular v16μμλ μ 체 μ ν리μΌμ΄μ μν(Full-Application Hydration) κΈ°λ₯μ λμ νμ΅λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈλ μλ² μΈ‘μμ μμ±λ DOM ꡬ쑰λ₯Ό μ¬μ¬μ©ν μ μκ³ , μ ν리μΌμ΄μ μνμ μλ²μμ κ°μ Έμ¨ λ°μ΄ν°λ μ μ§λ©λλ€. μν κ³Όμ μ΄ μλ€λ©΄, μ 체 DOMμ΄ νκΈ°λκ³ λ€μ μμ±λμ΄ μΈν°λν°λΈ μκ°μ΄ μ§μ°λ©λλ€.
μ΄λ¬ν μμ μ μΈ κΈ°λ° μμμ Angular v19μμλ μ¦λΆ μν(Incremental Hydration) κΈ°λ₯μ κ°λ°μ 미리보기 ννλ‘ μΆμνμ΅λλ€. μ΄ κΈ°λ₯μ ν΅ν΄ νΉμ μ»΄ν¬λνΈμ μνλ₯Ό ν΄λΉ μμκ° νμν λκΉμ§ μ°κΈ°ν μ μμ΄ λ²λ€ ν¬κΈ°λ₯Ό μ€μ΄κ³ μΈν°λν°λΈ μκ°(Time-to-Interactive)μ κ°μ νλ λμμ, μ 체 μνμ μ μ¬ν μ¬μ©μ κ²½νμ μ μ§ν μ μμ΅λλ€.
κ·Έλ¦¬κ³ λλμ΄ Angular v20λΆν° μ¦λΆ μνκ° μμ νλμμ΅λλ€. μ΄μ μ΄ κΈ°λ₯μ νλ‘λμ νκ²½μμλ μμ μ μΌλ‘ μ¬μ©ν μ μμΌλ©° 곡μμ μΌλ‘ μ§μλ©λλ€.
νμ±ν λ°©λ²:
- μ ν리μΌμ΄μ
ꡬμ±μμ provideClientHydration
κ³Ό withIncrementalHydration()
μ ν¨κ» μ¬μ©νμΈμ.
- hydrate on
, hydrate when
, λλ hydrate never
κ°μ μν νΈλ¦¬κ±°λ₯Ό νμ©νλ defer λΈλ‘μ μ¬μ©νμΈμ.
μ΄λ¬ν λꡬλ€μ μ¬μ©μ μνΈμμ©λ νΉμ 쑰건μ λ°λΌ μν νμ΄λ°μ μΈλ°νκ² μ μ΄ν μ μλ κΆνμ κ°λ°μμκ² λΆμ¬νλ©°, μ΅μ νλ μ±λ₯μ μ€νν μ μμ΅λλ€.
μμΈν μ 보λ Angular.devμ μ¦λΆ μν κ°μ΄λμμ νμΈνμ€ μ μμΌλ©°, μμΌλ‘μ μ λ°μ΄νΈ μμμ Angular 곡μ YouTube μ±λμμ λ§λλ³Ό μ μμ΅λλ€.
μΈλΆ λ 벨μμμ λ λλ§ μ λ΅ μ μ΄
μ¦λΆ μνλ Angular v20μμ SSR κ°μ μ μΌλΆμ λΆκ³Όν©λλ€.
Angular v19μμλ λΌμ°νΈ λ¨μλ‘ λ λλ§ λͺ¨λλ₯Ό μ€μ ν μ μλ APIλ₯Ό κ°λ°μ 미리보기 ννλ‘ λμ νμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ° λΌμ°νΈμ λν΄ ν΄λΉ μ»΄ν¬λνΈκ° μλ²μμ λ λλ§λ μ§, μ μ μΌλ‘ μμ±λ μ§, νΉμ ν΄λΌμ΄μΈνΈμμ λ λλ§λ μ§λ₯Ό λͺ μμ μΌλ‘ μ μν μ μμ΅λλ€.
μ΄λ¬ν μ μ΄λ λ€μκ³Ό κ°μ μ΄μ μ μ 곡ν©λλ€: - μ νμ λ λλ§μ ν΅ν μ±λ₯ ν₯μ - κ°μ λ SEO κ²°κ³Ό - μ¬μ©μ κ²½ν ν₯μ - λ΄μ₯λ κ΅μ ν μ§μ - κ°λ° μλ²μμ μνν ν΅ν©
μ΄μ Angular v20μμλ μ΄ λΌμ°νΈ λ¨μ λ λλ§ λͺ¨λ μ€μ APIλ€μ΄ μμ νλμμΌλ©°, κ°λ°μλ μ΄ κΈ°λ₯μ νλ‘λμ νκ²½μμλ μμ μκ² μ¬μ©ν μ μμ΅λλ€.
μ¦, μ§κΈ λ°λ‘ μμνμ¬ Angularμ μ μ°ν λ λλ§ νμ΄νλΌμΈμ λ§μκ» νμ©ν΄ 보μΈμ.
Zoneless λͺ¨λ: λ³ν κ°μ§μ μ λ°μ±μΌλ‘ λμκ°λ μλ
Angular v20μμ κ°μ₯ κΈ°λλλ κΈ°λ₯ μ€ νλλ Zoneless Angularκ° κ°λ°μ 미리보기 λ¨κ³λ‘ μ§μ ν μ μ λλ€.
Angularλ μ€λ«λμ ZoneJSμ μμ‘΄ν΄ μμ΅λλ€. ZoneJSλ κ±°μ λͺ¨λ λΈλΌμ°μ μ΄λ²€νΈ νμ λ³κ²½ κ°μ§λ₯Ό μ€ννλ―λ‘, μ ν리μΌμ΄μ ν νλ¦Ώμ μ€μ λ‘ μν₯μ μ£Όμ§ μμ μ΄λ²€νΈμλ λΆκ΅¬νκ³ λΆνμν 체ν¬κ° λ°μν μ μμ΅λλ€.
Zoneless λͺ¨λμμλ κ°λ°μκ° μΈμ κ·Έλ¦¬κ³ μ΄λ»κ² λ³κ²½ κ°μ§κ° μ€νλ μ§λ₯Ό μ§μ μ μ΄ν μ μμ΅λλ€. μλ₯Ό λ€μ΄:
- markForCheck()
λ₯Ό μλ νΈμΆνκ±°λ
- μν λ³νλ₯Ό μλμΌλ‘ μΈμνκ³ μ
λ°μ΄νΈλ₯Ό μ ννκ² νΈλ¦¬κ±°νλ Angular Signalsλ₯Ό νμ©ν μ μμ΅λλ€.
Zoneless + Signalsμ μ‘°ν©μ λ€μκ³Ό κ°μ μ΄μ μ μ 곡ν©λλ€: - λΆνμν λ³κ²½ κ°μ§ μ¬μ΄ν΄ κ°μ - JavaScript νμ΄λ‘λ μΆμ - λλ²κΉ κ²½ν κ°μ - μλνν° λΌμ΄λΈλ¬λ¦¬μμ νΈνμ± ν₯μ
Zoneless λͺ¨λ νμ±ν λ°©λ²:
1. Angular v20μΌλ‘ μ
λ°μ΄νΈνμΈμ.
2. νλ‘μ νΈμ μ ν리μΌμ΄μ
μ€μ μ provideZonelessChangeDetection()
μ μΆκ°νμΈμ.
3. zone.js
μ’
μμ±μ μ κ±°νμΈμ.
μ΄λ κ² κ°λ¨ν λ¨κ³λ§ κ±°μΉλ©΄ Zoneless Angular μ ν리μΌμ΄μ μ μ€νν μ μμΌλ©°, μ΄λ λ λμ μ±λ₯κ³Ό μμΈ‘ κ°λ₯μ±μ μ 곡ν©λλ€.
μμΈν μ 보λ Angular.dev 곡μ λ¬Έμμμ νμΈνμ€ μ μμ΅λλ€.
Angular κ°λ°μλ₯Ό μν μ±λ₯ λΆμ λꡬ
λ¬Όλ‘ , μ΄λ¬ν λͺ¨λ μ±λ₯ κ°μ μ¬νλ€μ μ΄λ₯Ό λͺ¨λν°λ§νκ³ λλ²κΉ ν μ μλ λκ΅¬κ° μλ€λ©΄ μλ―Έκ° μμ΅λλ€.
Chrome DevToolsλ νλ μ μ°¨νΈμ κ°μ νλ‘νμΌλ§ λꡬλ₯Ό μ 곡νμ§λ§, λ°©λν μμ μ 보 μμμ νμν λ°μ΄ν°λ₯Ό μ°ΎκΈ°λ μ΄λ ΅μ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ Angularνμ Chromeκ³Ό νλ ₯νμ¬ Angular κ°λ°μλ₯Ό μν λ§μΆ€ν μ±λ₯ μΆμ ν¨λμ λ§λ€μμ΅λλ€.
μ΄ ν¨λμ Angular κ΄λ ¨ μ΄μ λ°μ΄ν°λ§μ νμνμ¬, μ¬μ©μμ μ½λμ λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬λ₯Ό ꡬλΆνλ λ° λ§€μ° μ μ©ν©λλ€.
μ¬μ© λ°©λ²: - Angular v20κ³Ό Chrome 136 μ΄μμ μ¬μ©νμΈμ. - Chrome DevToolsμμ Performance νμ μ΄κ³ κΈ°λ‘μ μμνμΈμ. - κΈ°λ‘μ΄ λλλ©΄ μλ‘μ΄ Angular νμμ ꡬ쑰νλ λ°μ΄ν°λ₯Ό νμΈνμΈμ.
μ΄λ¬ν κ°μ μ μ Angular νΉμ μ ν λ λ©νΈλ¦¬λ₯Ό κ°λ°μμκ² μ§μ μ 곡ν¨μΌλ‘μ¨, μ ν리μΌμ΄μ μ μ±λ₯ λ³λͺ© νμκ³Ό μ΅μ ν ν¬μΈνΈλ₯Ό νλ¨ν μ μλ κ·Όκ±°λ₯Ό μ 곡ν©λλ€.
κΈ°λ³Έκ°μΌλ‘ μ€μ λ μ±λ₯
Angular v20μ μ¦λΆ μν, λΌμ°νΈ λ¨μ λ λλ§ λͺ¨λ, Zoneless λͺ¨λ λ±μ λ€μν κΈ°λ₯μ ν΅ν΄ κΈ°λ³Έμ μΌλ‘ κ³ μ±λ₯ μ ν리μΌμ΄μ μ λ°°ν¬ν μ μλ κ°λ ₯ν λꡬλ₯Ό μ 곡ν©λλ€. μ΄λ κ°λ°μμκ² μ μ°μ±κ³Ό μ μ§λ³΄μμ±μ ν΄μΉμ§ μμΌλ©΄μλ λΉ λ₯Έ λ‘λ©κ³Ό λ°μμ±μ κ°μΆ μ ν리μΌμ΄μ μ ꡬμΆν μ μλ κΈ°νλ₯Ό μ€λλ€.
κ·ΈλΌ, λΉμ μ 무μμ κΈ°λ€λ¦¬κ³ κ³μ κ°μ?
μ§κΈ λ°λ‘ Angularμ μ΅μ λ²μ μΌλ‘ μ λ°μ΄νΈνμ¬ μ¬μ©μκ° μ¬λν μ ν리μΌμ΄μ μ λ§λ€μ΄ 보μΈμ.
λ λ§μ μ 보λ angular.devμμ νμΈνμκ±°λ Angular 곡μ YouTube μ±λμ ꡬλ ν΄ μ£ΌμΈμ.