๐Ÿ“š๊ฐ๋„ ๋ฉด์ ‘ ๋ฌธ์ œ 1๋ถ€

7178 ๋‹จ์–ด tutorialtypescriptwebdevangular
์ด ๊ธ€์€ 2021๋…„ ๋ฉด์ ‘ ๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ์™€ ํ’๋ถ€ํ•œ ๊ฒฝํ—˜๊ณผ ์‹ ์ž…์ƒ์˜ ๋‹ต์„ ์ •์„ฑ๋“ค์—ฌ ๊ธฐํšํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.
์ด ์‹œ๋ฆฌ์ฆˆ์˜ ์„น์…˜ 1: - Angular Interview Questions Part 1
์ด ์‹œ๋ฆฌ์ฆˆ ์„น์…˜ 2: - Angular Interview Questions Part 2
์ด ์‹œ๋ฆฌ์ฆˆ ์„น์…˜ 3: - Angular Interview Questions Part 3

์™œ Angular์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
ํ˜„๋Œ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋“ฑ์žฅ์œผ๋กœ ๊ณ ๋„์˜ ๋™์  ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ์‰ฌ์›Œ์กŒ๋‹ค.
JS ํ”„๋ ˆ์ž„์›Œํฌ๋Š” JavaScript ์ฝ”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ ๋ฐ ์ž‘์—…์— ๋Œ€ํ•œ ์‚ฌ์ „ ์“ฐ๊ธฐ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ์›น ์‚ฌ์ดํŠธ๋‚˜ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.
ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์ถ•๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ด€์ ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.์ด๋Ÿฌํ•œ ์˜๊ฒฌ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ๊ณผ ๋™์งˆ์„ฑ์„ ๊ฐ€์ง€๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค.์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฑฐ๋Œ€ํ•œ ๊ทœ๋ชจ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฑด๊ฐ•๊ณผ ์ˆ˜๋ช…์— ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.
Angular๋Š” ๊ตฌ๊ธ€ AngularํŒ€๊ณผ ๊ฐœ์ธ๊ณผ ํšŒ์‚ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ด๋„๋Š” ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.์ด๊ฒƒ์€ ๊ฐ™์€ ํŒ€์—์„œ AngularJS๋ฅผ ์™„์ „ํžˆ ๋‹ค์‹œ ์“ด ๊ฒƒ์ด๋‹ค.Angular๋Š” 2016๋…„ 9์›” 14์ผ์— ์ •์‹์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค.
Angular๋Š” ์„ ์–ธ HTML ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.๊ตฌ์ถ•ํ•  ๋•Œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ํˆฌ๋ช…ํ•˜๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ…œํ”Œ๋ฆฟ์„ ์ตœ์ ํ™”๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Angular์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ํ›„ํฌ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
Angular Lifecycle Hook์€ Angular ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ ์š”์†Œ๋‚˜ ๋ช…๋ น์ด ์ธ์Šคํ„ด์Šคํ™”์—์„œ ์ œ๊ฑฐ์— ์ด๋ฅด๋Š” ๋‹ค์–‘ํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹จ๊ณ„์™€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ด ์ƒ๋ช…์ฃผ๊ธฐ ์—ฐ๊ฒฐ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
์ƒ๋ช…์ฃผ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ ๊ท€์† ์†์„ฑ์ด ์–ธ์ œ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ๊ฐ๋„์—์„œ ๊ฒ€์‚ฌํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ณด๊ธฐ์™€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์‹ค๋ก€๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ์ด ์ƒ๋ช…์ฃผ๊ธฐ ๊ฐˆ๊ณ ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ •ํ•œ ์ด๋ฒคํŠธ๋‚˜ ์ƒํƒœ๋ฅผ ๋ฐœ๊ตดํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ์ž„๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ์€ ๋ผ์ดํ”„ ์‚ฌ์ดํด ์—ฐ๊ณ„์ž…๋‹ˆ๋‹ค.
ngOnChanges(): ngOnInit() ์ด์ „์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ž…๋ ฅ ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
ngOnInit (): ์ฒซ ๋ฒˆ์งธ ngOnChanges () ์™€ angular์—์„œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
ngDoCheck (): ๊ฒ€์‚ฌ ์‹คํ–‰์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋ฉฐ,ngOnChanges () ์™€ngOnInit () ๋‹ค์Œ์— ๊ฐ๊ฐ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.์ด ๋ผ์ดํ”„ ์‚ฌ์ดํด ์—ฐ๊ฒฐ์€ Angular ์ž์ฒด๊ฐ€ ๊ฐ์ง€ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๊ฐ์ง€ํ•  ์ˆ˜ ์—†๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ngAfterContentInit(): ์ฒซ ๋ฒˆ์งธ ngDoCheck() ๋‹ค์Œ์— ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.์ด ์ƒ๋ช…์ฃผ๊ธฐ ๊ฐˆ๊ณ ๋ฆฌ์˜ ๋ชฉ์ ์€angular์ด ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑ ์š”์†Œ์— ๋ถˆ๋Ÿฌ์˜จ ํ›„์— ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ngAfterContentChecked (): ngAfterContentInit () ์™€ ๋ชจ๋“  ํ›„์†ngDoCheck () ๋‹ค์Œ์— ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.์ด ์ƒ๋ช…์ฃผ๊ธฐ ์—ฐ๊ฒฐ์˜ ๋ชฉ์ ์€ ๋ช…๋ น์ด๋‚˜ ๊ตฌ์„ฑ ์š”์†Œ์— ํˆฌ์‚ฌ๋œ ๋‚ด์šฉ์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
ngAfterViewInit (): ์ฒซ ๋ฒˆ์งธ ngAfterContent Checked () ๋‹ค์Œ์— ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.angular๊ฐ€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ณด๊ธฐ์™€ ํ•˜์œ„ ๋ณด๊ธฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์ด ์ƒ๋ช…์ฃผ๊ธฐ ์—ฐ๊ฒฐ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
ngAfterViewChecked ():ngAfterViewInit () ์™€ ๊ฐ๊ฐ์˜ ํ›„์†ngAfterContentChecked () ๋‹ค์Œ์— ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.angular์—์„œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ณด๊ธฐ์™€ ํ•˜์œ„ ๋ณด๊ธฐ๋‚˜ ๋ช…๋ น์„ ํฌํ•จํ•˜๋Š” ๋ณด๊ธฐ๋ฅผ ๊ฒ€์‚ฌํ•œ ํ›„ ์ด ์ƒ๋ช…์ฃผ๊ธฐ ์—ฐ๊ฒฐ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
Ngondestory (): Angular์—์„œ ๋ช…๋ น์ด๋‚˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์ „์— ์ฆ‰์‹œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.Angular์—์„œ ๋ช…๋ น์ด๋‚˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์ „์— ์ด ๋ผ์ดํ”„ ์‚ฌ์ดํด ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ตฌ๋…์„ ์ทจ์†Œํ•˜๋ฉด ๋Œ€์ƒ์„ ๊ด€์ฐฐํ•˜๊ณ  ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„๋ฆฌํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์œ ์ถœ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ, ๋ชจ๋“ˆ ๋ฐ ์„œ๋น„์Šค ์„ค๋ช…
Angular์˜ ๊ตฌ์„ฑ ์š”์†Œ๋Š” Angular ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” 4๊ฐœ์˜ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.html.๋” ์ ๋‹คts ๋ฐ.๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธต๊ณผ ๋…ผ๋ฆฌ์ธต์„ ๋‚˜ํƒ€๋‚ด๋Š” ํฌ์žฅ๊ธฐ์ด๋‹ค.
ํŽ˜์ด์ง€์— ์ปจํ…ํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” HTML ํ…œํ”Œ๋ฆฟ์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.๋น„ํ—ค์ด๋น„์–ด์˜ Typescript ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.ํ…œํ”Œ๋ฆฟ์—์„œ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜๋Š” CSS ์„ ํƒ๊ธฐ
Angular์˜ ๋ชจ๋“ˆ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์ฝ”๋“œ ๋ธ”๋ก์˜ ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๋ณธ ๋ฉ”์ธ ๋ชจ๋“ˆ (AppModule) ์˜ ๋ชจ๋“  ์„œ๋น„์Šค, ํŒŒ์ดํ”„, ๋ช…๋ น, ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.์šฐ๋ฆฌ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์šฐ๋ฆฌ์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ๋น ๋ฅด๊ฒŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐ๋„ ๋ชจ๋“ˆ์€ @NgModule() ์žฅ์‹๋ถ€๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
Angular์˜ ์„œ๋น„์Šค๋Š” Angular ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ํ†ต์‹ ์„ ํ•˜๊ณ  ๊ทธ๋“ค ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ์ „์ฒด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.angular์˜ ์„œ๋น„์Šค๋Š” @Injectable () decorator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ์ง€๋ น์ž…๋‹ˆ๊นŒ?
๋ช…๋ น์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์š”์†Œ์— ์ถ”๊ฐ€ ํ–‰๋™์„ ์ถ”๊ฐ€ํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.๋ช…๋ น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งž์ถคํ˜• HTML ์†์„ฑ์ž…๋‹ˆ๋‹ค. Angular๋Š” ๋‚ด์žฅ๋œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ์ €ํฌ๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์ง€๋ น์ด๋‹ค
๊ตฌ์กฐ ๋ช…๋ น:
DOM ๊ฐ์ฒด๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช…๋ น ์œ ํ˜•์ž…๋‹ˆ๋‹ค.์ด ๋‘ ๊ฐ€์ง€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์—์„œ DOM ๋Œ€์ƒ์„ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
*ngFor: ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” HTML ์š”์†Œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
*ngIf: ์ง€์ •๋œ ๊ธฐ์ค€์— ๋”ฐ๋ผ DOM์—์„œ HTML ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์†์„ฑ ๋ช…๋ น์–ด:
์ด๋Ÿฌํ•œ ๋ช…๋ น์€ HTML ์š”์†Œ, ์†์„ฑ, ์†์„ฑ ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ชจ์–‘๊ณผ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
NgClass: CSS ํด๋ž˜์Šค ๊ทธ๋ฃน์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
NgStyle: HTML ์Šคํƒ€์ผ ์„ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
NgModel: HTML ์–‘์‹ ์š”์†Œ์— ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ ๋ช…๋ น:
ํ…œํ”Œ๋ฆฟ์ด ์žˆ๋Š” ๋ช…๋ น ์œ ํ˜•์ž…๋‹ˆ๋‹ค.์ด๋Ÿฐ ์œ ํ˜•์˜ ์ง€๋ น์€ ๊ฐ€์žฅ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ง€๋ น ์œ ํ˜•์ด๋‹ค.์ด๋ ‡๊ฒŒ ์ง€์ •๋œ ๊ฐ๋„ ์–ด์…ˆ๋ธ”๋ฆฌ๋„ ๋ช…๋ น ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ๊ฐํ˜• ๊ณต์œ ๊ธฐ์ž…๋‹ˆ๊นŒ?
Angular Router๋Š” Angular๊ฐ€ Angular ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ๊ณตํ•˜๋Š” ๋ผ์šฐํŒ… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์ ธ์˜ค๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ์„œ๋น„์Šค์˜ ๋ผ์šฐํŒ… ๋ฐฐ์—ด์„ ์ง€์ •ํ•˜๊ณ  AppModule๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.์ด ์„œ๋น„์Šค๋Š” ๊ฐ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ/๋ณด๊ธฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฟ” ์žฌ๋ฃŒ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
Angular Material์€ Angular ํŒ€์ด ๊ตฌ์ถ•ํ•œ ์žฌ๋ฃŒ UI ์–ด์…ˆ๋ธ”๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, Angular ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Angular Material์€ ๊ฐ€์žฅ ์ž‘๊ณ  ์šฐ์•„ํ•˜๋ฉฐ ๊ฐ•๋ ฅํ•œ HTML ์š”์†Œ์™€ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋‚ด์žฅํ˜• ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.์ด ์ œํ’ˆ์€ ๊ฐ„๋‹จํ•œ API์™€ ์ผ๊ด€๋œ ํ”Œ๋žซํผ ๊ฐ„ ๋™์ž‘์„ ํ†ตํ•ด ์„ฑ๋Šฅ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒ€์ฆ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Angular Material์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.๊ทธ๊ฒƒ์€ ๋”์šฑ ๋น ๋ฅด๊ณ  ์•„๋ฆ„๋‹ต๊ณ  ์‘๋‹ต ์†๋„๊ฐ€ ๋น ๋ฅธ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.๊ทธ๊ฒƒ์˜ ์˜๊ฐ์€ ๊ตฌ๊ธ€์˜ ์žฌ์งˆ ๋””์ž์ธ์—์„œ ๋‚˜์™”๋‹ค.

๊ฐ๋„ ๋ฌธ์ž์—ด ๋ณด๊ฐ„์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๊ฐ๋„ ๋ฌธ์ž์—ด ์‚ฝ์ž…๊ฐ’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ผ๋ฆฌ์ธต์—์„œ ํ‘œ์‹œ์ธต์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ๋ฌธ์ž์—ด ์‚ฝ์ž…๊ฐ’์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ html์—์„œ ts๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ๊ท€์†์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์Œ๋Œ€๊ด„ํ˜ธ๋กœ ํ‘œ์‹œ๋œ๋‹ค.
๋‹ค์Œ์€ ํ•˜๋‚˜์˜ ์˜ˆ์ด๋‹ค
//ts file
title: String = 'Angular Application';๏ปฟ
//html file
{{ title }} 

Angular์˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณต์œ ํ•ฉ๋‹ˆ๊นŒ?
๋‹ค์Œ์€ ๊ฐ๋„ ์–ด์…ˆ๋ธ”๋ฆฌ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
@ ์ž…๋ ฅ: @Input ๋ฉ”์„œ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ ํ•˜์œ„ ๋ ˆ๋ฒจ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
@ ์ถœ๋ ฅ: @Ouput ๋ฐฉ๋ฒ•์€ Event Mitter ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜์œ„ ๋‹จ๊ณ„์—์„œ ๋ถ€๋ชจ ๋‹จ๊ณ„๋กœ ์ „๋‹ฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์„œ๋น„์Šค: ์„œ๋น„์Šค๋Š” ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค.

AngularJS์™€ AngularJS์˜ ์ฐจ์ด์ ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
Angular JS๋Š” Angular์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์œผ๋กœ Javascript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.์—ฌ๊ธฐ์„œ as Angular๋Š” ์™„์ „ํžˆ Typescript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  Javascript์˜ ํ•˜์ดํผ์ง‘ํ•ฉ์ด๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.
Angular JS๋Š” ๋ฒ”์œ„ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” JavaScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  Angular๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.AngularJS๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  AngularJS๋Š” ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Angular๋Š” ํ˜„๋Œ€ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ”Œ๋žซํผ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฐœ์˜ Angular ์ฝ”๋“œ๋กœ ํฌ๋กœ์Šคํ”Œ๋žซํผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜ ๋งํฌ์—์„œ ๊ฐ๋„ ๋ฉด์ ‘ ๋ฌธ์ œ ์‹œ๋ฆฌ์ฆˆ์— ๊ด€ํ•œ ๋‹ค๋ฅธ ๊ธ€์„ ๋ณด์‹ญ์‹œ์˜ค
์ด ์‹œ๋ฆฌ์ฆˆ์˜ ์„น์…˜ 1: - Angular Interview Questions Part 1
์ด ์‹œ๋ฆฌ์ฆˆ ์„น์…˜ 2: - Angular Interview Questions Part 2
์ด ์‹œ๋ฆฌ์ฆˆ ์„น์…˜ 3: - Angular Interview Questions Part 3

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ