๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TodoList Project

TodoList Project ํšŒ๊ณ ๋ก

by ์€์ง€:) 2022. 12. 16.
728x90
๋ฐ˜์‘ํ˜•

 

TodoList Project ๋ž€?

 

 

 

 

๐Ÿ‘‡ ๋ฐฐํฌ ๋งํฌ

 

https://joeunji0119.github.io/loginTodo/

 

TodoList

 

joeunji0119.github.io

 

 

 

 

 

 


ํŒ€์›

 

FE : ์กฐ์€์ง€

 

GitHub - Joeunji0119/loginTodo: ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ-7 ๋งˆ๋ฌด๋ฆฌ ํ›„ ๋ฐฐ์šด ๊ฑธ ์ ์šฉํ•˜๋ฉฐ ts๋กœ Auth, TODO ๊ตฌํ˜„ ์—ฐ์Šต

ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ-7 ๋งˆ๋ฌด๋ฆฌ ํ›„ ๋ฐฐ์šด ๊ฑธ ์ ์šฉํ•˜๋ฉฐ ts๋กœ Auth, TODO ๊ตฌํ˜„ ์—ฐ์Šต. Contribute to Joeunji0119/loginTodo development by creating an account on GitHub.

github.com

 

BE : ์ด์ƒ์šฐ

 

GitHub - sw1104/todo-server-api

Contribute to sw1104/todo-server-api development by creating an account on GitHub.

github.com

 

 

 

 

 


๊ธฐ์ˆ  ์Šคํƒ

 

FE 

 

BE

 

 

 

 

 

ํ”„๋กœ์ ํŠธ ์„ค๋ช…

ํ”„๋ฆฌ์˜จ ๋ณด๋”ฉ ์ˆ˜๋ฃŒ ํ›„ ๋ฐฐ์šด typeScript, ReactQuery, emotion.js ๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋™๋ฃŒ์™€ ํ•จ๊ป˜ TodoList ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค

 

 

 

 

๊ตฌํ˜„ ๊ธฐ๋Šฅ

 

 

 

 

 

๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… / TodoList 

 

 


 

 

 

 

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

 

 

ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ ๋•Œ๋Š” ์ฃผ์–ด์ง„ api ๋งŒ์„ ์‚ฌ์šฉํ•ด ๊ณผ์ œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์—” ์˜ค๋žœ๋งŒ์— ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋‹˜๊ณผ ํ•จ๊ป˜ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ตฌํ˜„ ํ•˜๊ณ ํ”ˆ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์ œ์•ˆ ๋“œ๋ ธ๋‹ค. ํŠนํžˆ ํšŒ์›๊ฐ€์ž…์ฐฝ ๊ด€๋ จํ•ด์„œ ๋งŽ์ด ์•„์ด๋””์–ด๋ฅผ ๋ƒˆ๋Š”๋ฐ, usehookForm์„ ์จ์„œ ๋งŽ์€ input ์ฐฝ์„ ์ ‘ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒ€์›๊ณผ ํšŒ์˜๋ฅผ ๊ฑฐ์ณ ํšŒ์›๊ฐ€์ž… ์ฐฝ์—์„œ ์‚ฌ์ง„, ์ด๋ฆ„, ์ƒ๋…„์›”์ผ, ์„ฑ๋ณ„, ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ›๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ตฌํ˜„ ์ดˆ๋ฐ˜์— useHookForm๊ณผ ํผ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์ง„์„ ๋ณด๋‚ด๋Š” ์ž‘์—…๋„ ์ฒ˜์Œ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๋ฐ˜์— ์• ๋ฅผ ๋งŽ์ด ๋จน์—ˆ๋‹ค. hookForm ๊ธฐ๋ณธ ์„ค์ •์ด ํผ๋ฐ์ดํ„ฐ์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด

 

formData.append(name, value);

 

 

๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, formData ๋ฉ”์„œ๋“œ๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋‹ˆ ์‚ฌ์ง„๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์ง€ ์•Š์•˜๋‹ค. ์ฝ˜์†”์—” ์ž˜ ์ฐํžˆ๋Š”๋ฐ ํŽ˜์ด๋กœ๋“œ์—๋Š” ๋‹ด๊ธฐ์ง€ ์•Š์•˜๋‹ค. ๊ฒฐ๊ตญ formData ๋กœ์ง์„ ๋„ฃ์–ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ์ฝ”๋“œ๋Ÿ‰์ด ํ™• ๋Š˜๊ฒŒ ๋œ ์ ์ด ํฌ๊ฒŒ ์•„์‰ฌ์› ๋‹ค. ํ•˜์ง€๋งŒ ํšŒ์›๊ฐ€์ž… ์ฐฝ์—์„œ๋Š” ๋”์ด์ƒ ์ž‘์—… ์‹œ๊ฐ„์„ ์ง€์ฒดํ•  ์ˆ˜ ์—†์—ˆ๊ณ  hookForm + formData ๋กœ ์ฒ˜์Œ ๊ตฌํ˜„ํ•œ ์ž‘์—…๋ฌผ์ด๋ผ๋Š”๋ฐ์„œ ์œ„์•ˆ์„ ์ฐพ๊ณ  ๋‹ค์Œ ๊ตฌํ˜„ ํŒŒํŠธ๋กœ ๋„˜์–ด๊ฐ”๋‹ค. ์ง€๊ธˆ๋„ ๋ฌผ๋ก  ์•„์‰ฝ์ง€๋งŒ ์ด๋•Œ์˜ ๊ฒฐ์ •์ด ์˜ณ์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋”์šฑ ์š•์‹ฌ์„ ๋ถ€๋ ค ๊ณ„์† ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋ฅผ ์ž‘์—…ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด ๊ตฌํ˜„ ๊ธฐ๊ฐ„ ๋Š˜์–ด์ ธ ํ”„๋กœ์ ํŠธ ๋ถ„์œ„๊ธฐ๊ฐ€ ๋ฃจ์ฆˆํ•ด์ ธ ์ž์นซ ์™„์„ฑ์„ ๋ชปํ–ˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

 

todo ํŽ˜์ด์ง€๋Š” reactQuery๋ฅผ ์ค‘์ ์ ์œผ๋กœ ์“ฐ๊ณ ์žํ–ˆ๋‹ค. ์ข€ ๋” ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ ๊ฐ™์€๋ฐ, ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ์ปจ์…‰์ด ์•„๋‹Œ ๊ฑฐ ๊ฐ™์€๋ฐ, ํ•˜๋Š” ์•„์‰ฌ์šด ์ ์ด ๋‚จ๋Š” ์ž‘์—…์ด์—ˆ๋Š”๋ฐ ์‚ฌ์‹ค ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ todoList๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ reactQuery๋Š” ๋งค์šฐ ์˜ค๋ฒ„ ์ŠคํŽ™์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

todoList๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ด์œ ๋„ ์—†์—ˆ๊ณ  error๋‚˜ loading ์ฒ˜๋ฆฌ๋„ ํฌ๊ฒŒ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๋‹ค. CRUD(read ์ œ์™ธ) ๋ถ€๋ถ„์€ useMutation ์„ ์‚ฌ์šฉํ•ด api ๋ฅผ ๋ถˆ๋Ÿฌ์™”๋Š”๋ฐ onSuccess ๋กœ ์ „์ฒด list๋ฅผ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ๋”ํ–ˆ๋‹ค. ์ด๋Ÿฐ ๋ฐฉํ–ฅ์œผ๋กœ ๋กœ์ง์„ ์งœ๋Š” ๊ฒŒ ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ์˜ ์ปจ์…‰์— ๋งž๋‹ค๊ณ  ํŒ๋‹จํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์ง€๋งŒ, ์ž‘์—… ๋‚ด๋‚ด ์˜คํžˆ๋ ค ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๋Š๋‚Œ์„ ๋งŽ์ด ๋ฐ›์•˜๋‹ค. ๊ฐ„๋‹จํ•œ todoList๋Š” ์˜คํžˆ๋ ค UI์ ์ธ ๋ถ€๋ถ„์— ์‹ ๊ฒฝ์„ ํฌ๊ฒŒ ์“ฐ๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

 

CSS-in-JS๋กœ ์ด๋ฒˆ์— emotion.js ๋ฅผ ์„ ํƒํ•ด ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด ๋˜ํ•œ ๋„ˆ๋ฌด styled-component์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ด์„œ ์•„์‰ฌ์›€์ด ๋‚จ๋Š”๋‹ค. ์ดˆ๊ธฐ global, theme ์„ค์ • ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์„ ๋งŽ์ด ์†Œ์š”ํ–ˆ๋Š”๋ฐ ํ›„์—๋„ <div css={styeld}> ํ˜•ํƒœ๊ฐ€ ๋ถˆํŽธํ•˜๋‹ค๊ณ  ๋Š๊ปด

 

 import styled from "@emotion/styled"

 

๋กœ ์ญ‰ ์ž‘์—…ํ–ˆ๊ณ , ๊ฒฐ๊ตญ ์กฐ๊ฑด๋ถ€ ์Šคํƒ€์ผ๋ง์„ ์ฃผ๋Š”๋ฐ์„œ ๋ง‰ํ˜€ ํฌ๊ฒŒ ์• ๋ฅผ ๋จน์—ˆ๋‹ค. styled-component ๋Š” ํ•จ์ˆ˜๋ฅผ props๋กœ ๋„˜๊ฒจ ์Šคํƒ€์ผ.tx ๋‚ด์—์„œ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋์—ˆ๋Š”๋ฐ @emotion/styled ๋Š” ์ข€ ๋‹ค๋ฅธ ๊ฑฐ ๊ฐ™์•˜๋‹ค. ๊ฒฐ๊ตญ ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ํ•จ์ˆ˜๋กœ ๋บ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋„ ํฌ๊ฒŒ ์•„์‰ฌ์›€์ด ๋‚จ์•˜๋‹ค.

 

 

 

 

 

 

 


๊ณต์œ  ํˆด

 

 

Swagger

 

 

์ •๋ง ํŽธ๋ฆฌํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์—ˆ๋˜ Swagger. ํ‰์†Œ ํŒ€์›์ด ์“ฐ๋˜ Swagger ํˆด์„ ๋ˆˆ์—ฌ๊ฒจ ๋ณด๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ ๋ฐ›์•„๋ณด๊ฒŒ๋˜์—ˆ๋‹ค. api๊ฐ€ ํ•œ ๋ˆˆ์— ๋“ค์–ด์™€์„œ ๊ฐ€์žฅ ์ข‹์•˜๊ณ  ๊ฐ ์šฐ์ธก์˜ ํ† ๊ธ€์„ ํด๋ฆญํ•˜๋ฉด ์š”๊ตฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, postman์ฒ˜๋Ÿผ ๋ชจ๋“  method๋ฅผ ํ…Œ์ŠคํŠธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ–ˆ๋‹ค. 

 

๊ทธ ์™ธ์˜ ๊ณต์œ ํˆด๋กœ๋Š” ์Šฌ๋ž™์„ ์ผ๊ณ  ๊ฐ™์€ ๊ธฐ๊ฐ„์— ๋ฐฑ์—”๋“œ ํŒ€์›๋„ catBow ํ”„๋กœ์ ํŠธ์— ํ•จ๊ป˜ ์ฐธ์—ฌํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ”„๋ผ์ธ์—์„œ์˜ ์†Œํ†ต์ด ๋งŽ์•„ ๊ณต์œ ํˆด์€ ๋Š˜๋ฆฌ์ง€ ์•Š์•˜๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด์ œ๊ป ํ•ด์™”๋˜ ํ”„๋กœ์ ํŠธ์™€๋Š” ๋‹ฌ๋ฆฌ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํ”„๋กœ์ ํŠธ์˜€๊ณ , ์„œ๋กœ ๊ฐ™์€ ๊ณต๊ฐ„์—์„œ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์„œ ํฐ ๋ถˆํŽธํ•จ ์—†์ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

 

 

 

 

 

 

๋Š๋‚€ ์ 

 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” Catbow ํ”„๋กœ์ ํŠธ์™€ ๊ธฐ๊ฐ„์ด ๊ฒน์ณ ์˜จ์ „ํžˆ ์‹œ๊ฐ„์„ ์Ÿ์ง€ ๋ชปํ•ด ์•„์‰ฌ์›€์ด ๋‚จ์ง€๋งŒ (๋ฐฑ์—”๋“œ ํŒ€์›๋ถ„๋„ catbow ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋‹ค๋ฅธ ์ด์Šˆ๋Š” ์—†์—ˆ๋‹ค.) ์“ฐ๊ณ  ์‹ถ์—ˆ๋˜ ์Šคํƒ์œผ๋กœ CRUD๋ฅผ ํ–ˆ๋‹ค๋Š” ์ ์—์„œ ์ฆ๊ฒ๊ณ  ํ–‰๋ณตํ•˜๊ฒŒ ์ž‘์—…ํ–ˆ๋‹ค. ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์€ ์งง์€ ๊ธฐ๊ฐ„ ๋‚ด์— ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•ด์„œ ์ƒˆ๋กœ์šด ์Šคํƒ๋“ค์„ ์ผ์ง€๋งŒ ๊ณผ์—ฐ ์ดํ•ดํ•˜๊ณ  ์“ด ๊ฒƒ์ด ๋งž๋Š”๊ฐ€ ํ•˜๋Š” ์˜๋ฌธ์ด ํฌ๊ฒŒ ๋“ค์—ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ์ฒœ์ฒœํžˆ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ๋”ฐ๋ผ ์จ๋ณด๋Š” ์ถฉ๋ถ„ํ•œ ํ•™์Šต ์‹œ๊ฐ„์ด ์žˆ์—ˆ๊ธฐ์— ๊ทธ๊ฑธ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ํ•ด์†Œํ–ˆ๋‹ค๊ณ  ๋Š๋‚€๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ ‡๊ฒŒ ๋งˆ๋ฌด๋ฆฌ ์ง€์—ˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ todoList์ธ ๋งŒํผ ๊ณ„์†ํ•ด์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ด๋ฃจ์–ด์งˆ ๊ฑฐ ๊ฐ™๋‹ค.

 

๋˜, ์ด๋ฒˆ์—” ์—ฌํƒ€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํ”„๋ก ํŠธ 1๋ช…, ๋ฐฑ์—”๋“œ 1๋ช…์œผ๋กœ๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ฃจ์ฆˆํ•ด์งˆ ์ˆ˜๋„ ์žˆ์—ˆ๋Š”๋ฐ ์ด ์ ์„ ๋งค์ผ ์˜คํ”„๋ผ์ธ์œผ๋กœ ์„œ๋กœ ์•„์ด๋””์–ด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณต์œ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ๊ฐ€ ํ์ง€๋ถ€์ง€ ๋˜๋Š” ์ผ ์—†์ด ์ž˜ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๊ณ  ๊ฐœ๋ฐœ์„ ํ•™์Šตํ•œ์ง€ ๋ฒŒ์จ 5๊ฐœ์›”์ด ํ˜๋Ÿฌ๊ฐ€๊ณ  ์žˆ๋‹ค. ๊ทธ ๋™์•ˆ 3-4๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ์ž‘์—… ์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ  ํŒ€์›๊ณผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์ž์—ฐ์Šค๋Ÿฌ์›Œ์กŒ๋‹ค๊ณ  ๋Š๋‚€๋‹ค. ์›ํ•˜๋Š” ํผ์„ ์ œ์•ˆํ•˜๊ณ  ํŒ€์›์˜ ์•„์ด๋””์–ด๋ฅผ ๋“ฃ๊ณ  ์ˆ˜์šฉํ•˜๊ณ  ํƒ€ํ˜‘ํ•˜๋Š” ๊ณผ์ •์ด ๋งค์šฐ ์ฆ๊ฑฐ์› ๋Š”๋ฐ, ํŠนํžˆ ์ด๋ฒˆ์—” ๋ฐฑ์—”๋“œ ํ•œ ๋ถ„์ด ๋งŒ๋“œ์‹  ๋ฐ์ดํ„ฐ๋ฅผ UI๋กœ ๊ทธ๋ ค ๋ˆˆ์œผ๋กœ ๋ณด์—ฌ์คฌ๋‹ค๋Š” ๋งŒ์กฑ๊ฐ๋„ ๋‚˜๋ฆ„ ๋‚จ์•˜๋‹ค. 

 

์ฒซ ํ”„๋กœ์ ํŠธ ๋•Œ์˜ '๋‚˜'์™€ ์ง€๊ธˆ์˜ '๋‚˜'๋ฅผ ๋น„๊ตํ•˜์ž๋ฉด ๊ธฐ์ˆ ์ ์ธ ๋ฉด๋„ ๋งŽ์ด ๋ฐœ์ „ํ–ˆ์ง€๋งŒ ์–ด์—ฟํ•œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ „์ฒด์ ์ธ ํ‹€์„ ์ดํ•ดํ•˜๊ณ  ์•„์ด๋””์–ด๋ฅผ ์ œ์•ˆํ•ด ์ž์—ฐ์Šค๋Ÿฌ์šด ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ–ˆ๋‹ค๋Š” ์ ์— ์žˆ์–ด์„œ ํฌ๊ฒŒ ์„ฑ์žฅํ–ˆ๋‹ค๊ณ  ๋Š๋‚€๋‹ค. ์ด๋Š” ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ์ ์„ ํ”์พŒํžˆ ์ˆ˜์šฉํ•ด์ฃผ์‹  ๋ฐฑ์—”๋“œ ํŒ€์›๋ถ„์ด ์žˆ์—ˆ๊ธฐ์— ๊ฐ€๋Šฅํ•œ ์ผ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค. ๐Ÿ’ช 

 

์•ž์œผ๋กœ ์ธ๊ฒฉ์ ์œผ๋กœ๋‚˜ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋Š์ž„์—†์ด ๋ฐœ์ „ํ•ด ๋‚˜๊ฐ€๋Š” ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด์•ผ๊ฒ ๋‹ค๋Š” ๋‹ค์ง์„ ๋‹ค์‹œ ๊ตณ๊ฒŒ ์ƒˆ๊ธฐ๊ฒŒ ๋˜๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค.

 

 

 

 

 

๐Ÿ‘‡ ๊ด€๋ จ ํฌ์ŠคํŒ…

 

 

https://0119eunji.tistory.com/71

 

๊นƒ ๋ฐฐํฌ์‹œ readMe ๋ฐฐํฌ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

๊นƒ ๋ฐฐํฌ์‹œ readMe ๋ฐฐํฌ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฌธ์ œ ์—ด์‹ฌํžˆ ์ž‘์—…ํ•œ TodoList๋ฅผ ๊นƒ ํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ๋ฐฐํฌํ•˜๋‹ค ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค ๐Ÿ‘‡ ๊นƒ ํŽ˜์ด์ง€์—์„œ ๋ฐฐํฌํ•˜๋Š” ๋ฒ• (๋‹จ, html ํŒŒ์ผ์ด ์ตœ์ƒ๋‹จ์— ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ!) https://0119eunji

0119eunji.tistory.com

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€