TIL

[TIL] 20210826

lado 2021. 8. 27. 07:42

๐ŸŽฏ ๊ทธ๋™์•ˆ ๊ณต๋ถ€ํ•œ ๊ฒƒ

  • [JavaScript] ์‹คํ–‰ ์ปจํ…์ŠคํŠธ
  • [JavaScript] ์ปดํฌ๋„ŒํŠธ ๋ฐฉ์‹์œผ๋กœ localStorage๋ฅผ ์ด์šฉํ•œ todoapp ๊ตฌํ˜„ ๋ณต์Šต
  • [JavaScript] Client Side์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ, ES6 Module, ๋น„๋™๊ธฐ ๋ณต์Šต
  • [์ฝ”๋“œ ๋ฆฌ๋ทฐ] ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ reduce ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  • [ํŠน๊ฐ•] ์ธ๋””์ŠคํŠธ๋ฆฟ ๊ธฐ์ˆ  ์Šคํƒ์— ๋Œ€ํ•ด์„œ: Jamstack(Javascript, APIs, Markup), Next.js, Vercel, Strapi, GraphQL + APOLLO
  • [ํŠน๊ฐ•] ๋ Œ๋”๋ง์˜ ์—ญ์‚ฌ: Server Template -> Client Side Rendering -> Server Side Rendering -> Static Site Generator -> Incremental Site Regeneration
  • [๋ฉ˜ํ† ๋ง] ๋””์ž์ธ ์‹œ์Šคํ…œ, ํ˜„์—…์—์„œ UI ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹

 


๐Ÿ“š ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ

  • ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ES6 ๋ฒ„์ „
  • ์›น ์ ‘๊ทผ์„ฑ
  • localstorage ๊ฐ’์— ์ˆซ์ž๋ฅผ ์ž„์˜๋กœ ๋„ฃ์—ˆ์„ ๋•Œ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋Š” todoapp ์ง์ ‘ ๊ตฌํ˜„: XMLHttpRequest ๋ฐฉ์‹ -> Promise ๋ฐฉ์‹ -> async, await ๋ฐฉ์‹
  • Strapi, GraphQL ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ

 


๐ŸŽ‡ Reflection

  • ํ•œ ์ฃผ ๋™์•ˆ ํ•œ ๊ฒŒ ์ •๋ง ๋งŽ์•˜๋Š”๋ฐ TIL ์“ฐ๋Š” ์‹œ๊ฐ„์— ๊ณต๋ถ€๋‚˜ ํ•œ ์ž ๋” ํ•˜์ž๋Š” ๋งˆ์Œ์œผ๋กœ TIL์„ ๋ชป์ผ๋‹ค.
  • ์ €๋ฒˆ ์ฃผ์— ๋„ˆ๋ฌด ์—ฌ์œ  ๋ถ€๋ฆฌ๋ฉด์„œ ๋นก์„ธ๊ฒŒ ์ง„๋„๋ฅผ ์•ˆ ๋‚˜๊ฐ„๋ฐ๋‹ค ์ด๋ฒˆ ์ฃผ๋„ ๋„ˆ๋ฌด ์„ค๋ ์„ค๋  ๊ณต๋ถ€ํ•ด์„œ ์ง€๊ธˆ ์—„์ฒญ ๋ฐ€๋ ค์žˆ๋Š” ์ƒํƒœ๋‹ค... ๋…ธ์…˜ ํด๋กœ๋‹ ํ”„๋กœ์ ํŠธ ๋“ค์–ด๊ฐ”๋Š”๋ฐ ๋‚˜๋Š” ์•„์ง๋„ todoapp ๊ณผ์ œ๋Š” ์ปค๋…• ์ˆ˜์—… ๋ณต์Šตํ•˜๊ตฌ ์žˆ์Œ...
  • ์ปดํฌ๋„ŒํŠธ ๋ฐฉ์‹์œผ๋กœ todoapp ๊ตฌํ˜„ํ•˜๋Š” ์ˆ˜์—… ๋ณต์Šตํ•˜๋Š”๋ฐ ์ €๋ฒˆ์— ๋“ค์—ˆ์„ ๋•Œ๋Š” ๊ทธ๋ƒฅ ๋”ฐ๋ผ์น˜๊ธฐ๋งŒ ํ•ด์„œ ์‚ฌ์‹ค ์ดํ•ด๊ฐ€ ์•ˆ๋๋‹ค. ๊ฐ•์˜๋ฅผ ํ•œ๋ฒˆ ๋‹ค์‹œ ๋“ฃ๊ณ  ๋‚˜์„œ ์ง์ ‘ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ์—ญ์‹œ ํ•œ๋ฒˆ์— ๋Œ์•„๊ฐ€์ง„ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜๋„ ๊ตฌํ˜„์„ ์ง์ ‘ ํ•ด๋ณด๊ณ  ์—๋Ÿฌ์— ๋ถ€๋”ชํ˜€๋ณด๋‹ˆ๊นŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผํ•˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋๋‹ค. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š”, DOM ์š”์†Œ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ , target์— ์ƒ์„ฑํ•œ DOM ์š”์†Œ๋ฅผ append ์‹œ์ผœ์ฃผ๊ณ , this.render์— ๋งˆํฌ์—… ๊ตฌํ˜„ํ•˜๊ณ  ์ด๋ฒคํŠธ ์žˆ์œผ๋ฉด ๊ฑธ์–ด์ฃผ๊ณ (์ด๋•Œ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋ฉด ๋˜๋Š” ๊ฒƒ๋“ค์€ ๋ฐฉ์–ด์ฝ”๋“œ๋กœ ๊ฐ์‹ธ์ค˜์•ผ ํ•œ๋‹ค), ์ƒํƒœ๊ฐ’์€ this.state์— ์ •์˜ํ•ด์ฃผ๊ณ , ์ƒํƒœ๊ฐ’ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด this.setState์— nextState๋ฅผ ์ธ์ž๋กœ ๋„ฃ์–ด์„œ ํ˜ธ์ถœํ•˜๋ฉด ์ƒํƒœ๊ฐ’ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์‹œ ๋ Œ๋”๋  ์ˆ˜ ์žˆ๊ฒŒ๋” ์ฝ”๋“œ๋ฅผ ์„ค๊ณ„ํ•ด์•ผํ•œ๋‹ค. ๋˜, ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ๊ฐ’์„ ์ œ์–ดํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด parameter์— ์ด๋ฒคํŠธ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • localStorage๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” storage ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ํ•œ ํŒŒ์ผ์— getItem, setItem api๋ฅผ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ module exportํ•˜๊ณ  ์“ธ ๋•Œ๋„ import๋งŒ ํ•ด์˜ค๋ฉด ๋˜๋‹ˆ๊นŒ ๋˜๊ฒŒ ๊น”๋”ํ•˜๊ณ  ์ข‹์•„๋ณด์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ ๊ธฐํ–ˆ๋˜ ๊ฒŒ ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ์•ฝ storage ํŒŒ์ผ์— ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ–ˆ๋Š”๋ฐ ์ด๊ฑด export ํ•˜์ง€ ์•Š์•˜๋‹ค. ๋‚ด๊ฐ€ exportํ•œ getItem ํ•จ์ˆ˜์—์„œ ์ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ getItem ํ•จ์ˆ˜๋งŒ import ํ•ด์™”๋Š”๋ฐ๋„ ๋ฌธ์ œ์—†์ด storage ํŒŒ์ผ์— ์žˆ๋Š” export ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋”๋ผ. ์›๋ฆฌ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์‹ ๊ธฐํ–ˆ๋‹ค.
  • localStorage๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด getItem, setItem์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ๊ฐ’์ด ์—†๊ฑฐ๋‚˜ json parse ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด ์žˆ์„ ๋•Œ๋ฅผ ๋Œ€๋น„ํ•ด์„œ try catch๋ฌธ์œผ๋กœ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ž„์˜๋กœ string ๊ฐ’์„ ๋„ฃ์„ ๋•Œ๋Š” ์ž˜ ์žกํ˜”๋Š”๋ฐ ํ…Œ์ŠคํŠธ๋กœ number ๊ฐ’์„ ๋„ฃ์œผ๋‹ˆ๊นŒ map์„ ๋Œ๋ฆฌ๋Š” ๋ถ€๋ถ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. json ๋ฐฉ์‹์ด ์•„๋‹Œ string์€ json parse๋ฅผ ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ catch๋กœ ์žก์„ ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ stringํ™”๋œ number(ex. "123")๋Š” json parse๋ฅผ ํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ์•ˆ ๋‚œ๋‹ค... ๋” ์›ƒ๊ธด ๊ฑด ์›๋ž˜ string์ธ๋ฐ json parse๋ฅผ ํ•˜๋ฉด number๊ฐ€ ๋œ๋‹ค!! ๋ชฐ๋ž๋˜ ์‚ฌ์‹ค์ธ๋ฐ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํ•ด์ฃผ๋ ค๊ณ  ์ด๋ ‡๊ฒŒ ์ €๋ ‡๊ฒŒ ํ•ด๋ดค๋Š”๋ฐ ์ž˜ ์•ˆ๋๋‹ค. ์šฐ์„  ๋‹ค์Œ ์ง„๋„๋ฅผ ๋‚˜๊ฐ€๊ณ  ๋‚˜์„œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ณผ์ œ ๊ตฌํ˜„ํ•  ๋•Œ ์ˆ˜์ •ํ•ด๋ด์•ผ๊ฒ ๋‹ค.
  • fetch๋‚˜ axios๋‚˜ ๋„ˆ๋ฌด ์–ผ๋ ˆ๋ฒŒ๋ ˆ ์จ์™”์–ด์„œ ๋น„๋™๊ธฐ ํ†ต์‹  ๋ถ€๋ถ„์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ํƒ„ํƒ„ํžˆ ์žก๊ณ  ์‹ถ๋‹ค. ๊ทธ๋ž˜์„œ ์‹œ๊ฐ„์ด ์ข€ ๋“ค๋”๋ผ๋„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์„ ํ•ด๋ณด๋ฉด์„œ ๋ณต์Šตํ•˜๋Š” ๊ฒŒ ์ข‹์„๋“ฏ
  • ์†”์งํžˆ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž˜ ์ดํ•ด ๋ชปํ–ˆ๋Š”๋ฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ•ด์ฃผ๋ ค๋‹ˆ๊นŒ ์ •๋ง ๋ง‰๋ง‰ํ–ˆ๋‹ค. ๊ทผ๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ์ฝ”๋“œ ๋ฆฌ๋ทฐํ•œ ๊ฑธ ๋ณธ ๊ฒŒ ๋˜๊ฒŒ ๋„์›€์ด ๋งŽ์ด ๋๋‹ค. ๋‹ค๋ฅธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋“ค์„ ๋ณด๋ฉด์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” reduce ํ•จ์ˆ˜๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ, reduce ํ•จ์ˆ˜์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณต์œ  ์ƒํƒœ ์ง€์–‘์ด๋ผ๋Š” ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ˆ๋ ˆ์ดํ„ฐ, ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ช…๋ นํ˜•๋งŒํผ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์•„์ง ๊ฐˆ ๊ธธ์ด ๋จผ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๊ณ  ์‹œ๋„ํ•˜๋ฉด์„œ ๋งŽ์ด ๋ฐฐ์› ๋‹ค. (์‹œ๊ฐ„์ด ์—„์ฒญ ๋งŽ์ด ๋“ค์—ˆ์ง€๋งŒ...)
  • ์ธ๋””์ŠคํŠธ๋ฆฟ ๊ธฐ์ˆ  ์Šคํƒ์— ๋Œ€ํ•œ ํŠน๊ฐ•์„ ๋“ค์œผ๋ฉด์„œ ์š”์ฆ˜ ํŠธ๋ Œ๋“œ ๊ธฐ์ˆ ๋“ค์— ๋Œ€ํ•ด ๊ท€๋™๋ƒฅํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ์œ ์ตํ•˜๊ณ  ์žฌ๋ฐŒ์—ˆ๋‹ค. SSG ํ˜น์€ ISR๋œ ํŒŒ์ผ์€ Vercel์„ ์ด์šฉํ•˜๋ฉด ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌํ•˜๊ณ  CDN ์ฒ˜๋ฆฌ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๋ฐ ๋‹ค์Œ์— ํ”„๋กœ์ ํŠธ ํ•  ๋•Œ ์จ๋ณด๊ณ  ์‹ถ๋‹ค. ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ณ  REST ๊ธฐ๋ฐ˜ api๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” strapi๋„ ์—„์ฒญ ์œ ์šฉํ•ด๋ณด์˜€๋‹ค. GraphQL์€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๋™์ž‘์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์˜ REST์™€ ๋‹ฌ๋ฆฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹์˜ API ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ GraphQL๋กœ Redux๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค ๊ทธ๋ž˜์„œ ๋ ์šฉ์ด ๋๋‹ค. GraphQL์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ... ๊ถ๊ธˆํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ฉ˜ํ† ๋‹˜์ด ์›น ์ ‘๊ทผ์„ฑ์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•˜์…”์„œ ๋‹ค์‹œ๊ธˆ ์›น ์ ‘๊ทผ์„ฑ์„ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์˜์ง€๊ฐ€ ๋˜์‚ด์•„๋‚ฌ๋‹ค. lighthouse๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๋ ค์ฃผ์…จ๋‹ค. ์›น ์ ‘๊ทผ์„ฑ๋„ ์ง€์ˆ˜๊ฐ€ ๋‚˜์™€์„œ ์‹ ๊ธฐํ–ˆ๋‹ค.
  • ์ด๋ฒˆ ๋ฉ˜ํ† ๋ง์€ ์„ ํƒ์‚ฌํ•ญ์ธ๋ฐ ๋ฉ˜ํ† ๋‹˜์ด ์—„์ฒญ ์—„์ฒญ ๋ฐ”์œ ์™€์ค‘์—๋„ ์‹œ๊ฐ„์„ ๋‚ด์ฃผ์…”์„œ ๋ฉ˜ํ† ๋งํ•ด์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ–ˆ๋‹ค ใ… ใ…  ๋‚ด๊ฐ€ ์ˆ˜์š”์ผ์— ์‹œ๊ฐ„์ด ์•ˆ๋œ๋‹ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๋ชฉ์š”์ผ๋กœ ์‹œ๊ฐ„๊นŒ์ง€ ๋ฐ”๊ฟ”์ฃผ์…จ๋‹ค ใ… ใ…  ๋ฉ˜ํ† ๋‹˜์ด ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค์˜ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๋ณด์—ฌ์ฃผ์‹œ๋ฉด์„œ ํ˜„์—…์—์„œ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€, ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์…จ๋Š”๋ฐ ์ง„์งœ ์œ ์ตํ•˜๊ณ  ์žฌ๋ฐŒ์—ˆ๋‹ค. ์›น ์ ‘๊ทผ์„ฑ์„ ํ˜„์—…์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ๋„ ํ’€์—ˆ๋‹ค.
  • ์˜ค๋Š˜ ์•„์นจ์— ๋ฐฑ์‹  ๋งž์œผ๋Ÿฌ ๊ฐ€์„œ ์ฃผ๋ง ๋‚ด๋‚ด ๊ณจ๊ณจ๋Œˆ๊นŒ๋ด ์–ด์ œ๊นŒ์ง€ ๊ณผ์ œ๋ฅผ ๋‹ค ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์‹คํŒจํ–ˆ๋‹ค. ๋ณ„ ์ˆ˜ ์—†์ง€, ๋ญ. ์•„ํ”„๋ฉด... ํƒ€์ด๋ ˆ๋†€ ๋จน์–ด ๊ฐ€๋ฉด์„œ ์˜ค๋Š˜๋„ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด๋ด์•ผ๊ฒ ๋‹ค ^^(ใ… ใ… )

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[WIL] 4์ฃผ์ฐจ ํšŒ๊ณ   (0) 2021.08.30
[TIL] 20210828  (2) 2021.08.29
[WIL] 20210820 3์ฃผ์ฐจ ํšŒ๊ณ   (8) 2021.08.20
[TIL] 20210819  (0) 2021.08.20
[TIL] 20210816  (0) 2021.08.16