Skip to content

๐ŸŽถ์Œ์•…์„ ๋“ฃ๊ณ , ์‹ค์‹œ๊ฐ„ ์˜์ƒ๊ณผ ํ•จ๊ป˜ ํ• ์ผ์„ ๊ธฐ๋กํ•ด๋ด์š”

Notifications You must be signed in to change notification settings

hahahaday12/Music_Todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽถMusicTodo๐ŸŽถ

๋ฐฐํฌ ์ฃผ์†Œ

-> https://master--todolisthahaday.netlify.app/

๐Ÿ“Œ ์œ ์˜์‚ฌํ•ญ

-> ๋ฐ˜์‘ํ˜•์ด ์ ์šฉ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ“œ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

-> (๐Ÿ‘ฅ๐Ÿ‘ค๐Ÿ‘ฅ๐Ÿ‘ค๋ญ์•ผ...๐Ÿ‘ค๐Ÿ‘ค๐Ÿ‘ฅ๐Ÿ‘ฅ๐Ÿ‘ฅ์›…๐Ÿ‘ฅ์„ฑ๐Ÿ‘ฅ๐Ÿ‘ฅ๐Ÿ‘ค) ์ง€๋ฃจํ•œ Todolist ๋Š” ๊ฐ€๋ผ!
๋ด๋„๋ด๋„ ์งˆ๋ฆฌ์ง€ ์•Š๋Š” ๊ท€์—ฌ์šด ์ปจ์…‰์˜ Todolist์™€ ํ•จ๊ป˜ ,์Œ์•…์„ ๋“ค์œผ๋ฉฐ ์˜ค๋Š˜์˜ ํ• ์ผ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”!!!
์‹ค์‹œ๊ฐ„ ๋ฐฉ์†ก์„ ๋ณด๋ฉฐ ์˜ค๋Š˜์˜ ํ• ์ผ์— ์ง‘์ค‘ํ•˜์—ฌ ํ•˜๋‚˜์”ฉ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” โœจ์งœ๋ฆฟํ•จโœจ์„ ๋Š๊ปด๋ณด์„ธ์š”!

์‹œ์ž‘ ๊ฐ€์ด๋“œ

Requirements

For building and running the application you need:

Installation

$ git clone git@github.com:KDT1-FE/KDT5-M2.git
$ cd KDT5-M2

Frontend

$ cd KDT5-M2
$ npm install 
$ npm run dev

Stacks ๐Ÿˆ

Environment

Visual Studio Code Git Github

Config

npm
Vite

Development

JavaScript React MUI HTML5 SASS


ํ™”๋ฉด ๊ตฌ์„ฑ ๐Ÿ“บ

๋ฉ”์ธ ํŽ˜์ด์ง€
image
Todo ๋“ฑ๋ก
image
Todo ์ˆ˜์ •, ์‚ญ์ œ
image
์Œ์•… ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ
image
๋น„๋””์˜ค ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ
image
ํ˜„์žฌ ์˜จ๋„, ๋‚ ์”จ ์•„์ด์ฝ˜ ๊ธฐ๋Šฅ
image

โœจ ๊ตฌํ˜„ ๊ธฐ๋Šฅโœจ

  • ๋‚ ์”จ openApi๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜์— ๋งž๋Š” ๋‚ ์”จ ๋ฐ์ดํ„ฐ์™€ ์˜จ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ์˜จ๋„์— ๋”ฐ๋ผ ๋‚ ์”จ ์ด๋ชจํ‹ฐ์ฝ˜์ด ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ๋˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • todolist๋ฅผ ๋“ฑ๋ก, ์‚ญ์ œ, ์ˆ˜์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • youtube openApi ๋ฅผ ์ด์šฉํ•˜์—ฌ ์Œ์•… ์•„์ด์ฝ˜์„ ํด๋ฆญ์‹œ ๋ชจ๋‹ฌ์ฐฝ์ด ๋œจ๊ณ , ํ˜„์žฌ ์ €์žฅ๋œ playlist ๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • youtube openApi ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๋””์˜ค ์•„์ด์ฝ˜์„ ํด๋ฆญ์‹œ ๋ชจ๋‹ฌ์ฐฝ์ด ๋œจ๊ณ , ํ˜„์žฌ ์ €์žฅ๋œ ์‹ค์‹œ๊ฐ„ viediolist ๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๋กœ์ปฌ ์‹œ๊ฐ„์„ ๊ตฌํ•˜์—ฌ, ํ˜„์žฌ ์‹œ๊ฐ„์ด ์ถœ๋ ฅ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โญ๏ธ 1) ํ•  ์ผ ๋ชฉ๋ก(List)์ด ์ถœ๋ ฅ ๊ธฐ๋Šฅ / ํ•  ์ผ ํ•ญ๋ชฉ(Item)์ถ”๊ฐ€ ๊ธฐ๋Šฅ.

-> input ์ปดํฌ๋„ŒํŠธ์™€ list์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ„์—ˆ๊ธฐ๋•Œ๋ฌธ์— ๋‘˜์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ import ๋˜์–ด์žˆ๋Š” LandingPage์— props๋กœ ์ƒํƒœ๊ฐ’์„ ๋„˜๊ฒจ ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ, input ์ปดํฌ๋„ŒํŠธ ์—๋Š” ๊ธฐ๋ณธ๊ฐ’ {setItem} ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ๊ฒฐ๊ณ  ๊ฐ’์ด ๋‚˜ํƒ€๋‚˜๋Š” result ์ฐฝ์—๋Š” {selectItem} ๊ฐ’์„ ๋„˜๊ฒจ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
-> input์— ํ• ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ onChange ์˜ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋“ฑ๋ก button ์„ ํด๋ฆญํ•˜๋ฉด props.setData ๋ฅผ ์‚ฌ์šฉํ•ด ์ •๋ณด๋ฅผ SearchResult ์˜ ์ปดํฌ๋„ŒํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โ–ถLandingPage.jsx

const [selectItem, setItem] = useState(false);
 <div className='LandingContainer_left'>
  <InputForm setData={setItem}/>
  <TodoResult getItem={selectItem}/>  
 </div> 

โ–ถInput.jsx

-> ์ฒ˜์Œ props๋กœ ๋„˜์–ด์˜จ setData์˜ ๊ธฐ๋ณธ ๊ฐ’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ฑ๋ก๋˜๊ธฐ ์ „ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž„์˜์˜ ๋ณ€์ˆ˜ flag = flase ๊ฐ’์„ ๋„ฃ์–ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
-> ๊ทธํ›„ alert์ฐฝ์—์„œ ๋“ฑ๋ก์— ๋Œ€ํ•œ ์œ ๋ฌด๋ฅผ ๋ฌผ์–ด๋ณธํ›„์— , api๋ฅผ ํ• ๋‹นํ•ด์ฃผ์—ˆ๋˜ ๋ณ€์ˆ˜ todoPost๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ ์ค€ํ›„ props.setData(flag) flag ์ƒํƒœ๋ฅผ true ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

โ–ถTodoResult.jsx

const [dataList, setDatalist] = useState([]);
{dataList.map((item, index) => (


))}

-> TodoResult ํŽ˜์ด์ง€๊ฐ€ ๋งˆ์šดํŠธ ๋˜์—ˆ์„๋•Œ useEffect ๋กœ serarch์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. search ํ•จ์ˆ˜์— getTodo() ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œํ›„์—, setDatalist ์•ˆ์— ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋„ฃ์–ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
-> map์„ ์‚ฌ์šฉํ•ด์„œ dataList ๋ฅผ ๋ฐฐ์—ด list ๋กœ ๋‚˜ํƒ€๋‚ด๊ฒŒ๋” ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โญ๏ธ 2) ํ•  ์ผ ํ•ญ๋ชฉ ์ˆ˜์ •๊ธฐ๋Šฅ.

-> {editingItemId === item.id ? ์˜ ์กฐ๊ฑด์‹์„ ์ฃผ์–ด, ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•˜๋Š” editingItemId ์™€ ํ˜„์žฌ item.id ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด

-> ๋ฆฌ์ŠคํŠธ์ฐฝ์„ input ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , ์žฌ ๋“ฑ๋ก ํ• ์ˆ˜ ์žˆ๋„๋ก ์ฒดํฌ ํ‘œ์‹œ ์•„์ด์ฝ˜์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

-> ์•„์ด๋”” ๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š์„์‹œ (์ˆ˜์ •๋˜๊ธฐ ์ „์˜ ๋ชจ์Šต) flase๊ฐ’์˜ ์œ„์น˜์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
-> ์ˆ˜์ •์ค‘์ผ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š”

โญ๏ธ 3) ์‹œ๊ณ„ ์•„์ด์ฝ˜ hover์‹œ ๋“ฑ๋ก๋œ ๋‚ ์งœ, ์ˆ˜์ •๋œ ๋‚ ์งœ ๋ณด์ด๊ธฐ.

->

โญ๏ธ 4) Youtube OpenApi, recoil ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์•… ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ, ๋น„๋””์˜ค ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ๋…ธ์ถœ ๊ธฐ๋Šฅ

->

โญ๏ธ 5) ๋‚ ์”จ openApi๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜, ํ˜„์žฌ์˜จ๋„ ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ํ˜„์žฌ์œ„์น˜์— ๋Œ€ํ•œ ๋‚ ์”จ ๋ฐ์ดํ„ฐ์— ๋งž๋Š” ์•„์ด์ฝ˜ ์ถœ๋ ฅ.

->


๐ŸŽ‡ ๋Š๋‚€์ 

->

๐ŸŽ‡ ์•„์‰ฌ์šด์ 

->

About

๐ŸŽถ์Œ์•…์„ ๋“ฃ๊ณ , ์‹ค์‹œ๊ฐ„ ์˜์ƒ๊ณผ ํ•จ๊ป˜ ํ• ์ผ์„ ๊ธฐ๋กํ•ด๋ด์š”

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published