๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

Notion cloning(11.7 ~ 11.16) ํšŒ๊ณ  ๋ณธ๋ฌธ

๐Ÿ“„ Dev Course/Personal Project

Notion cloning(11.7 ~ 11.16) ํšŒ๊ณ 

Daehyunii 2022. 11. 17. 22:39
๋…ธ์…˜ ํด๋กœ๋‹

   

  ์•ฝ 10์ผ ์ •๋„์˜ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ๋…ธ์…˜์˜ ๊ธฐ๋ณธ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ์šฐ์„  ๊ธฐ๋ณธ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. ํ™”๋ฉด ์ขŒ์ธก์— Root Documents๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” API๋ฅผ ํ†ตํ•ด root Documents๋ฅผ ๋ Œ๋”๋ง ํ•ฉ๋‹ˆ๋‹ค.
  2. Root Documents๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ํŽธ์ง‘๊ธฐ ์˜์—ญ์— ํ•ด๋‹น Documents์˜ Content๋ฅผ ๋ Œ๋”๋ง ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น Root Document์— ํ•˜์œ„ Document๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น Document ์•„๋ž˜์— ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ Œ๋”๋ง ํ•ฉ๋‹ˆ๋‹ค.
  4. Document Tree์—์„œ ๊ฐ Document ์šฐ์ธก์—๋Š” + ๋ฒ„ํŠผ์ด ์žˆ๊ณ , ํ•ด๋‹น ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, ํด๋ฆญํ•œ Document์˜ ํ•˜์œ„ Document๋กœ ์ƒˆ Document๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํŽธ์ง‘ํ™”๋ฉด์œผ๋กœ ๋„˜๊น๋‹ˆ๋‹ค.
  5. ํŽธ์ง‘๊ธฐ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ €์žฅ ๋ฒ„ํŠผ์ด ์—†์Šต๋‹ˆ๋‹ค. Document Save API๋ฅผ ์ด์šฉํ•ด ์ง€์†์ ์œผ๋กœ ์„œ๋ฒ„์— ์ €์žฅ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  6. History API๋ฅผ ์ด์šฉํ•ด SPAํ˜•ํƒœ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  7. ๋ฃจํŠธ URL ์ ‘์† ์‹œ์—” ๋ณ„๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ ์„ ํƒ์ด ์•ˆ๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. /documents/{documentId}๋กœ ์ ‘์†์‹œ, ํ•ด๋‹น Document Content๋ฅผ ๋ถˆ๋Ÿฌ์™€ ํŽธ์ง‘๊ธฐ์— ๋กœ๋”ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ ์ดˆ๋ฐ˜

 

 

  ์šฐ์„  ์œ„ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ดํ•ดํ–ˆ์ง€๋งŒ, ๋ง‰์ƒ ๊ตฌ์กฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ตฌ์„ฑํ•˜๋ฉด ์ข‹์„์ง€๋ฅผ ์ƒ๊ฐํ–ˆ์„๋•Œ, ๋ง‰๋ง‰ํ•˜๊ธฐ๋งŒ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด์˜ ๊ฐ•์˜๋“ค์„ ๋‹ค์‹œ ๋“ค์–ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด 10์ผ์˜ ๊ธฐ๊ฐ„์ค‘์— 3์ผ ๋™์•ˆ ๊ธฐ์กด์˜ ๊ฐ•์˜๋“ค์„ ๋‹ค์‹œ ๋“ฃ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‚ฌ์‹ค 2๋ฒˆ์งธ ๊ณผ์ œ์˜€๋˜ TODOLIST๋„ ๊ฒจ์šฐ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์กฐ๊ธˆ์€ ๋ฒ…์ฐจ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์—ˆ๋‹ค. ๊ทธ์น˜๋งŒ ๊ธฐ์กด ๊ฐ•์˜์— ํžŒํŠธ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ฃผ์›Œ์กŒ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  TodoList๋ฅผ ๋งŒ๋“œ๋Š” ๊ฐ•์˜, ๊ทธ๋ฆฌ๊ณ  postLists ์ฆ‰, <li>๋ฅผ ํด๋ฆญํ•˜๋ฉด ํŽธ์ง‘๊ธฐ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜๋“ค์„ ๋“ค์—ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ๊ฐ์ด ์กฐ๊ธˆ์”ฉ ์žกํ˜€๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด์— TodoList ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ API๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ ๋“ค๊ฐ„์˜ ๋™์ž‘์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ์‹œ์ผœ์•ผ ํ•  ์ง€์— ๋Œ€ํ•œ ๊ฐ์€ ์กฐ๊ธˆ์”ฉ ์ƒ๊ฒจ๋‚˜๊ณ  ์žˆ์—ˆ๋‹ค.

 


์ฝ”๋“œ ๊ตฌํ˜„ ์‹œ์ž‘

 

๋…ธ์…˜ ํด๋กœ๋‹ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„

 

  ๊ธฐ์กด ๊ฐ•์˜๋ฅผ ๋งŽ์ด ์ฐธ๊ณ  ํ–ˆ๊ณ , App์„ ํ†ตํ•ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์—๊ฒŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ์ „๋‹ฌํ•ด์ฃผ๊ณ  ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ์—ฐ๊ฒฐ์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋“ค ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ญ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์ˆ ์ˆ (?) ์ž‘์„ฑ๋˜๋Š” ๋“ฏํ•œ ๊ธฐ๋ถ„์ด ๋“ค์–ด ์ •๋ง ์žฌ๋ฏธ์žˆ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ ์  ์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ•˜๋‚˜ ๋‘˜ ์ถ”๊ฐ€๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋ถ„๋ช… ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ž„์—๋„ ๊ตฌ์กฐ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ฒฐ๊ตญ ์ค‘๊ฐ„์— ๊ณ ๋ฏผํ•˜๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

 

  ํŠนํžˆ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ id์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋Š ์ปดํฌ๋„ŒํŠธ์— ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•˜๋Š”์ง€ ๋˜ ์–ด๋””์„œ ๋ถ€ํ„ฐ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํšจ์œจ์ ์ธ ๊ฒƒ์ธ์ง€ ์–ด๋””์„œ fetch() GET์„ ํ•ด์•ผํ•˜๋Š”์ง€, ์–ด๋””์„œ POST, DELETE๋ฅผ ํ•ด์•ผ ํ•˜๋Š”์ง€์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์—์„œ ํ˜ผ๋ž€์ด ๊ต‰์žฅํžˆ ๋งŽ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์™€์ค‘์— ์ ์  ๋” ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•˜์—ฌ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฅผ 3๋ฒˆ์ด๋‚˜ ์ž‘์„ฑํ–ˆ๋‹ค.(...์ด๋•Œ๋Š” ์ •๋ง...ํœด..)

 

  ๊ทธ๋ฆฌ๊ณ  ์ ์  ์‹œ๊ฐ„์€ ํ˜๋Ÿฌ๊ฐ”๊ณ , ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•ด์•ผ ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ ์  ๋‹ค๊ฐ€์˜ค์ž ๋” ์ด์ƒ ๊ณ ๋ฏผ๋งŒ ํ•˜๊ณ  ์žˆ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์ƒ๊ฐ์— ๊ณผ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์„ ์ตœ์šฐ์„  ๋ชฉํ‘œ๋กœ ๋‘๊ณ  ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. 

 


๋…ธ์…˜ ํด๋กœ๋‹ ๊ตฌํ˜„

 

 

 

 

GitHub - WooDaeHyun/FEDC3-4_Project_Notion_VanillaJS

Contribute to WooDaeHyun/FEDC3-4_Project_Notion_VanillaJS development by creating an account on GitHub.

github.com

 

  ์œ„์˜ ๊ธฐ๋ณธ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ History API ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‚˜๋ฆ„๋Œ€๋กœ ์ตœ๋Œ€ํ•œ ์—ด์‹ฌํžˆ ๊ตฌํ˜„์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๊ณ  100% ๋งŒ์กฑํ•˜๊ฑฐ๋‚˜ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋“ค์€ ์•„๋‹ˆ์ง€๋งŒ ์–ด๋Š ์ •๋„ ๊ตฌํ˜„์ด ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์•„์‰ฌ์šด ์ ๋“ค๋„ ๊ต‰์žฅํžˆ ๋งŽ์•˜๋‹ค.

 

  1. Commit์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ์•Š์•˜๋‹ค. ๋‚˜์˜ ๋ถˆ์ฐฐ์ด๊ณ  ๊ต‰์žฅํžˆ ํ›„ํšŒํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ฒ˜์Œ์—๋Š” commit์„ ํ•˜๋ฉด์„œ ํ–ˆ์œผ๋‚˜ ์ ์  ์ฝ”๋“œ๋“ค์„ ์ง€์› ๋‹ค ์ž‘์„ฑํ–ˆ๋‹ค๋ฅผ ๋ฐ˜๋ณตํ–ˆ๊ณ  ์ˆ˜์ •๋˜๋Š” ๋‚ด์šฉ๋„ ๋งŽ์•˜๊ณ  ํ‹€๋ฆฐ ์ฝ”๋“œ๋“ค๋„ ๋งŽ๋‹ค๋Š” ์ƒ๊ฐ์— ๋ถ€๋„๋Ÿฌ์›Œ์„œ ๊ทธ๋žฌ๋Š”์ง€,,, commit์„ ๋‚˜์ค‘์— ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋ฏธ๋ค„์™”๋˜๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋‚˜์ค‘์—๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š”๋ฐ ๋น„๊ต ๋Œ€์ƒ์ด ์—†์–ด ์‹œ๊ฐ„์ด ๋” ๋งŽ์ด ๊ฑธ๋ ธ๊ณ , ๊ทธ ๋™์•ˆ ๋‚ด๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •๋“ค์„ ๊ธฐ๋กํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ง€๊ธˆ ์ƒ๊ฐํ•˜๋ฉด 10์ผ ์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์œผ๋‚˜, ๊ทธ๋Ÿด์ˆ˜๋Š” ์—†์œผ๋‹ˆ ์•ž์œผ๋กœ ์ตœ๋Œ€ํ•œ commit ์ปจ๋ฒค์…˜๋„ ์ง€์ผœ๊ฐ€๋ฉฐ git์„ ํ™œ์šฉํ•ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค.
  2. ์‹œ๊ฐ„์ƒ์˜ ์ด์œ ๋กœ History API๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ( ์ด ๋ถ€๋ถ„์€ ๋ฆฌ๋ทฐ ๊ธฐ๊ฐ„์— ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜์—ฌ ์ถ”๊ฐ€ํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค. )
  3. ์ฒซ ํŽ˜์ด์ง€๋ฅผ ์—ด์—ˆ์„ ๋•Œ, ์•„๋ฌด๋Ÿฐ document๋„ ์„ ํƒํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋ณด์—ฌ์ง€๋Š” ํŽธ์ง‘๊ธฐ์— title์ด๋‚˜ content๋ฅผ ๋„ฃ์œผ๋ฉด ์•„๋ฌด๋Ÿฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์—†์ด ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  404Error๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. (์ฒ˜๋ฆฌํ•˜๊ณ ์ž ์‹œ๋„๋Š” ํ–ˆ์œผ๋‚˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•„ ์šฐ์„  ๋„˜์–ด๊ฐ”๋‹ค.)
  4. ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ž˜๋ชป ๊ตฌ์„ฑํ•˜์—ฌ ํ•„์š”ํ•œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ id ๊ฐ’์„ ๋‹ค์‹œ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜, ๋ฉ”์„œ๋“œ๋“ค์„ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์ปค์Šคํ…€ ์ด๋ฒคํŠธ๋ฅผ ๋‚จ๋ฐœํ–ˆ๋‹ค. 

 

 

  ๋ฐ˜๋Œ€๋กœ ์ด๋ฒˆ์— ๋…ธ์…˜ ํด๋กœ๋‹์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๋ถ€๋ถ„๋“ค๋„ ๊ต‰์žฅํžˆ ๋งŽ์•˜๋‹ค.

 

  1. ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ์”ฉ ๊ฐ์ด ์žกํ˜€๊ฐ€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” todoList๋ฅผ ๋งŒ๋“œ๋Š”๊ฒƒ๋„ ๊ต‰์žฅํžˆ ์–ด๋ ต๊ณ  ๋ณต์žกํ•œ ๊ฒƒ์ด๋ผ๊ณ ๋งŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋‹จ 10์ผ๋งŒ์— todoList์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์ด ์ด์ œ๋Š” ๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•œ ์ผ์ด ์•„๋‹Œ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์กŒ๋‹ค.
  2. API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š”๊ฒƒ์ด ์ต์ˆ™ํ•ด ์กŒ๋‹ค. ๊ทธ์™€ ๋”๋ถˆ์–ด async await์— ๋Œ€ํ•œ ํ™œ์šฉ๋„ ์กฐ๊ธˆ ๋‚˜์•„์ง„๊ฒƒ ๊ฐ™๋‹ค.
  3. HTML ํƒœ๊ทธ๋“ค์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉด ์ข‹์€์ง€์— ๋Œ€ํ•œ ๊ฐ์ด ์™”๋‹ค. ๊ธฐ์กด์—๋Š” HTML ํƒœ๊ทธ๋ฅผ ๋‹จ์ˆœํžˆ ๊ฐœ๋…์ ์œผ๋กœ๋งŒ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ด์ œ๋Š” ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  4. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ๋˜ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š”๊ฒƒ์ด ์ต์ˆ™ํ•ด์กŒ๋‹ค. ๋ถˆ๊ณผ 10์ผ ์ „๋งŒ ํ•˜๋”๋ผ๋„ ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•ด ์ฉ”์ฉ”๋งค๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด์ œ๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์–ด๋””์— ์ด๋ฒคํŠธ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ์ข‹์„์ง€๋ฅผ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ๋Š” ๋‚ด๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.
  5. ๋ชจ๋“ˆํ™”๋ฅผ ํ†ตํ•ด์„œ exportํ•˜๊ณ  importํ•˜๋Š” ๊ณผ์ •๋“ค์ด ์ต์ˆ™ํ•ด์กŒ๋‹ค. 
  6. ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์–ด๋–ค์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ์ข‹์€์ง€์— ๋Œ€ํ•œ ๊ฐ๋„ ์ƒ๊ฒผ๋‹ค.
  7. CSS์— ๋Œ€ํ•œ ๊ฑฑ์ •์ด ์กฐ๊ธˆ์€ ์ค„์–ด๋“ค์—ˆ๋‹ค. ์•„์ง ๋งŽ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ, ์ •๋ง ์ข‹์€ ์กฐ์›์„ ๋งŒ๋‚˜ CSS์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ ‘๊ทผ๋ฐฉ๋ฒ•๊ณผ ๋””ํ…Œ์ผํ•œ ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•ด์„œ ์„ค๋ช…๋“ค์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ด๋ฅผ ํ†ตํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€ ์กฐ๊ธˆ์€ ๊ฐ์„ ์žก๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.
    (๋‹ค์—ฐ์•„ ๊ณ ๋ง™๋‹ค!!!)

๊ณผ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋ฉฐ

 

 

  ์˜ˆ์ „์— ์–ด๋ ธ์„๋•Œ ํ•œ ๋ฒˆ ๊ฒฝํ—˜ํ•ด ๋ณธ ๊ฒƒ์ธ๋ฐ, ์กฐ๊ธˆ์€ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ์ด ์—†๋Š” ์ด์•ผ๊ธฐ์ด์ง€๋งŒ ์šฐ๋ฆฌ ์ง‘์—์„œ๋Š” 'ํ•œ์ž'๊ต์œก์„ ๊ต‰์žฅํžˆ ์—„ํ•˜๊ฒŒ ์‹œ์ผฐ๋˜ ์ ์ด ์žˆ๋‹ค. ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ๊ต‰์žฅํžˆ ํ•œ์ž ๊ธ‰์ˆ˜์— ์ง„์‹ฌ์ด์—ˆ๋‹ค. ๊ทธ ๋‹น์‹œ ์ œ์ผ ์–ด๋ ต๊ธฐ๋กœ ์†Œ๋ฌธ๋‚œ ๊ณณ์ด 'ํ•œ์ž์–ด๋ฌธํšŒ'์—์„œ ์ธ์ฆํ•˜๋Š” ์‹œํ—˜์ด์—ˆ๊ณ  ์ง€๊ธˆ์€ 3๊ธ‰์ด์ง€๋งŒ ๊ทธ ๋‹น์‹œ์—๋Š” 4๊ธ‰๋ถ€ํ„ฐ ๊ตญ๊ฐ€๊ณต์ธ์œผ๋กœ ์ธ์ •์„ ๋ฐ›์•˜์—ˆ๋‹ค. ๋‹น์‹œ์— ์ดˆ๋“ฑํ•™์ƒ์ด์—ˆ๋˜ ๋‚˜์—๊ฒŒ๋Š” ๊ฝค๋‚˜ ์–ด๋ ค์› ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  4๊ธ‰์„ ์ฒ˜์Œ ๋„์ „ํ–ˆ์„๋•Œ ๋‹น๋‹นํ•˜๊ฒŒ ๋–จ์–ด์กŒ๋‹ค... ใ…Ž ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์„œ ์šฐ๋ฆฌ ๋ถ€๋ชจ๋‹˜์˜ ์„ ํƒ์€ 4๊ธ‰์„ ๋‹ค์‹œ ์žฌ๋„์ „ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ 3๊ธ‰์„ ๋„์ „ํ•˜๋ผ๊ณ  ๊ถŒ์œ ํ•˜์…จ๊ณ  3๊ธ‰์„ ๊ณต๋ถ€ํ–ˆ๋‹ค. 4๊ธ‰์„ ๊ณต๋ถ€ํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 3๊ธ‰์€ ์ •๋ง ๋„ˆ๋ฌด ํ•˜๊ธฐ ์‹ซ์–ดํ–ˆ์—ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๊ทผ๋ฐ ์ •๋ง ์‹ ๊ธฐํ•œ๊ฒƒ์€ 3๊ธ‰ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ 4๊ธ‰์ด ์šฐ์Šต๊ฒŒ ๋Š๊ปด์กŒ์—ˆ๋‹ค. ์†๋œ ๋ง๋กœ ์ •๋ง ์ •๋‹ต์ด ๋ฐ”๋กœ ๋ฐ”๋กœ ๋ณด์ผ ์ •๋„๋กœ ์‰ฝ๊ฒŒ ๋Š๊ปด์กŒ๋˜ ๊ฒฝํ—˜์„ ํ•œ ์ ์ด ์žˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ ๋‹น์‹œ์— 4๊ธ‰์€ ๋”ฐ๊ณ , 3๊ธ‰์„ ๋”ฐ์ง€๋Š” ๋ชปํ–ˆ๋‹ค. ( cs์ง€์‹๊ณผ ๋ณ„๊ฐœ๋กœ ์กฐ๊ธˆ ์ž๋ž‘ํ•ด ๋ณด์ž๋ฉด ใ…Žใ…Žใ…Žใ…Žใ…Ž ์ง€๊ธˆ์€ ํ•œ์ž 2๊ธ‰์ด๋‹ค. ๋ถ€๋ชจ๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!!) ๋ฌดํŠผ ์ด๋ฒˆ์—๋„ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ์ด์™€ ๋น„์Šทํ•œ ๋Š๋‚Œ์„ ๋ฐ›์•˜๋˜๊ฒƒ ๊ฐ™๋‹ค. ๊ต‰์žฅํžˆ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๊ฒƒ๋“ค์ด ์ด์ œ๋Š” ์กฐ๊ธˆ ์‰ฝ๊ฒŒ ๋Š๊ปด์ง€๋Š”๊ฑธ๋กœ ๋ฐ”๋€Œ๊ณ  ์ƒˆ๋กœ์šด ์–ด๋ ค์šด ๊ฒƒ๋“ค์ด ์ƒ๊ฒจ๋‚ฌ๋‹ค. ๋ญ๋ผ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ฆ๊ฑฐ๊ฐ€ ์•„๋‹๊นŒ ์ƒ๊ฐ๋œ๋‹ค. ๊ธฐ์กด์— ์–ด๋ ต๊ฒŒ ๋Š๊ปด์กŒ๋˜ ๊ฒƒ๋“ค์ด ์ด์ œ๋Š” ์‰ฝ๊ฒŒ ๋Š๊ปด์ง€๊ณ , ์ƒˆ๋กœ์šด ์–ด๋ ค์šด ๊ฒƒ๋“ค์ด ๋“ฑ์žฅํ•˜๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋ฉด ๋‚˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‰ฌ์›Œ์ง€๋Š” ์˜์—ญ์ด ๋„“์–ด์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๋…ธ์…˜ ํด๋กœ๋‹ ํ”„๋กœ์ ํŠธ๋Š” ๋‚˜์—๊ฒŒ ์—„์ฒญ๋‚œ ๊ณต๋ถ€๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค. ๋ฌผ๋ก  ์–ด๋ ค์›Œ์„œ ๊ณจ๊ณจ ๊ฑฐ๋ฆฌ๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ,,,ใ…Žใ…Ž ๋˜ ์ด๊ฒŒ ๋‚˜์ค‘์—๋Š” '์™œ ์–ด๋ ค์›Œ ํ–ˆ์ง€?'๋ฅผ ์†์œผ๋กœ ์™ธ์น˜๋ฉด์„œ ๊ณผ๊ฑฐ๋ฅผ ํšŒ์ƒํ•˜๋Š” ๋‚ ์ด ์˜ฌ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๋Š”๋‹ค!!!