๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Front-End11

์‹œ๋งจํ‹ฑ ์›น(Semantic Web)์ด๋ž€? ๐Ÿ“€ ์‹œ๋งจํ‹ฑ ์›น(Semantic Web)์ด๋ž€? '์˜๋ฏธ๋ก ์ ์ธ ์›น'์ด๋ผ๋Š” ๋œป์œผ๋กœ, ์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ๋žŒ์„ ๋Œ€์‹ ํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•˜๊ณ  ๊ฐ€๊ณตํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ์ฐจ์„ธ๋Œ€ ์ง€๋Šฅํ˜• ์›น์ด๋‹ค. ์ฆ‰, ์ปดํ“จํ„ฐ๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฒด์ ์œผ๋กœ ์›น์ƒ์˜ ์ •๋ณด๋ฅผ ํƒ์ƒ‰ ๋ฐ ์ˆ˜์ง‘ํ•˜์—ฌ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ถ”๋ก ํ•˜๋Š” ์ •๋ณด์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ธํ„ฐ๋„ท ์ •๋ณด๋ฅผ ์˜๋ฏธ๋ง์œผ๋กœ ํ†ตํ•ฉํ•œ ์˜จํ†จ๋กœ์ง€(ontology) ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์›น์˜ ์ฐฝ์‹œ์ž์ธ ํŒ€ ๋ฒ„๋„ˆ์Šค๋ฆฌ๊ฐ€ 1998๋…„ ์ œ์•ˆํ–ˆ๊ณ  ํ˜„์žฌ W3C์— ์˜ํ•ด ํ‘œ์ค€ํ™” ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ด๋‹ค. (WWW์˜ ํ™•์žฅํŒ) HTML5์—์„œ๋Š” ํƒœ๊ทธ ์ž์ฒด๊ฐ€ ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ(Semantic Tags)๋“ค์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋” ํšจ์œจ์ ์ธ ๋ฌธ์„œ ํ˜•์‹์„ ๋งŒ๋“ค๋„๋ก ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๐Ÿ”ฅ ์‹œ๋งจํ‹ฑ(Seman.. 2021. 11. 24.
Refactoring(๋ฆฌํŒฉํ† ๋ง) ๐Ÿ—ป Refactoring(๋ฆฌํŒฉํ† ๋ง)์ด๋ž€? ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ '๊ฒฐ๊ณผ์˜ ๋ณ€๊ฒฝ ์—†์ด ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ์žฌ์กฐ์ •ํ•จ'์„ ๋œปํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์ฝ๊ธฐ ์ข‹๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์„ฑ๋Šฅ ์ตœ์ ํ™”๋ž‘์€ ๋‹ค๋ฅด๋‹ค!) ๐Ÿ—ป ๋ฆฌํŒฉํ† ๋ง์˜ ์›๋ฆฌ ๋ฐ ๋ชฉ์  ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒ‰์œผ๋กœ ๋ณด์ด๋Š” ๋™์ž‘์˜ ๋ณ€ํ™” ์—†์ด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฆฌํŒฉํ† ๋ง์˜ ๋ชฉ์ ์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ณด๋‹ค ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ๐Ÿ—ป ๋ฆฌํŒฉํ† ๋ง์˜ ์žฅ์  ์ฝ”๋“œ ์ค‘๋ณต์„ ์—†์•  ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํŽธํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ฒ„๊ทธ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. ๋””์ž์ธ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. ์ƒ์‚ฐ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๋ณธ์ธ์€ ๊ทธ๋™์•ˆ ๋“ค์—ฌ์“ฐ๊ธฐ ์Šต๊ด€์„ ๋“ค์ด๊ธฐ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋ง์„ ์ˆ˜์ž‘์—…ํ–ˆ๋Š”๋ฐ... ์ตœ๊ทผ์— VSC์˜ prettier ๊ธฐ๋Šฅ์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง.. 2021. 11. 21.
Frontend Framework(Library) ๐ŸŒˆ Angular 2010๋…„ ๊ตฌ๊ธ€์—์„œ ๊ฐœ๋ฐœํ•œ SPA(Single Page Application) ๋ฐฉ์‹์˜ Javascript Framework. TypeScript ๊ธฐ๋ฐ˜์œผ๋กœ ๋งค์šฐ ์•ˆ์ •์ ์ด๊ณ  ํƒ„ํƒ„ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ์•ฑ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ชจ๋ฐ”์ผ ์›น, ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค. Spring MVC์™€ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ง„ํ–‰๋œ๋‹ค. ๐Ÿ’ง ์žฅ์  Component ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ์žฌ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ์‰ฝ๋‹ค. ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ ์ง€์› ์›นํŽ˜์ด์ง€ ์†๋„ Angular๋กœ ๋งŒ๋“  SPA๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ์˜ ์ „ํ™˜ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋น ๋ฅด๋‹ค. TypeScript TypeScript๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—„๊ฒฉํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ์ง๊ด€์ ์ด๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ .. 2021. 11. 21.
์ธ์ฆ(Authentication) ๐Ÿ‘ ์ธ์ฆ(Authentication) ์œ ์ €(User)์˜ identification์„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ. ์ฆ‰, ์œ ์ €์˜ ์•„์ด๋””์™€ ๋น„๋ฒˆ์„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ด๋‹ค. ๐Ÿ’ ๋กœ๊ทธ์ธ ์ ˆ์ฐจ User ์•„์ด๋””์™€ ๋น„๋ฒˆ ์ƒ์„ฑ. User์˜ ๋น„๋ฒˆ์„ ์•”ํ˜ธํ™” ํ•ด์„œ DB์— ์ €์žฅ. User๊ฐ€ ๋กœ๊ทธ์ธ -> ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ User๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™” ํ•œ ํ›„ ์•”ํ˜ธํ™”๋˜์„œ DB์— ์ €์ •๋œ ์œ ์ € ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๋น„๊ตํ•จ. ์ผ์น˜ํ•˜๋ฉด ๋กœ๊ทธ์ธ ์„ฑ๊ณต! ๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•˜๋ฉด access token์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก. User๋Š” ๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•œ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” access token์„ ์ฒจ๋ถ€ํ•ด์„œ request๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•จ์œผ๋กœ์„œ ๋งค๋ฒˆ ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ฒŒ ํ•œ๋‹ค. ๐Ÿ’ ์œ ์ € ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” โ—๏ธ ์œ ์ €์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ ˆ๋Œ€ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ทธ๋Œ€๋กœ DB์— ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค! DB๊ฐ€ ํ•ด.. 2021. 11. 18.
์ธ๊ฐ€(Authorization) ๐Ÿ‘ ์ธ๊ฐ€ ์ธ๊ฐ€(Authorization)๋Š” ์œ ์ €๊ฐ€ ์š”์ฒญํ•˜๋Š” request๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” ์œ ์ €์ธ๊ฐ€๋ฅผ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ์ด๋‹ค. ๐Ÿ’ Authorization ์ ˆ์ฐจ Authentication ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด access token์„ ์ƒ์„ฑํ•œ๋‹ค. access token์—๋Š” ์œ ์ € ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด user id) ์œ ์ €๊ฐ€ request๋ฅผ ๋ณด๋‚ผ๋•Œ access token์„ ์ฒจ๋ถ€ํ•ด์„œ ๋ณด๋‚ธ๋‹ค. ์„œ๋ฒ„์—์„œ๋Š” ์œ ์ €๊ฐ€ ๋ณด๋‚ธ access token์„ ๋ณตํ˜ธํ™”ํ•œ๋‹ค. ๋ณตํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด user id๋ฅผ ์–ป๋Š”๋‹ค. user id๋ฅผ ์‚ฌ์šฉํ•ด์„œ DB์—์„œ ํ•ด๋‹น ์œ ์ €์˜ ๊ถŒํ•œ(permission)์„ ํ™•์ธํ•˜๋‹ค. ์œ ์ €๊ฐ€ ์ถฉ๋ถ„ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์œ ์ €๊ฐ€ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š.. 2021. 11. 18.
Self Refactoring Tip ๐Ÿงท console.log ์ง€์šฐ๊ธฐ ํ…Œ์ŠคํŠธํ• ๋•Œ ์‚ฌ์šฉํ•œ console.log๋Š” ๋ฐ”๋กœ๋ฐ”๋กœ ์ง€์šฐ์ž. ์•ˆ ์ง€์šฐ๋ฉด ๋‚˜์ค‘์— ์–ด๋–ค ํ…Œ์ŠคํŠธ์— ์“ฐ๋˜ ๊ฒƒ์ธ์ง€ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ๊ฐ€๋…์„ฑ์„ ํ•ด์น  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹ค๋ฅธ ํŒ€์›๋“ค์„ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ๋ ค ์ฐจ์›์—์„œ๋„ ๊ผญ ์ง€์šฐ๋„๋ก ํ•  ๊ฒƒ! ๐Ÿงท id๋ช…, class๋ช…, ํ•จ์ˆ˜์˜ ์ด๋ฆ„์—์„œ ์˜๋ฏธ๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ์ž‘์„ฑํ•  ๊ฒƒ ์ฝ”๋“œ๋Š” ์“ฐ๋Š” ๊ฒฝ์šฐ๋ณด๋‹ค ์ฝํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ›จ์”ฌ ๋” ๋งŽ๋‹ค! ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ํž˜๋“ค์–ดํ•˜๋Š” ์ผ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด ์ด๋ฆ„ ์ง“๊ธฐ์ด๋‹ค. ๋ณ€์ˆ˜๋ช…์€ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ์ดํ•ด๊ฐ€ ๋˜๋„๋ก ์ง€์–ด์•ผ ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๋‚ด๋Š” ์‹œ๊ฐ„ ์ค‘ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๊ฐ„์€ 10%, ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ํ•ด์„ํ•˜๋Š” ์‹œ๊ฐ„์ด 90%๋ผ ํ•œ๋‹ค. ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ž˜์˜ ๋‚ด๊ฐ€, ํ˜‘์—…ํ•˜๋Š” ๋‹ค๋ฅธ ํŒ€์›๋“ค์ด ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ์ผ์€ โšก๊ฐ€.. 2021. 11. 17.
๋ฐ˜์‘ํ˜•