[TIL] WEEK5๐Ÿš€

4582 ๋‹จ์–ด TILTIL

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ํ”„๋ก ๋“œ์—”๋“œ 21์ผ์ฐจ

go notion go notion! ๐ŸŠโ€โ™€๏ธ

๋…ธ์…˜ ํด๋กœ๋‹์„ ์‹œ์ž‘ํ•˜๊ณ  ๋‹ค์Œ ์ฃผ๋ฅผ ๋งž์ดํ–ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ณ ๋ผ๊ณ  ์“ฐ๊ณ  ์‹œ์ž‘ ์ค€๋น„์ค‘... ์ด๋ผ๊ณ  ์ฝ๋Š”๋‹ค. ๐Ÿคฆโ€โ™€๏ธ
์šฐ์„  to do app๊ณผ ์ž๋™ ์™„์„ฑ ํŽธ์ง‘๊ธฐ๋ฅผ ์™„์„ฑํ•˜๊ณ  ๋ฐ€๋ฆฐ TIL, ๊ณผ์ œ PR๋“ฑ์„ ๋‹ค ์“ฐ๊ณ  ์˜ค๋Š˜์—์•ผ ์ œ๋Œ€๋กœ ์ฑ…์ƒ์— ์•‰์•˜๋‹ค!
์š”๊ตฌ์‚ฌํ•ญ๊ณผ API๋ฅผ ํ™•์ธํ•˜๊ณ  ๋‚˜๋ฆ„์˜ ์„ค๊ณ„๋ฅผ ํ•œ๋’ค, ์ฝ”๋“œ๋ฅผ ์งœ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๋ง‰๋ง‰ํ–ˆ๋‹ค. ๐Ÿ’ฆ

์•„๋‚ ๋กœ๊ทธ + ๋…ธ๊ฐ€๋‹ค ๋งค๋‹ˆ์•„ ๋ผ ๊ทธ๋Ÿฐ์ง€ ์•„์ง ๋…ธํŠธ์™€ ํŽœ์ด ํŽธํ•˜๋‹ค... (ํ•˜์ง€๋งŒ ํ…Œ๋ธ”๋ฆฟ์€ ํฌ๊ธฐ๋ชปํ•ดโญ)

์šฐ์„  ์˜ค๋Š˜ ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ์ผ์€!

1๏ธโƒฃ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ ์งœ๊ธฐ
2๏ธโƒฃ dummy data๋กœ ๋กœ์ง ํ™•์ธํ•˜๊ธฐ
3๏ธโƒฃ ์ž๋™์™„์„ฑ ๋ถ„์„ํ•˜๊ณ  + ์ƒˆ๋กญ๊ฒŒ ์ ์šฉ์‹œ์ผœ๋ณด๊ธฐ

์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์งœ๋‹ค ์šฐ์„  ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ innerHTML๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ํ•˜์œ„ ์ž์‹์š”์†Œ(appendChild)๋“ค์ด ๋ชจ๋‘ ๋ฌด์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ผ์„œ, ์™œ ๋žœ๋”๋ง์ด ์•ˆ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ์˜ค๋žœ ์‹œ๊ฐ„ ๋ฐฉํ™ฉํ–ˆ๋‹ค... (https://oniondev.tistory.com/m/17)
๋˜, ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์ธต์ ์œผ๋กœ ๋žœ๋”๋ง ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์ธต์„ ์ž˜ ๋‚˜ํƒ€๋‚ด๋„๋ก ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š”๋ฐ, html๋ฅผ ์จ์•ผํ•  ์ง€ c ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•  ๋•Œ ์“ฐ๋˜ tab ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ ˆํ•ด์•ผํ•˜๋Š”์ง€ ํ˜ผ๋ž€์ด ์™€์„œ ์ด๊ฒƒ ์—ญ์‹œ ๋ฐฉํ™ฉํ–ˆ๋‹ค...
์•„์ง ํ”„๋ก ํŠธ์—”๋“œ ๋ฒ ๋ฒ ๋ผ ๊ทธ๋Ÿฐ์ง€ ์–ด๋””๊นŒ์ง€ DUMMY_DATA๋กœ ์จ์•ผํ•˜๋Š”์ง€, ์–ด๋””์—์„œ ์„œ๋ฒ„๋ฅผ ๋ถ€๋ฅด๊ณ  state์—๋Š” ์–ด๋–ค ๊ฒƒ์„ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š”์ง€ ์ ์  ๋ฌด์„ญ๋‹ค... ๋‘๋ ต๋‹ค...

๐Ÿ’ก ๊ทธ๋ž˜์„œ ์šฐ์„  ์‹ค์Šต ๊ฐ•์˜๋ฅผ ์ฝ”๋“œ ์œ„์ฃผ ๋ง๊ณ , ๋‚ด์šฉ ์œ„์ฃผ๋กœ ๋‹ค์‹œ ๋“ฃ๊ณ  -> ์™„๋ฒฝํ•œ ์ดํ•ด๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ๋กœ!!! ์ฝ”๋“œ๊ฐ€ ์ˆ ์ˆ  ์จ๋‚ด๋ ค์งˆ๋•Œ ๊นŒ์ง€ ์•ˆ๋…•~!

๋„๋ง๊ฐ€๋Š”๊ฑฐ ์•„๋‹ˆ์˜ˆ์š”... ์ฝ”๋”ฉํ•˜๋Ÿฌ ๊ฐˆ๊บผ๋ผ๊ตฌ์šง... ๐Ÿ’ฆ๐Ÿ’ฆ๐Ÿ’ฆ๐Ÿ’ฆ๐Ÿ’ฆ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ํ”„๋ก ํŠธ์—”๋“œ 22์ผ์ฐจ

Notion Project ๐Ÿฅ•

์˜ค๋Š˜์€ ์šฐ์„  1) PostsPage, PostsList๋ฅผ ๋งŒ๋“ค๊ณ , 2) Editor, EditorPage ๋Š” ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋งŒ๋“ค์–ด๋ณด์Ÿˆ ๐ŸŒž

PostsPage, PostsList ๋งŒ๋“ค๊ธฐ

(์ฒ˜์Œ๋ถ€ํ„ฐ App.js๋กœ ๋งŒ๋“ค์Ÿˆ ~!)

  • โœ” DUMMY_DATA๋กœ ๋ฐ์ดํ„ฐ ๋žœ๋”๋ง
  • โœ” PostsPage๋กœ ์˜ฎ๊ธฐ๊ธฐ
  • โœ” api์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • โœ” ๋ฒ„ํŠผ ๊ตฌํ˜„
  • โœ” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • โœ” setState๋กœ ๊ฐฑ์‹ ํ•˜๊ธฐ


์ฝ”๋“œ๊ฐ€ ์•ˆ ์งœ์งˆ๋• ๋‹ค๊ฐ™์ด ๋ฌด์•ผํ˜ธ๋ฅผ ์™ธ์ณ์š” ~! ๋ฌด์•ผํ˜ธ~!

์˜ค์”Œ... ๊ฑ ๋ฏธ์ณ๋ฒ„๋ ธ๋Š”๋ฐ? ์ด๊ฑธ ๋‹คํ–ˆ๋‹ค๊ณ ? ๐Ÿ˜ถ ๊ทธ์น˜ ์‰ฌ์ด ๋ ๋ฆฌ๊ฐ€ ์—†์ง€โ€ฆ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ํ”„๋ก ํŠธ์—”๋“œ 23์ผ์ฐจ

Notion Project ๐Ÿฅ•๐Ÿฅ•

์–ด์ œ ๊ฒจ์šฐ ๊ฒจ์šฐ api์— ๋งž์ถฐ ์ƒˆ๋กœ์šด post๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ์ถ”๊ฐ€๋  post์˜ ๋ถ€๋ชจ id ์ฐพ๋Š”๊ฒƒ, ๊ทธ๊ฑธ ํ˜„์žฌ state๋กœ ๋„˜๊ฒจ์ฃผ๋Š”๊ฒƒ์—์„œ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค ๐Ÿ˜ญ (์‚ญ์ œ๋Š” ๊ธฐ๋ณธ ๊ตฌํ˜„ ์‚ฌํ•ญ์„ ๋‹ค ์ง€ํ‚จ ํ›„์— ํ•  ์˜ˆ์ •!)
์˜ค๋Š˜ ํ•ด์•ผํ•˜๋Š” ์ผ -> editor ๊ธฐ๋Šฅ ๊ตฌํ˜„ editor, list ๋ฐ์ดํ„ฐ ์—ฐ๋™ (history api ๋กœ spa ๊ตฌํ˜„ ๋Š” ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด!!!!!)

Editor, EditorPage ๋งŒ๋“ค๊ธฐ

(์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ ์ž๋™์™„์„ฑ ํŽธ์ง‘๊ธฐ์™€ ๋‹ค๋ฅด๊ฒŒ, ์„œ๋กœ ์—ฐ๊ฒฐ ์•ˆ๋˜์–ด์žˆ๋Š”๊ฑธ? ์—ฐ๋™ํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด์•„์•ผ๊ฒ ๋‹ค๋ฆฌ~)

  • โœ” Editor.js ์ƒ์„ฑ
  • โœ” EditorPage.js ์ƒ์„ฑ
  • โœ” key up ์ด๋ฒคํŠธ ์ถ”๊ฐ€
  • โœ” ์ด๋ฒคํŠธ ๋””๋ฐ”์šด์Šค
  • โœ” id, content, title ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•  ๊ฒƒ ์ธ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ
  • โœ” ์„œ๋ฒ„ ๋ฐ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์—ฐ๊ฒฐ
  • โœ” document ํŠธ๋ฆฌ์— ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ ๋ˆŒ๋ €์„ ๋•Œ editor์—์„œ ๊ฐ€์ ธ์™€ ๋ฟŒ๋ฆฌ๊ธฐ

(์ˆ˜์ • 2021-09-01-18:47)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ํ”„๋ก ํŠธ์—”๋“œ 24์ผ์ฐจ

Notion Project ๐Ÿฅ•๐Ÿฅ•๐Ÿฅ•

๋“œ๋””์–ด ๋“œ๋””์–ด ๊ธฐ๋ณธ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋‹ค ๋งŒ๋“ค์—ˆ๋‹ค!!!! ์ค‘๊ฐ„์— ๋งค์šฐ๋งค์šฐ ๋งŽ์€ ์‚ฝ์งˆ์ด ์žˆ์—ˆ์ง€๋งŒ, ๊ทธ๊ฒƒ ๋˜ํ•œ ๊ฐœ๋ฐœ์˜ ์ผ๋ถ€๋ผ ์ƒ๊ฐํ•œ๋‹ค... ์˜ค๋Š˜์€ ์ž์ž˜ํ•œ ๋ฒ„๊ทธ ์žก๊ธฐ + ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๋„ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ๊ตฌํ˜„ํ•˜๊ธฐ + UI ๊ฐœ์„ ํ•˜๊ธฐ (css ์ ์šฉ) ์„ ๋ชฉํ‘œ๋กœ!

์ž์ž˜ํ•œ ๋ฒ„๊ทธ ์žก๊ธฐ

1๏ธโƒฃ ~~ํŽ˜์ด์ง€ ์ˆ˜์ • ํ›„ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ–ˆ์„ ๋•Œ ์ด์ „ content๊ฐ€ ๊ณ ๋Œ€๋กœ ๋„˜์–ด์˜ค๋Š” ํ˜„์ƒ์ด ์žˆ์–ด์š”!~~
 - textarea์˜ value ๊ฐ’์œผ๋กœ ์ˆ˜์ •
2๏ธโƒฃ PostsPage, EditPage ์œ„์น˜๊ฐ€ ์™”๋‹ค๊ฐ”๋‹ค (์ƒํ•˜๊ฐ€ ๋ฐ”๋€Œ์–ด์š” ๐Ÿ˜‚)
3๏ธโƒฃ ~~์‹ค์‹œ๊ฐ„ editing ๋˜๋Š” fetch ํ›„ ๋ฐ˜์˜! (์ˆ˜์ • post์— ๋Œ€ํ•ด์„œ)~~
 - App.js์—์„œ ์˜์กด์„ฑ์„ ๊ณ ๋ คํ•ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์–ด์š”!

๋ณด๋„ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ๊ตฌํ˜„ํ•˜๊ธฐ

  • โœ” editPage์— ์˜† ๋˜ํ•œ ์•„๋ž˜์— ํ•ด๋‹น post์˜ ์ž์‹ post๋“ค์˜ ๋งํฌ๋„ฃ๊ธฐ!
  • โœ” textarea ๋ง๊ณ , div๋กœ ๋ฐ”๊ฟ”์„œ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ• ์น˜ํ™˜ํ•ด๋ณด๊ธฐ
  • โœ” editor ๋‚ด์— ๋‹ค๋ฅธ post์˜ title์ด ์žˆ๋‹ค๋ฉด ํŽธ์ง‘ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ธฐ!
  • โœ” ์‚ญ์ œ!

UI ๊ฐœ์„ ํ•˜๊ธฐ

css๋ฅผ ํ•ด์•ผํ•œ๋‹ค์ด๊ฑฐ์ฃ ? ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค! ๐Ÿ˜˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค ํ”„๋ก ํŠธ์—”๋“œ 25์ผ์ฐจ

Notion Project ๐Ÿฅ•๐Ÿฅ•๐Ÿฅ•๐Ÿฅ•

๊ธฐ๋ณธ ๊ธฐ๋Šฅ + ์‚ญ์ œ ๊ธฐ๋Šฅ + ์ˆ˜์ • ์ •๋ณด ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ + ๊นƒํ—ˆ๋ธŒ ๋งํฌ๊นŒ์ง€ ์ˆ˜์ค€์œผ๋กœ ๊ธฐ๋Šฅ์„ ์™„์„ฑํ–ˆ๋‹ค.
์˜ค๋Š˜์€ ์ œ์ถœ์ผ์ด๊ณ  ์‚ฌ์ •์žฅ css๋ฅผ ๋จผ์ € ์ž‘์—…ํ•˜๊ณ  ์ œ์ถœ ํ›„ ๋‚˜๋จธ์ง€ ๊ธฐ๋Šฅ์„ ์™„์„ฑํ•ด๋ด์•ผ๊ฒ ๋‹ค!

MainPage

  • ๊ฐ„๋‹จํ•œ ์†Œ๊ฐœ ํŽ˜์ด์ง€

PostsPage

  • ์ œ๋ชฉ + ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๋ณด์—ฌ์ฃผ๊ธฐ

EditPage

  • input๊ณผ textarea

๋ Œ๋”๋ง?

  • ๊ฐ€์žฅ ์ƒ์œ„ div์—์„œ flex๋ฅผ ์ด์šฉํ•ด (์ขŒ) ๋ฆฌ์ŠคํŠธ (์šฐ) ์—๋””ํ„ฐ๊ฐ€ ๋˜์–ด์•ผํ•˜๋Š”๋ฐ, ๋ฆฌ์ŠคํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•จ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง์„ ๋‹ค์‹œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๊ฐ€ ๋’ค์ฃฝ๋ฐ•์ฃฝ๋œ๋‹ค. -> ์ตœ์ƒ์œ„ div์— ์œ„์น˜๊ฐ€ ๊ณ ์ •๋œ ํ•˜์œ„ div๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„!

๊ฒฐ๊ณผ

์ง ! ์ผ๋‹จ ๊ธฐ๋ณธ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค ๋งŒ์กฑ์‹œ์ผฐ๊ณ  CSS๊ฐ€ ๋˜๋ ค ๋กœ์ง์งœ๋Š”๊ฒƒ๋ณด๋‹ค ์–ด๋ ต๊ณ  ๋‘๋ ค์› ๋Š”๋ฐ CSS ๊ณต๋ถ€ ๊ฒฝํ—˜์—†๋Š” JS๊ฐ€ CSS๋ฅผ ๋„์™€์ค˜์„œ ํ•ด๊ฒฐ!!! (CSS์€ ์–ด๋ ค์›Œโ€ฆ)

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