Frontend ๊ฐœ๋ฐœ์ž - hyo.loui

(React) WIL - 16์ฃผ์ฐจ ํšŒ๊ณ  ๋ณธ๋ฌธ

WIL

(React) WIL - 16์ฃผ์ฐจ ํšŒ๊ณ 

hyo.loui 2023. 2. 23. 23:03

๐Ÿ“ WIL: Weekly I Learned

 


Work done this week

์ด๋ฒˆ ์ฃผ ํ•œ ์ผ!

  1. Project : Codefolio = ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ค‘ ( 1.0.0 > 1.1.0 version ๋ฐฐํฌ )

 

 

Project review

 

๊ธฐํš & ๋””์ž์ธ ํšŒ์˜๋ฅผ ํ•˜๋ฉฐ..

 

์‚ฌ์‹ค ์šฐ๋ฆฌ์˜ mvp๊ฐ€ ์žฆ์€ ๋ณ€๋™์ด ์ƒ๊ธฐ๊ณ  ํƒ€๊ฒŸ(๊ณ ๊ฐ)์ธต์ด ๋ช…ํ™•ํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ์ ์ด ์ œ๊ธฐ๋˜์–ด

๊ธด ๊ธฐํš ํšŒ์˜ ๋์— ์˜๊ฒฌ์„ ์ขํžˆ๋Š” ๊ณผ์ •์ด ์ˆœํƒ„ํ•˜์ง€๋Š” ์•Š์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๊ฒƒ ๋˜ํ•œ ์ถฉ๋ถ„ํ•œ ๊ฒฝํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๋””์ž์ด๋„ˆ ๊ด€์ , ๊ธฐํš์ž ๊ด€์ , ๊ฐœ๋ฐœ์ž ๊ด€์ ์„ ๋‘๋ฃจ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๊ณ ,

 

๋˜ ์˜๊ฒฌ ์กฐ์œจํ•˜๋Š” ๊ณผ์ •์—์„œ์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜๊ณผ ๊ธฐํš ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ์˜

์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์ดํ›„ ํŽ˜์ด์ง€ ์ž‘์—…์— ๋Œ์ž…ํ•ด์„œ

๊ฐ์ž ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ์ž‘์—…ํ•˜์—ฌ ๋‚˜๋ˆ„์—ˆ๋˜ ํ…Œ์Šคํฌ๋ฅผ ํ•ฉ์ณ

ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

๋‚˜๋Š” Post-page๋ฅผ ๊ตฌ์„ฑํ–ˆ๊ณ ,

๊ทธ ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ํŒ€์›์ด ์ž‘์„ฑํ•œ ๊ณต์šฉ/ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋œฏ์–ด๋ณด๊ณ 

์ดํ•ดํ•˜๋Š”๋ฐ ์ ์ง€ ์•Š์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ–ˆ๋‹ค.

 

๋˜ํ•œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์˜ ์˜๋„์™€ ๋ชฉ์ ์„ ์ •ํ™•ํžˆ ๊ฐ„ํŒŒํ•ด์•ผ ํ•˜๋Š” ์ˆ˜๊ณ ๋ฅผ

ํ”ผ๋ถ€๋กœ ๋Š๊ผˆ๊ณ ,

๊ฐ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ™•์žฅ์„ฑ์„ ๊ณ ๋ คํ•œ ์ž‘์—…์„ ํ•ด์•ผํ•˜๊ณ ,

์˜์กด์„ฑ์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ๋ผˆ์ €๋ฆฌ๊ฒŒ ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์™œ๋‚˜ํ•˜๋ฉด, ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ,

๋‹ค๋ฅธ ์˜๋„๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋“ค์ด ๋Š์ž„ ์—†์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ

๋ณ€๋™์— ์ง๋ฉด ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ๋ณ€๊ฒฝ(์œ ์ง€ ๋ณด์ˆ˜)ํ•˜๊ณ  ๋กœ์ง ์ฒ˜๋ฆฌ๋ถ€๋ถ„์— ํฐ ์†Œ์š”๊ฐ€ ๋ฐœ์ƒํ•œ ๋‹ค๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค.

 

๊ณต์šฉ ๋ฐ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์˜์กด์„ฑ์ด ์—†์ด UI๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์ดํ›„ Post ํŽ˜์ด์ง€์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” supabase API๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„ ํ†ต์‹ ์„ ์—ฐ๊ฒฐํ–ˆ๊ณ ,

toast UI Editor ์—์„œ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ปฌ๋Ÿฌ์ฒ˜๋ฆฌ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด

plugin์ธ code syntax highlight plugin๊ณผ prism(library)์„ ์ ์šฉ ํ•ด ์ฃผ์—ˆ๋‹ค.

(์ถ”ํ›„ react-query๋กœ ๋ฆฌํŽ™ํ† ๋ง)

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด

๊ฐ€์žฅ ๋งŽ์€ ์‚ฌ์šฉ์ž์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ฐ€์ง„

์ด๋ฏธ์ง€ ์••์ถ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ compressImg๋ฅผ ์ ์šฉํ•ด ์ฃผ์—ˆ๊ณ ,

 

๋กœ๊ทธ์•„์›ƒ๊ณผ ์ดํ›„์— ์ด๋ฃจ์–ด์ง€๋Š” 

GNB ์กฐ๊ฑด๋ถ€ ๋ Œ๋”(๋กœ๊ทธ์ธ ๊ฐ์ง€ํ•˜์—ฌ Login & Logout)๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ „์— ์ปดํฌ๋„ŒํŠธ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ DropDown ์ปดํฌ๋„ŒํŠธ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋กœ์ง์ด

์˜์กด์„ฑ์ด ๋„ˆ๋ฌด ๊ฐ•ํ•˜๊ณ , ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ผ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— post ์— ์ข…์†๋œ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๊ด€์„ ์‹œ์ผฐ๋‹ค.

 

๋˜ ๋ฌธ์ œ์ ์œผ๋กœ, ์ƒ๋…„ ์›”์ผ์„ ์„ ํƒํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ๊ฐ’์ผ ๋•Œ ์„ ํƒ ์•ˆํ•จ์„ ๋ณด์—ฌ์ค˜์•ผ ํ–ˆ๋Š”๋ฐ

string์ด๋ผ๋ฉด ๊ฐ„ํŽธํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜์ง€๋งŒ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š SQL๋กœ ์ •๊ทœํ™” ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์—

ํ•จ๋ถ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ null ์ผ ๊ฒฝ์šฐ '์„ ํƒ๋˜์ง€ ์•Š์Œ'์œผ๋กœ ์ง์ ‘ ํ•ธ๋“ค๋ง ํ•˜์˜€๋‹ค.

 

์ดํ›„ MyPage์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ input type="color" ๋กœ

color picker ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€๊ณ , ๋‹ค์‹œ ๋ทฐ์–ด์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ ๊นŒ์ง€ ๋ฌธ์ œ์—†์ด ์ž‘์—…์ด ๋˜์—ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ 1.0.0 version์ด Vercel์—์„œ ์ž˜ deployed ๋˜์—ˆ๊ณ ,

์ถ”๊ฐ€์ ์ธ ๋ฒ„๊ทธ์™€ ์ž์ž˜ํ•œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ด 1.0.1 version ๊นŒ์ง€ deployed ๋˜์—ˆ๋‹ค. 

 

์œ„์ฒ˜๋Ÿผ toast UI์˜ ๋ฌด๊ฑฐ์šด ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ธ์ง€ํ•ด 2.0.0 ๋ฒ„์ „์ด ๋‚˜์˜ฌ ๋•Œ

๋‹ค์‹œ ํ•œ๋ฒˆ ๊ณ ๋ฏผํ•˜๊ณ  ํŒ€์›๋“ค๊ณผ์˜ ์˜๊ฒฌ์„ ์ข…ํ•ฉํ•ด ๊ฒฐ์ • ํ•  ์†Œ์š”๊ฐ€ ์ƒ๊ฒผ๋‹ค.

 

Detail ํŽ˜์ด์ง€์—์„œ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋”๋‹˜์ด ๋ฆฌํŽ™ํ† ๋ง ํ•˜์˜€๋Š”๋ฐ

์•ฝ 60%์˜ ๋กœ๋”ฉ ์†๋„ ๊ฐœ์„ ์ด ์žˆ์—ˆ๋‹ค.

 

react-query์—์„œ ์ œ๊ณตํ•˜๋Š” isLoading ๋กœ์ง์„

if( !a || !b || c) loading UI ๋กœ ๊ตฌ์„ฑํ•˜๊ณ 

ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฐ๊ฐ ์ด๋ฃจ์–ด์ง€๋˜ ์„œ๋ฒ„ํ†ต์‹ ์„ 

์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰ํ•˜๊ณ  ํ•˜์œ„๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ „๋‹ฌ ํ•˜์˜€๋‹ค.

๊นŠ์€ ๊ฐ๋™์ด ๋ฐ€๋ ค์™”๋‹ค.

 

1.0.1 version ์ดํ›„ version์—์„œ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

  1. Color picker์—์„œ cover image ๋กœ ๋ณ€๊ฒฝ
  2. Editor์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค๊ฐ€ ์‚ญ์ œ ํ–ˆ์„ ๋•Œ storage์—์„œ ์‚ญ์ œ
  3. Editor์—์„œ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ์‹œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์šฉ๋Ÿ‰ ์ œํ•œ
  4. ๊ฐ์ข… ๋ฒ„๊ทธ, style ๋””ํ…Œ์ผ ์ˆ˜์ •

 


 

 

์ตœ์ข… ํ”„๋กœ์ ํŠธ์ด๋‹ค ๋ณด๋‹ˆ ์ •๋ง ์ผ๋ถ„ ์ผ์ดˆ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๋ชฐ์ž…ํ•˜๋‹ˆ

์–ด๋–ป๊ฒŒ ์‹œ๊ฐ„์ด ์ด๋ ‡๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

์‚ฌ์‹ค ์ž ๋„ ๋งŽ์ด ์—†๊ณ , ํ”ผ๊ณคํ•จ์„ ์ž˜ ๋ชป๋Š๋ผ๋Š” ํ„ฐ๋ผ

๋‚˜๋Š” ๊ดœ์ฐฎ์•˜์ง€๋งŒ ํŒ€์›๋“ค์ด ํž˜๋“ค์–ด๋„ ๋ชจ๋‘ ๊ฐ™์ด ์—ด์‹ฌํžˆ ํ•ด์ค˜์„œ

๋„ˆ๋ฌด ์ข‹์€ ๊ฒฝํ—˜์„ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

 

๐Ÿฆพ A๋ฐ˜ ์ฑŒ๋ฆฐ์ง€ํŒ€ ๋น ์ดํŒ…!!

 


 

023๋…„ 2์›” 1 week 2 week (project) 3 week 4 week
ํ•™์Šต ๋‚ด์šฉ
(ํ”„๋กœ์ ํŠธ)
Next.js ํ•™์Šต ๋ฐ ์‹ค์Šต (๊ฐ•์˜)
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐœํ‘œ ๋ฐ TIL ์ •๋ฆฌ
์œ ์ € ํ”Œ๋กœ์šฐ ์„ค๊ณ„,API ์„ค๊ณ„, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ์ •, ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„, DB ์„ค๊ณ„, ๋ผ์šฐํŒ… ์„ค๊ณ„, ํด๋”๊ตฌ์กฐ ์„ค๊ณ„, ESLint ์„ค์ • >> init

24H ํ—ค์ปคํ†ค ์ง„ํ–‰ 
๊ธฐํš ๋งˆ๋ฌด๋ฆฌ, ํŽ˜์ด์ง€ ๊ตฌ์„ฑ(์ปดํฌ๋„ŒํŠธ ๋ณ‘ํ•ฉ), ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ๊ธฐ๋Šฅ๋ณ„ task ๊ด€๋ฆฌ, github issue๋กœ ์ž‘์—… ๊ฐ๊ด€ํ™”

post-page, supabase ์—ฐ๋™, ๋กœ๊ทธ์•„์›ƒ ํ›„ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง, mypage background, toast-ui text editor
                                                                               
์‚ฌ์šฉ ํˆด
defalut : VS code
Next.js(ssr, ssg, isr) / Typescript ์ƒ๋žต. ์ƒ๋žต,  

 

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

WIL - [23.03.27 ~ 23.04.02]  (0) 2023.04.03
(React) WIL - 17์ฃผ์ฐจ ํšŒ๊ณ   (0) 2023.02.25
(React) WIL - 15์ฃผ์ฐจ ํšŒ๊ณ   (1) 2023.02.12
(React) WIL - 14์ฃผ์ฐจ ํšŒ๊ณ   (1) 2023.02.03
(React) WIL - 13์ฃผ์ฐจ ํšŒ๊ณ   (1) 2023.01.28