Podcast Title

Author Name

0:00
0:00
Album Art
root@10xdev:~$
Type commands: ls ebooks | ls roadmaps | ls podcasts | ls apps | ls posts | ls telegram | help | clear
user@10xdev:~$ welcome to 10xdev.blog
user@10xdev:~$

πŸš€ Angular v20의 μƒˆλ‘œμš΄ κΈ°λŠ₯: 증뢄 μˆ˜ν™”(hydration), Zoneless λͺ¨λ“œ 및 개발자 도ꡬ

By 10xdev team June 18, 2025
Listen

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 채널을 ꡬ독해 μ£Όμ„Έμš”.

Join the 10xdev Community

Subscribe and get 8+ free PDFs that contain detailed roadmaps with recommended learning periods for each programming language or field, along with links to free resources such as books, YouTube tutorials, and courses with certificates.

Recommended For You

Up Next