Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FE-54๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹  #144

Merged
merged 5 commits into from
Aug 1, 2024

Conversation

jisurk
Copy link
Contributor

@jisurk jisurk commented Aug 1, 2024

๐Ÿ”– Issue Ticket

Ticket

โœ๏ธ Description

โœ… Checklist

PR

  • Branch Convention ํ™•์ธ

epic/ ์—ํ”ฝ, feat/ ํ”ผ์ณ, fix/ ๋ฒ„๊ทธ ์ˆ˜์ •, refactor/ ๊ฐœ์„ 

  • Base Branch ํ™•์ธ
  • ์ ์ ˆํ•œ Label ์ง€์ •
  • Assignee ๋ฐ Reviewer ์ง€์ •

Test

  • ๋กœ์ปฌ ์ž‘๋™ ํ™•์ธ

Additional Notes

  • (์—†์Œ)

jisurk and others added 5 commits July 31, 2024 12:39
* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-31 ์ƒ์„ธํŽ˜์ด์ง€ UI ์ œ์ž‘ (#12)

* FE-31๐Ÿ’„์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐ๋ณธ UI ์ œ์ž‘

* FE-31โ™ป๏ธ textareaํƒœ๊ทธ Textarea์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-31๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ถ”๊ฐ€

---------

Co-authored-by: Woojiseok <[email protected]>

* FE-43 โœจ ์ƒ์„ธํŽ˜์ด์ง€ ์—ํ”ผ๊ทธ๋žจ ์กฐํšŒ  (#18)

* FE-43โœจ ์ƒ์„ธํŽ˜์ด์ง€ Epigram API์—ฐ๋™

* FE-43โšก ๏ธaxios ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

* FE-43๐Ÿ—๏ธ ์ƒ์„ธํŽ˜์ด์ง€ Layout ๊ตฌ์กฐ๊ฐœ์„ 

* FE-43๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-43๐Ÿ”ฅ ์‚ฌ์šฉ์•ˆํ•˜๋Š” ํŒŒ์ผ ์‚ญ์ œ

* FE-43โœ๏ธ ์˜คํƒ€ ์ˆ˜์ •

* FE-43 ๐Ÿ› id์—†์„๋•Œ useQuery์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

* FE-43โ™ป๏ธ  interface->zod ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ (#22)

* FE-43โœจ ์‚ฌ์šฉ์ž ID์— ๋”ฐ๋ฅธ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ํ‘œ์‹œ

* FE-43โœจ ์—ํ”ผ๊ทธ๋žจ ์ƒ์„ธํŽ˜์ด์ง€ ๋”๋ณด๊ธฐ ๋“œ๋กญ๋‹ค์šด ์ถ”๊ฐ€

* FE-43๐Ÿ’„ MoreOptionMenu ์Šคํƒ€์ผ ์ˆ˜์ •

* โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™ (#38)

* FE-42๐Ÿ’„ EpigramComment์•ˆ์— CommentCard ์ถ”๊ฐ€

* FE-42โœจ ์ƒ์„ธํŽ˜์ด์ง€ ๋Œ“๊ธ€ ์กฐํšŒ api์—ฐ๋™

* FE-42โœจ dateUtilํ•จ์ˆ˜ ์ถ”๊ฐ€, ์ ์šฉ

* FE-42โœจ ๋Œ“๊ธ€์ž‘์„ฑ์ž๊ฐ€ ๋ณธ์ธ์ธ์ง€ ํŒ๋ณ„ํ•ด ์ˆ˜์ •,์‚ญ์ œ ํ‘œ์‹œ

* FE-42๐Ÿ”ฅ ์•ˆ์“ฐ๋Š” ํ•จ์ˆ˜ ์‚ญ์ œ

* FE-42๐Ÿ’„ EpigramComment ๋ฐฐ๊ฒฝ์ƒ‰ ์ˆ˜์ •

* FE-42โ™ป๏ธ CommetCard ๊ตฌ์กฐ ๊ฐœ์„ 

* FE-42๐Ÿ’„์ž‘์„ฑ๋œ ๋Œ“๊ธ€ ์—†์„๋•Œ UI ์ถ”๊ฐ€

* FE-42๐Ÿ› ๋Œ“๊ธ€์ˆ˜๋ฅผ  length->totalCount๋กœ ๋ณ€๊ฒฝ

* FE-42โ™ป๏ธ  useEpigramCommentHook ๋ถ„๋ฆฌ

* FE-42โœจ ๋Œ“๊ธ€ ๋ชฉ๋ก์— ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ

* FE-42๐Ÿ’ก ์ฃผ์„ ์ถ”๊ฐ€

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™ (#78)

* FE-76โ™ป๏ธ  ๋Œ“๊ธ€ textarea ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-76๐Ÿ’„ switch ์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-76โœจ textarea focus out ๋ฒ„ํŠผ ์ถ”๊ฐ€

* FE-76โœจ postComment schema,interface ์ถ”๊ฐ€, ์ˆ˜์ •

* FE-76โœจ  ๋Œ“๊ธ€ ์ž‘์„ฑ api ์—ฐ๋™

* FE-76๐Ÿ› import error ํ•ด๊ฒฐ

* FE-76โœจ  switch๋กœ ๋Œ“๊ธ€ ๊ณต๊ฐœ,๋น„๊ณต๊ฐœ ์„ค์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-76โœจ ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ image๋ฅผ ์œ ์ €๊ฐ€ ๋“ฑ๋กํ•œ image๋กœ ๋ณ€๊ฒฝ

* FE-76๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™ (#80)

* FE-45โœจ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ api ์—ฐ๋™

* FE-45๐Ÿ’„ ์—ํ”ผ๊ทธ๋žจ ์‚ญ์ œ ๋ชจ๋‹ฌ ์ถ”๊ฐ€

* FE-45๐Ÿ’„ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ˆ˜์ •

* FE-45โ™ป๏ธ DeleteAlertModal ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-45๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-78โœจ๋Œ“๊ธ€ ์ˆ˜์ •,์‚ญ์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#91)

* FE-78๐Ÿ’„ ๋ฏธํŠธ๋ณผ์•„์ด์ฝ˜ ui์ˆ˜์ •

* FE-78โœจ ๋Œ“๊ธ€ ์‚ญ์ œ ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ๋Œ“๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78โœจ  ๋Œ“๊ธ€ ์ˆ˜์ • apiํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-78โœจ ๋Œ“๊ธ€ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-78๐Ÿ“ ์ฃผ์„ ์ถ”๊ฐ€

* FE-78๐Ÿ’„ EpigramComment height์ˆ˜์ •

* FE-78๐Ÿ› build error ํ•ด๊ฒฐ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#97)

* FE-44๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-44โœจ  ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-44โœจ ์—ํ”ผ๊ทธ๋žจ ์ˆ˜์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-44โ™ป๏ธ ์ €์ž์„ ํƒ๊ด€๋ จ ํ•จ์ˆ˜ useAuthorSelectionํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-44๐Ÿ’„ EditEpigram,AddEpigram UI์ˆ˜์ •

* FE-44๐Ÿ› ์ถœ์ฒ˜ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-44โœจ ์ž‘์„ฑ์ž ๋ณธ์ธ์ด ์•„๋‹๋•Œ ์ˆ˜์ •ํŽ˜์ด์ง€ ์ ‘๊ทผ ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-44๐Ÿ› ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฒ„๊ทธ ์ˆ˜์ •

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-41โœจ์ข‹์•„์š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#103)

* FE-41โ™ป๏ธ  httpClien์—t interceoptor ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” api ํ•จ์ˆ˜ ์ถ”๊ฐ€

* FE-41โœจ  ์ข‹์•„์š” ๊ธฐ๋Šฅ Layout์— ์ ์šฉ

* FE-41โœจ Url Link๋ฒ„ํŠผ ์ƒ์„ฑ

* FE-41๐Ÿ’„์ข‹์•„์š”,link๋ฒ„ํŠผ ์Šคํƒ€์ผ ์ˆ˜์ •

* FE-41๐Ÿ› import ์—๋Ÿฌ ํ•ด๊ฒฐ

* FE-41โ™ป๏ธ ๊ธฐ์กดheader-> Header์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

---------

Co-authored-by: ์šฐ์ง€์„ <[email protected]>

* FE-54๐Ÿ› ์˜คํƒ€ ์ˆ˜์ •

* build error ํ•ด๊ฒฐ

* FE-54๐Ÿ› build errorํ•ด๊ฒฐ

* Fe-54โ™ป๏ธ์ƒ์„ธํŽ˜์ด์ง€ ๋ฆฌํŒฉํ† ๋ง (#131)

* FE-54๐Ÿšš ์ƒ์„ธํŽ˜์ด์ง€,์ˆ˜์ •ํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ๋ณ€๊ฒฝ

* FE-54โ™ป๏ธ  ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” url ์ˆ˜์ •

* FE-54๐Ÿšš ์ž‘์„ฑํŽ˜์ด์ง€ ํŽ˜์ด์ง€ ํด๋” ์ƒ์„ฑ

---------

Co-authored-by: Woojiseok <[email protected]>
* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :lipstick: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* :lipstick: ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* :lipstick: ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* :sparkles: ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* :heavy_plus_sign: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* :lipstick: ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* :fire: AuthLayout ์‚ญ์ œ

* :art: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* :truck: ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :sparkles: ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* :sparkles: useRegisterMutation hook ์ƒ์„ฑ

* :zap: ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :zap: isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :twisted_rightwards_arrows: ์ถฉ๋Œ ํ•ด๊ฒฐ

* :bug: postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* :bug: postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* :wrench: lint ์ˆ˜์ •

* :sparkles: oauth api ์ƒ์„ฑ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* :sparkles: ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* :sparkles: useKakaoLogin mutation hook ์ƒ์„ฑ

* :zap: ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* :recycle: ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ๋จธ์ง€ ์š”์ฒญ (#92)

* FE-52  โœจ์—ํ”ผ๊ทธ๋žจ ๋ชฉ๋ก์กฐํšŒ API (#34)

* FE-52 feat: api schema ์ž‘์„ฑ

* FE-52 โœจfeat: getEpigrams api ์ž‘์„ฑ

* FE-522 โœจfix:  default export๋กœ ๋ณ€๊ฒฝ

* FE-52 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* FE-52 โœจfeat: BaseUrl, TeamID ์ƒ์ˆ˜ ์ถ”๊ฐ€ ๋ฐ axios baseTRL ์ˆ˜์ •

* FE-52 โœจfix: schema ๋ฐ apis ํŒŒ์ผ ์ˆ˜์ •

* FE-52 โœจtest:  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: .envํŒŒ์ผ ์ƒ์„ฑ ๋ฐ BaseURL ์ˆ˜์ •

* FE-52 โœจfix: limit ํƒ€์ž…  ์ˆ˜์ •(optional ์‚ญ์ œ)

* FE-52 โœจtext: ํ…Œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: api GET์š”์ฒญ ์ฃผ์†Œ ์ˆ˜์ •('epigrams' -> '/epigrams')

* FE-53 :sparkles: ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 :sparkles: getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 :sparkles: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 :sparkles: ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 :hammer: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 :truck: ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 :sparkles: useMutation ํ›… ์‚ฌ์šฉ

* FE-53 :memo: EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 :fire: api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 :hammer: useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------





* FE-57 :sparkles: ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------








* FE-32 ๐Ÿ”€๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋ฉ”์ธ ๋จธ์ง€ (#107)

* ๐Ÿ’„FE-33 ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ UI (#10)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------



* :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* :lipstick: Feat: shadcn-ui init

* :lipstick: Feat: add toast ui

* Feat: add textarea ui

* Feat: add switch ui

* Feat: add radio-group ui

* Feat: add label ui

* Feat: add input ui

* Feat: add form ui

* Feat: add button ui

* Feat: add dropdown-menu ui

* Feat: add card ui

* Feat: add badge ui

* Feat: add avatar ui

* Feat: add alert dialog ui

* Chore: add eslint rules

* Chore: add shadcn ui

* โœจFeat: SearchBar UI ์ดˆ์•ˆ ์™„์„ฑ

* styles: tailwind css ํฐํŠธ ์‚ฌ์ด์ฆˆ ์ถ”๊ฐ€

* feat: RecentSearches UI ์ดˆ์•ˆ ์™„์„ฑ

* ๏ฟฝstyles: SearchResults UI ์ˆ˜์ •

* ๏ฟฝstyles: RecentSearches UI ์ˆ˜์ •

* โœจstyles: ๋ฐ˜์‘ํ˜•  UI ์ถ”๊ฐ€

* FE-33 fix: build ์˜ค๋ฅ˜ ์ˆ˜์ • ์ค‘

* FE-33 fix: build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* FE-33 fix: build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* FE-33 fix: build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* fix: build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------





* FE-65  โœจ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด ๊ธฐ๋Šฅ (#51)

* FE-65 โœจfeat: ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-65 โœจfeat: ๊ฒ€์ƒ‰๋ฐ”์™€ ์—ฐ๋™ํ•˜์—ฌ ์ฆ‰์‹œ ๋ฐ˜์˜๋˜๋„๋ก ์ˆ˜์ •

* FE-65 โœจfeat: debounce๋ฅผ ์œ„ํ•œ lodash ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

* FE-65 โœจfeat: debounce ๊ธฐ๋Šฅ ์ ์šฉ(++lodash ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

* FE-65 โœจfeat: useEffectt๋กœ debouncedSearchํ•จ์ˆ˜ ์˜์กด์„ฑ ์„ค์ •

* FE-65 โœจfeat: useCallback ๋Œ€์‹  useRef๋กœ ๋ณ€๊ฒฝ

* FE-65 โœจfix:: debounce ๊ธฐ๋Šฅ ์ œ๊ฑฐ(๋ถˆํ•„์š”)

* FE-65 โœจfeat:  focus๋  ๋•Œ placeholder ์‚ฌ๋ผ์ง€๊ฒŒ ์ˆ˜์ • ๋ฐ UI ์ˆ˜์ •

* FE-65 โœจfeat:  isInitialMount ์„ ์–ธ ๋ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-65 โœจfix: ์ฃผ์„ ์ˆ˜์ •

* FE-65 โœจfeat: ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด ํด๋ฆญ ์‹œ ๊ทธ ๊ฒ€์ƒ‰์–ด๋กœ ๊ฒ€์ƒ‰๋˜๋Š”  ๊ธฐ๋Šฅ

* FE-65 styles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-74  โœจ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ธฐ๋Šฅ (#73)

* FE-74 fix: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” lodash ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ญ์ œ

* FE-74 โœจfeat: ํ…Œ์ŠคํŠธ ์šฉ api ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ

* FE-74 โœจfeat: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-74 โœจfix: ์ค‘๋ณต๋œ key, href ์ œ๊ฑฐ ๋ฐ ๊ทœ์น™ ๋ฌด์‹œ ์ฃผ์„ ์ถ”๊ฐ€

* FE-74 โœจtest: ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

* FE-74 โœจfeat: ๊ฒ€์ƒ‰์–ด ํ•˜์ด๋ผ์ดํŒ… ๋ฐ ์ˆœ์„œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-74 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ api ํŒŒ์ผ ์‚ญ์ œ

* FE-74 โœจstyles:  ์ฃผ์„ ์ถ”๊ฐ€

* FE-74 โœจfix: ๋ฉ˜ํ† ๋ง  ๋‚ด์šฉ ์ฃผ์„์œผ๋กœ  ์ถ”๊ฐ€

* FE-32 ๐Ÿ”€ epic๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#77)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------



* :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* :lipstick: Feat: shadcn-ui init

* :lipstick: Feat: add toast ui

* Feat: add textarea ui

* Feat: add switch ui

* Feat: add radio-group ui

* Feat: add label ui

* Feat: add input ui

* Feat: add form ui

* Feat: add button ui

* Feat: add dropdown-menu ui

* Feat: add card ui

* Feat: add badge ui

* Feat: add avatar ui

* Feat: add alert dialog ui

* Chore: add eslint rules

* Chore: add shadcn ui

* FE-48 ๐Ÿ“ฐ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ face emoji svg ํŒŒ์ผ ์ƒ์„ฑ

* FE-48 :art: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 :lipstick: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 :sparkles: EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 :fire: ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 :hammer: EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :lipstick: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 :fire: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 :fire: ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 :sparkles: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 :fire: ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 :lips: ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-50 โœจ๊ณต์šฉ์ปดํฌ๋„ŒํŠธ ํ—ค๋” ๊ตฌํ˜„ (#19)

* FE-5050โœจ feat:  ํ—ค๋” ๋ถ€๋ถ„ ๊ธฐ๋Šฅ ์ดˆ์•ˆ

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”์ถ”๊ฐ€

* FE-5050 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfeat: ๊ณต์œ  ์ด๋ฏธ์ง€ ์ถ”๊ฐ€ ๋ฐ ํ˜„์žฌ URL ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-50 โœจstyles: U์…‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋น ์ง€๋”๋ผ๋„ ์•ˆ๋ฌด๋„ˆ์ง€๊ฒŒ UI ์ˆ˜์ •

* FE-50 โœจcomment:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfix:  ํ•จ์ˆ˜๋ช… ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* FE-50 โœจfix: types ํด๋”์— interface ์ •์˜

* FE-50 fix: build ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 :truck: ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 :fire: ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

---------







* FE-75  โœจ๋ฌดํ•œ ์Šคํฌ๋กค, ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ URL์— ์ €์žฅ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#104)

* FE-75 โœจstyles: tailwind .config ํŒŒ์ผ ๋ฉ”์ธ๊ณผ ํ†ตํ•ฉ

* FE-75 โœจfeat: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ Header ์ถ”๊ฐ€

* FE-75 โœจrefactor: useMemo ์‚ฌ์šฉ

* FE-75 โœจfeat: URL์— ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ  ์ €์žฅ

* FE-75 โœจstyles: ๋กœ๋”ฉ ์Šคํƒ€์ผ ๊ตฌํ˜„

* FE-75 โœจfeat: ์‹ค์ œ api ์ถ”๊ฐ€

* FE-75 โœจfeat: api ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-75 โœจfeat: ๋ฌดํ•œ ์Šคํฌ๋กค ๊ตฌํ˜„

* FE-75 โœจfix: ์˜์กด์„ฑ ๋ฐฐ์—ด์—์„œ ๋กœ๋”ฉ ์ƒํƒœ ์ œ๊ฑฐ

* FE-75 โœจstyles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-75 โœจfeat:: ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์ตœ๊ทผ ๊ฒ€์ƒ‰์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€๊ฒฝ

* FE-75 โœจfix: ๊ฒ€์ƒ‰ ์ „ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€  ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ์ˆ˜์ •

* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#105)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------



* :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* :lipstick: Feat: shadcn-ui init

* :lipstick: Feat: add toast ui

* Feat: add textarea ui

* Feat: add switch ui

* Feat: add radio-group ui

* Feat: add label ui

* Feat: add input ui

* Feat: add form ui

* Feat: add button ui

* Feat: add dropdown-menu ui

* Feat: add card ui

* Feat: add badge ui

* Feat: add avatar ui

* Feat: add alert dialog ui

* Chore: add eslint rules

* Chore: add shadcn ui

* FE-48 ๐Ÿ“ฐ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ face emoji svg ํŒŒ์ผ ์ƒ์„ฑ

* FE-48 :art: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 :lipstick: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 :sparkles: EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 :fire: ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 :hammer: EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :lipstick: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 :fire: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 :fire: ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 :sparkles: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 :fire: ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 :lips: ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-50 โœจ๊ณต์šฉ์ปดํฌ๋„ŒํŠธ ํ—ค๋” ๊ตฌํ˜„ (#19)

* FE-5050โœจ feat:  ํ—ค๋” ๋ถ€๋ถ„ ๊ธฐ๋Šฅ ์ดˆ์•ˆ

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”์ถ”๊ฐ€

* FE-5050 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfeat: ๊ณต์œ  ์ด๋ฏธ์ง€ ์ถ”๊ฐ€ ๋ฐ ํ˜„์žฌ URL ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-50 โœจstyles: U์…‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋น ์ง€๋”๋ผ๋„ ์•ˆ๋ฌด๋„ˆ์ง€๊ฒŒ UI ์ˆ˜์ •

* FE-50 โœจcomment:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfix:  ํ•จ์ˆ˜๋ช… ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* FE-50 โœจfix: types ํด๋”์— interface ์ •์˜

* FE-50 fix: build ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 :truck: ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 :fire: ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :lipstick: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* :lipstick: ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* :lipstick: ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* :sparkles: ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* :heavy_plus_sign: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* :lipstick: ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* :fire: AuthLayout ์‚ญ์ œ

* :art: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* :truck: ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :sparkles: ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* :sparkles: useRegisterMutation hook ์ƒ์„ฑ

* :zap: ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :zap: isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :twisted_rightwards_arrows: ์ถฉ๋Œ ํ•ด๊ฒฐ

* :bug: postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* :bug: postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* :wrench: lint ์ˆ˜์ •

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* :sparkles: oauth api ์ƒ์„ฑ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* :sparkles: ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* :sparkles: useKakaoLogin mutation hook ์ƒ์„ฑ

* :zap: ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* :recycle: ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ๋จธ์ง€ ์š”์ฒญ (#92)

* FE-52  โœจ์—ํ”ผ๊ทธ๋žจ ๋ชฉ๋ก์กฐํšŒ API (#34)

* FE-52 feat: api schema ์ž‘์„ฑ

* FE-52 โœจfeat: getEpigrams api ์ž‘์„ฑ

* FE-522 โœจfix:  default export๋กœ ๋ณ€๊ฒฝ

* FE-52 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* FE-52 โœจfeat: BaseUrl, TeamID ์ƒ์ˆ˜ ์ถ”๊ฐ€ ๋ฐ axios baseTRL ์ˆ˜์ •

* FE-52 โœจfix: schema ๋ฐ apis ํŒŒ์ผ ์ˆ˜์ •

* FE-52 โœจtest:  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: .envํŒŒ์ผ ์ƒ์„ฑ ๋ฐ BaseURL ์ˆ˜์ •

* FE-52 โœจfix: limit ํƒ€์ž…  ์ˆ˜์ •(optional ์‚ญ์ œ)

* FE-52 โœจtext: ํ…Œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: api GET์š”์ฒญ ์ฃผ์†Œ ์ˆ˜์ •('epigrams' -> '/epigrams')

* FE-53 :sparkles: ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 :sparkles: getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 :sparkles: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 :sparkles: ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 :hammer: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 :truck: ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 :sparkles: useMutation ํ›… ์‚ฌ์šฉ

* FE-53 :memo: EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 :fire: api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 :hammer: useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------





* FE-57 :sparkles: ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------








* .http ํŒŒ์ผ ์‚ญ์ œ

---------










* FE-32 ๐Ÿ”€๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#110)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------



* :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* :lipstick: Feat: shadcn-ui init

* :lipstick: Feat: add toast ui

* Feat: add textarea ui

* Feat: add switch ui

* Feat: add radio-group ui

* Feat: add label ui

* Feat: add input ui

* Feat: add form ui

* Feat: add button ui

* Feat: add dropdown-menu ui

* Feat: add card ui

* Feat: add badge ui

* Feat: add avatar ui

* Feat: add alert dialog ui

* Chore: add eslint rules

* Chore: add shadcn ui

* FE-48 ๐Ÿ“ฐ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ face emoji svg ํŒŒ์ผ ์ƒ์„ฑ

* FE-48 :art: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 :lipstick: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 :sparkles: EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 :fire: ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 :hammer: EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :lipstick: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 :fire: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 :fire: ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 :sparkles: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 :fire: ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 :lips: ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-50 โœจ๊ณต์šฉ์ปดํฌ๋„ŒํŠธ ํ—ค๋” ๊ตฌํ˜„ (#19)

* FE-5050โœจ feat:  ํ—ค๋” ๋ถ€๋ถ„ ๊ธฐ๋Šฅ ์ดˆ์•ˆ

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”์ถ”๊ฐ€

* FE-5050 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfeat: ๊ณต์œ  ์ด๋ฏธ์ง€ ์ถ”๊ฐ€ ๋ฐ ํ˜„์žฌ URL ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-50 โœจstyles: U์…‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋น ์ง€๋”๋ผ๋„ ์•ˆ๋ฌด๋„ˆ์ง€๊ฒŒ UI ์ˆ˜์ •

* FE-50 โœจcomment:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfix:  ํ•จ์ˆ˜๋ช… ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* FE-50 โœจfix: types ํด๋”์— interface ์ •์˜

* FE-50 fix: build ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 :truck: ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 :fire: ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :lipstick: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* :lipstick: ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* :lipstick: ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* :sparkles: ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* :heavy_plus_sign: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* :lipstick: ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* :fire: AuthLayout ์‚ญ์ œ

* :art: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* :truck: ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :sparkles: ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* :sparkles: useRegisterMutation hook ์ƒ์„ฑ

* :zap: ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :zap: isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :twisted_rightwards_arrows: ์ถฉ๋Œ ํ•ด๊ฒฐ

* :bug: postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* :bug: postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* :wrench: lint ์ˆ˜์ •

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* build ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ์ค‘

* :sparkles: oauth api ์ƒ์„ฑ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* :sparkles: ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* :sparkles: useKakaoLogin mutation hook ์ƒ์„ฑ

* :zap: ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* :recycle: ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ๋จธ์ง€ ์š”์ฒญ (#92)

* FE-52  โœจ์—ํ”ผ๊ทธ๋žจ ๋ชฉ๋ก์กฐํšŒ API (#34)

* FE-52 feat: api schema ์ž‘์„ฑ

* FE-52 โœจfeat: getEpigrams api ์ž‘์„ฑ

* FE-522 โœจfix:  default export๋กœ ๋ณ€๊ฒฝ

* FE-52 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* FE-52 โœจfeat: BaseUrl, TeamID ์ƒ์ˆ˜ ์ถ”๊ฐ€ ๋ฐ axios baseTRL ์ˆ˜์ •

* FE-52 โœจfix: schema ๋ฐ apis ํŒŒ์ผ ์ˆ˜์ •

* FE-52 โœจtest:  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: .envํŒŒ์ผ ์ƒ์„ฑ ๋ฐ BaseURL ์ˆ˜์ •

* FE-52 โœจfix: limit ํƒ€์ž…  ์ˆ˜์ •(optional ์‚ญ์ œ)

* FE-52 โœจtext: ํ…Œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: api GET์š”์ฒญ ์ฃผ์†Œ ์ˆ˜์ •('epigrams' -> '/epigrams')

* FE-53 :sparkles: ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 :sparkles: getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 :sparkles: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 :sparkles: ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 :hammer: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 :truck: ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 :sparkles: useMutation ํ›… ์‚ฌ์šฉ

* FE-53 :memo: EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 :fire: api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 :hammer: useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------





* FE-57 :sparkles: ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------








* .http ํŒŒ์ผ ์‚ญ์ œ

* merge main

---------










* FE-32 ๊ฒ€์ƒ‰ํŽ˜์ด์ง€ ๋ฉ”์ธ ์ถฉ๋Œ ์ˆ˜์ • (#112)

* .nvmrc ๋ฒ„์ „ ์ˆ˜์ •

* ํฐํŠธ ๋ฐ ๊ณต์šฉ์ปฌ๋Ÿฌ ์ถ”๊ฐ€ (#6)

* font-family ์ถ”๊ฐ€

* tailwind common color ์ถ”๊ฐ€

* color ๋ช… ๋ณ€๊ฒฝ

* lang ์ˆ˜์ •

---------



* :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ shadcn ui ์ถ”๊ฐ€ (#7)

* :lipstick: Feat: shadcn-ui init

* :lipstick: Feat: add toast ui

* Feat: add textarea ui

* Feat: add switch ui

* Feat: add radio-group ui

* Feat: add label ui

* Feat: add input ui

* Feat: add form ui

* Feat: add button ui

* Feat: add dropdown-menu ui

* Feat: add card ui

* Feat: add badge ui

* Feat: add avatar ui

* Feat: add alert dialog ui

* Chore: add eslint rules

* Chore: add shadcn ui

* FE-48 ๐Ÿ“ฐ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ face emoji svg ํŒŒ์ผ ์ƒ์„ฑ

* FE-48 :art: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ƒ์„ฑ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค ์„ค์ •

* FE-48 :lipstick: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ์ปดํฌ๋„ŒํŠธ ui ์ˆ˜์ •

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์นด๋“œ ํด๋ฆญ ์ด๋ฒคํŠธ ๊ตฌํ˜„

- EmotionIconCardContainer๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ด€๋ฆฌ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ (Clicked<->UnClicked)

* FE-48 ๐Ÿ“ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

๋ช…ํ™•ํ•œ ์˜๋ฏธ ์ „๋‹ฌ์„ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-48 :sparkles: ๊ฐ์ • ์ด๋ชจํ‹ฐ์ฝ˜ ์ƒํƒœ ๋ณ€ํ™” ๋™๊ธฐํ™” ๊ตฌ

๊ฐ์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „ํ™˜๋˜๊ณ , ๋‹ค๋ฅธ ์นด๋“œ์˜ ์ƒํƒœ๋„ ๋™๊ธฐํ™”๋˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-48 :sparkles: EmotionSelector ์ปดํฌ๋„ŒํŠธ ๋™์  ํฌ๊ธฐ ๋ณ€๊ฒฝ ๊ตฌํ˜„

useMediaQuery ํ›… ์ƒ์„ฑ: ํ™”๋ฉด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ

* FE-48 :fire: ์ถœ๋ ฅ ํ™•์ธ์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ

* FE-48 :hammer: EmotionTypes ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜

emotion ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ตฌํ˜„

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ui ๊ตฌํ˜„

tailwind css๋ฅผ ํ™•์žฅํ•ด ์ค„๋ฌด๋Šฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ๊ตฌํ˜„

* FE-59 :sparkles: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๋ฐ˜์‘ํ˜„ ๋””์ž์ธ ๊ตฌํ˜„

* FE-59 :lipstick: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ๊ธ€์”จ์ฒด ์ ์šฉ

* FE-59 :fire: ์—ํ”ผ๊ทธ๋žจ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-59 :fire: ํ…Œ์ŠคํŠธ ํ”์  ์‚ญ์ œ

* FE-58 :sparkles: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋Œ“๊ธ€ ์นด๋“œ ๊ธฐ๋ณธ ui ๊ตฌํ˜„

* FE-58 :lipstick: ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ์ ์šฉ

* FE-58 :fire: ๋Œ“๊ธ€ ์นด๋“œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-58 :lips: ๋Œ“๊ธ€ ์นด๋“œ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค, ์Šคํƒ€์ผ ๋ถ„๋ฆฌ

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-50 โœจ๊ณต์šฉ์ปดํฌ๋„ŒํŠธ ํ—ค๋” ๊ตฌํ˜„ (#19)

* FE-5050โœจ feat:  ํ—ค๋” ๋ถ€๋ถ„ ๊ธฐ๋Šฅ ์ดˆ์•ˆ

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”๊ฐ€

* FE-50 โœจstyles: ์ฃผ์„ ์ถ”์ถ”๊ฐ€

* FE-5050 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfeat: ๊ณต์œ  ์ด๋ฏธ์ง€ ์ถ”๊ฐ€ ๋ฐ ํ˜„์žฌ URL ๋ณต์‚ฌ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-50 โœจstyles: U์…‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋น ์ง€๋”๋ผ๋„ ์•ˆ๋ฌด๋„ˆ์ง€๊ฒŒ UI ์ˆ˜์ •

* FE-50 โœจcomment:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€

* FE-50 โœจfix: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-50 โœจfix:  ํ•จ์ˆ˜๋ช… ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ

* FE-50 โœจfix: types ํด๋”์— interface ์ •์˜

* FE-50 fix: build ์˜ค๋ฅ˜ ์ˆ˜์ •

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* FE-61 ๐Ÿ”จ eslint ๊ทœ์น™ ์ˆ˜์ •

* FE-61 ๐Ÿ”ฅ InteractiveEmotionIconCard ์‚ญ์ œ

๋‹จ์ˆœ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ๋ฐ–์— ์—†๋Š” ์ปดํฌ๋„ŒํŠธ ์‚ญ์ œ / emotionselector์—์„œ emotioniconcard๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •

* FE-61 ๐Ÿ”จ EpigramCard ์‚ฌ์ด์ฆˆ ์žฌ์ •์˜

base -> xs๋กœ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ณต์šฉ ์ปดํฌ๋„ŒํŠธ ํ…Œ์ŠคํŠธ ํ…์ŠคํŠธ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 ๐Ÿ”จ CommentCard ํƒ€์ž… ๋‚ด๋ถ€ ์ •์˜

* FE-61 :truck: ๊ฐ์ • ์นด๋“œ ํด๋” ๊ตฌ์กฐ ๋ณ€๊ฒฝ

* FE-61 ๐Ÿ“ ๊ฐ์ • ์นด๋“œ, ๊ฐ์ • ์…€๋ ‰ํ„ฐ ์ฃผ์„ ์ถ”๊ฐ€

* FE-61 :fire: ๋Œ“๊ธ€ ์นด๋“œ ๋””ํดํŠธ ํ”„๋กญ ์‚ญ์ œ

* FE-62 โœจfix:  ์ฃผ์„ ์ˆ˜์ • ๋ฐ ํƒ€์ž… ์ˆ˜์ • (#27)

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :lipstick: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* :lipstick: ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* :lipstick: ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* :sparkles: ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* :heavy_plus_sign: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* :lipstick: ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* :fire: AuthLayout ์‚ญ์ œ

* :art: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* :truck: ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :sparkles: ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* :sparkles: useRegisterMutation hook ์ƒ์„ฑ

* :zap: ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :zap: isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :twisted_rightwards_arrows: ์ถฉ๋Œ ํ•ด๊ฒฐ

* :bug: postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* :bug: postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* :wrench: lint ์ˆ˜์ •

* :sparkles: oauth api ์ƒ์„ฑ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* :sparkles: ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* :sparkles: useKakaoLogin mutation hook ์ƒ์„ฑ

* :zap: ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* :recycle: ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ๋จธ์ง€ ์š”์ฒญ (#92)

* FE-52  โœจ์—ํ”ผ๊ทธ๋žจ ๋ชฉ๋ก์กฐํšŒ API (#34)

* FE-52 feat: api schema ์ž‘์„ฑ

* FE-52 โœจfeat: getEpigrams api ์ž‘์„ฑ

* FE-522 โœจfix:  default export๋กœ ๋ณ€๊ฒฝ

* FE-52 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* FE-52 โœจfeat: BaseUrl, TeamID ์ƒ์ˆ˜ ์ถ”๊ฐ€ ๋ฐ axios baseTRL ์ˆ˜์ •

* FE-52 โœจfix: schema ๋ฐ apis ํŒŒ์ผ ์ˆ˜์ •

* FE-52 โœจtest:  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: .envํŒŒ์ผ ์ƒ์„ฑ ๋ฐ BaseURL ์ˆ˜์ •

* FE-52 โœจfix: limit ํƒ€์ž…  ์ˆ˜์ •(optional ์‚ญ์ œ)

* FE-52 โœจtext: ํ…Œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: api GET์š”์ฒญ ์ฃผ์†Œ ์ˆ˜์ •('epigrams' -> '/epigrams')

* FE-53 :sparkles: ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 :sparkles: getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 :sparkles: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 :sparkles: ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 :hammer: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 :truck: ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 :sparkles: useMutation ํ›… ์‚ฌ์šฉ

* FE-53 :memo: EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 :fire: api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 :hammer: useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API

---------





* FE-57 :sparkles: ๋Œ“๊ธ€ ์‚ญ์ œ API (#88)

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (#93)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ์ตœ์‹ ํ™” (์ถฉ๋Œ์ˆ˜์ •) (#98)

---------








---------










---------










* FE-27 :twisted_rightwards_arrows: ๋งˆ์ดํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#100)

* FE-34 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ํ”„๋กœํ•„ ์ˆ˜์ • ๊ธฐ๋Šฅ (#53)

* FE-34 :lipstick: ๋งˆ์ดํŽ˜์ด์ง€ UI ์ดˆ๊ธฐ์ž‘์—…

* FE-34 :sparkles: ๋‚ด ์ •๋ณด ์กฐํšŒ API ์—ฐ๋™

* FE-34 :lipstick: shadcn/ui Dialog ์„ค์น˜

* FE-34 :sparkles: ํ”„๋กœํ•„ ์ˆ˜์ • API ์—ฐ๋™

* FE-34 :sparkles: ์ด๋ฏธ์ง€ ์‹คํŒจ ํ† ์ŠคํŠธ ์ถ”๊ฐ€

* FE-36 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ์บ˜๋ฆฐ๋” ์ถœ๋ ฅ ํ•จ์ˆ˜ (#58)

* FE-36 :lipstick: ๊ฐ์ •๋‹ฌ๋ ฅ UI

* FE-36 :sparkles: ์บ˜๋ฆฐ๋” ํ•จ์ˆ˜ ์ƒ์„ฑ

* FE-36 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐ์ •๋‹ฌ๋ ฅ (#65)

* FE-36 :lipstick: ๊ฐ์ •๋‹ฌ๋ ฅ UI

* FE-36 :sparkles: ์บ˜๋ฆฐ๋” ํ•จ์ˆ˜ ์ƒ์„ฑ

* FE-36 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐ์ •๋‹ฌ๋ ฅ: ์˜ค๋Š˜ ๋‚ ์งœ ํ‘œ์‹œ

* FE-36 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ์›” ๋ณ„ ๊ฐ์ •๋กœ๊ทธ ์กฐํšŒ API ์—ฐ๋™

* FE-36 :sparkles: ์›”๋ณ„ ๊ฐ์ • ๋กœ๊ทธ ํ•ด๋‹น ๋‚ ์งœ์— ์ถœ๋ ฅ

* FE-36 :lipstick: ๋‹ฌ๋ ฅ css ์ˆ˜์ •

* FE-36 :art: ๋งˆ์ดํŽ˜์ด์ง€ ์บ˜๋ฆฐ๋” ํ—ค๋” ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ

* FE-36 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐ์ •๋‹ฌ๋ ฅ ํ•„ํ„ฐ๊ธฐ๋Šฅ

* FE-27 :twisted_rightwards_arrows: ์—ํ”ฝ ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#81)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-27 :twisted_rightwards_arrows: ๋งˆ์ดํŽ˜์ด์ง€ ์—ํ”ฝ ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#85)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-27 :twisted_rightwards_arrows: ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#86)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



---------





* FE-37 :sparkles: ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐ์ •์ฐจํŠธ (#89)

* FE-37 :recycle: ์›”๋ณ„ ๊ฐ์ •๋กœ๊ทธ ์กฐํšŒ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง

* FE-37 :sparkles: ๊ฐ์ • ์ฐจํŠธ

* FE-37 :hammer: ์ƒ์ˆ˜ ์ปจ๋ฒค์…˜ ์ˆ˜์ •

* FE-27 :twisted_rightwards_arrows: ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” (#99)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :lipstick: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ถ”๊ฐ€

* :lipstick: ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋กœ๊ณ  ์ถ”๊ฐ€

* :lipstick: ํšŒ์›๊ฐ€์ž… ui ์ถ”๊ฐ€

* :sparkles: ํšŒ์›๊ฐ€์ž… ์Šคํ‚ค๋งˆ ์ •์˜

* :heavy_plus_sign: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์— ์Šคํ‚ค๋งˆ ์ ์šฉ

* :lipstick: ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋œฐ ๋•Œ ๋ผ๋ฒจ, ์ธํ’‹๋„ ๊ฐ™์€ ์—๋Ÿฌ ์ƒ‰๊น” ์ถ”๊ฐ€

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฒ„ํŠผ์˜ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ

* :memo: ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋”ฐ๋ฅธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ ์ƒ‰์ƒ ์ฒ˜๋ฆฌ

* :fire: AuthLayout ์‚ญ์ œ

* :art: ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋ธŒ๋ผ์šฐ์ € ํ™•๋Œ€์‹œ ui ๊นจ์ง ์ˆ˜์ •

* :truck: ์ •๊ทœํ‘œํ˜„์‹ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :sparkles: ํšŒ์›๊ฐ€์ž… ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ํšŒ์›๊ฐ€์ž… api ์ƒ์„ฑ

* :sparkles: useRegisterMutation hook ์ƒ์„ฑ

* :zap: ํšŒ์›๊ฐ€์ž… ํผ์— mutaion hook ์ ์šฉ

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :zap: isAxiosError๋กœ ๋ณ€๊ฒฝ

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* :twisted_rightwards_arrows: ์ถฉ๋Œ ํ•ด๊ฒฐ

* :bug: postSignup ํ•จ์ˆ˜ ์ถ”๊ฐ€

* :bug: postSignin ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

* :wrench: lint ์ˆ˜์ •

* :sparkles: oauth api ์ƒ์„ฑ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€๊ฒฝ

* FE-72โœจ ํƒœ๊ทธ ์ €์žฅ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™

* FE-72โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก์‹œ ํ•ด๋‹น ์—ํ”ผ๊ทธ๋žจ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* FE-72โœจ ๋“ฑ๋ก ์ค‘์ผ๋•Œ์˜ ๋กœ์ง์ถ”๊ฐ€

* FE-72โœจ  toast-> alert-dailog๋กœ ๋ณ€๊ฒฝ

* FE-72๐Ÿ“ TODO์ฃผ์„ ์ถ”๊ฐ€

---------



* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€ (#66)

* FE-73โ™ป๏ธ  Tag๊ด€๋ฆฌ ํ•จ์ˆ˜ ํ›…์œผ๋กœ ๋ถ„๋ฆฌ

* FE-73โœจ  RadioGroup ๋กœ์ง ์ˆ˜์ •

* FE-73โœจ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์ถ”๊ฐ€

* FE-73โ™ป๏ธ  ์ €์ž ๋ณธ์ธ ์„ ํƒ์‹œ์˜  ๋กœ์ง ๋ณ€๊ฒฝ

* FE-73โœจ ์ค‘๋ณต ํƒœ๊ทธ ๊ฒ€์‚ฌ ๋กœ์ง ์ถ”๊ฐ€

* FE-73โ™ป๏ธ ์ถœ์ฒ˜ ์œ ํšจ์„ฑ(optional)๊ฒ€์‚ฌ ์ˆ˜์ •

* FE-73โœจ  ํ•„์ˆ˜ํ•ญ๋ชฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

* FE-73๐Ÿ› ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๊ฐ€ ์ง€์› ์„๋•Œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋˜์žˆ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

* FE-73๐Ÿ› useEffect ์˜์กด์„ฑ๋ฐฐ์—ด lint problem ํ•ด๊ฒฐ

* FE-73๐Ÿ› url์œ ํšจ์„ฑ๊ฒ€์‚ฌ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์•ˆ๋œจ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •

---------



* FE-71โ™ป๏ธ epic๋ธŒ๋žœ์น˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜ (#76)

* FE-71โ™ป๏ธ  token,interceptor ๋กœ์ง ์ˆ˜์ •

* FE-71โ™ป๏ธ  AddEpigram ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ˜์˜

* FE-71๐Ÿ”ฅ ํ…Œ์ŠคํŠธ์šฉ ์ƒ์„ธํŽ˜์ด์ง€ ์‚ญ์ œ

* FE-71โ™ป๏ธ  onKeyDown -> onKeyUp ์ˆ˜์ •

---------



* :sparkles: ์นด์นด์˜คํ†ก ๋ฆฌ๋””๋ ‰ํŠธ uri ์„ค์ •

* :sparkles: useKakaoLogin mutation hook ์ƒ์„ฑ

* :zap: ๋„ค์ด๋ฒ„ ๊ตฌ๊ธ€ ์นด์นด์˜ค ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋งํฌ ์„ค์ •

* :recycle: ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •

* FE-51 :twisted_rightwards_arrows: ๊ณต์šฉ API ๋จธ์ง€ ์š”์ฒญ (#92)

* FE-52  โœจ์—ํ”ผ๊ทธ๋žจ ๋ชฉ๋ก์กฐํšŒ API (#34)

* FE-52 feat: api schema ์ž‘์„ฑ

* FE-52 โœจfeat: getEpigrams api ์ž‘์„ฑ

* FE-522 โœจfix:  default export๋กœ ๋ณ€๊ฒฝ

* FE-52 โœจtest: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

* FE-52 โœจfeat: BaseUrl, TeamID ์ƒ์ˆ˜ ์ถ”๊ฐ€ ๋ฐ axios baseTRL ์ˆ˜์ •

* FE-52 โœจfix: schema ๋ฐ apis ํŒŒ์ผ ์ˆ˜์ •

* FE-52 โœจtest:  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: .envํŒŒ์ผ ์ƒ์„ฑ ๋ฐ BaseURL ์ˆ˜์ •

* FE-52 โœจfix: limit ํƒ€์ž…  ์ˆ˜์ •(optional ์‚ญ์ œ)

* FE-52 โœจtext: ํ…Œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์‚ญ์ œ

* FE-52 โœจfix: api GET์š”์ฒญ ์ฃผ์†Œ ์ˆ˜์ •('epigrams' -> '/epigrams')

* FE-53 :sparkles: ๊ฐ์ •์ด๋ชจํ‹ฐ์ฝ˜ ์ €์žฅ ์Šคํ‚ค๋งˆ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์ €์žฅ api ์ƒ์„ฑ

* FE-53 :sparkles: getMe ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธ ์ƒํƒœ ํ™•์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

* FE-53 :sparkles: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜

* FE-53 :sparkles: ๊ฐ์ • ์ €์žฅ ํ›„ ํ† ์ŠคํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ api ์ƒ์„ฑ

* FE-53 :hammer: ๊ฐ์ • ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

+) post, get ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ํ•œ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด๋™

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€ ์ •์˜

* FE-53 :sparkles: ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ ํ•จ์ˆ˜ ์ ์šฉ

* FE-53 :truck: ์˜ค๋Š˜์˜ ๊ฐ์ • type ์ด๋ฆ„ ๋ณ€๊ฒฝ

* FE-53 :sparkles: useMutation ํ›… ์‚ฌ์šฉ

* FE-53 :memo: EmotionSelector ์ฃผ์„ ์ถ”๊ฐ€

* FE-53 :fire: api ํ•จ์ˆ˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ์ œ๊ฑฐ

* FE-53 :hammer: useQuery๋ฅผ ์‚ฌ์šฉํ•ด ์˜ค๋Š˜์˜ ๊ฐ์ • ์กฐํšŒ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” useQuery๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ๋ผ ํ•จ

* FE-56 :sparkles: ๋Œ“๊ธ€ ์ˆ˜์ • API (#84)

* FE-29 :twisted_rightwards_arrows: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋จธ์ง€ ์š”์ฒญ (#39)

* :heavy_plus_sign: ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ถ”๊ฐ€

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ

* :lipstick: ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์ƒ์„ฑ ๋ฐ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ ๊ตฌํ˜„

* FE-60 :sparkles: react hook form, zod ์ถ”๊ฐ€

* FE-60 :lipstick: ๋กœ๊ทธ์ธ ํผ ์Šคํƒ€์ผ ์ˆ˜์ •

- ํ…์ŠคํŠธ ์ธํ’‹ ํ…Œ๋‘๋ฆฌ
- ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ

* FE-60 :recycle: ๋กœ๊ทธ์ธ ์Šคํ‚ค๋งˆ ๋ถ„๋ฆฌ

* :sparkles: ๋กœ๊ทธ์ธ ์‘๋‹ต ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ ์ •์˜

* :sparkles: ๋กœ๊ทธ์ธ api ์ƒ์„ฑ

* :sparkles: ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๊ด€ํ•œ ์ธํ„ฐ์…‰ํ„ฐ ์ถ”๊ฐ€

* :sparkles: useSignin mutation hook ์ƒ์„ฑ

* :zap: useSignin hook ๋กœ๊ทธ์ธ ํผ์— ์ ์šฉ

* :fire: AuthLayout ์‚ญ์ œ

* :art: onSubmit ํ•จ์ˆ˜ ์ธ๋ผ์ธ์œผ๋กœ ์ •์˜

* :recycle: ์‘๋‹ต ์ธํ„ฐ์…‰ํ„ฐ์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ํ† ํฐ ๊ฐฑ์‹  ๋กœ์ง ๊ฐœ์„ 

* :recycle: postSignin api ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์‚ญ์ œ

* :fire: useSignin hook ์‚ญ์ œ

* :truck: useSigninMutation hook์œผ๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋ฐ ํŒŒ์ผ ์ด๋™

* :sparkles: Toaster ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

* :sparkles: toast๋กœ ์—๋Ÿฌ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ

* FE-71 ๐Ÿ”€ ์—ํ”ผ๊ทธ๋žจ ์ž‘์„ฑ ํŽ˜์ด์ง€ (#71)

* FE-64๐Ÿ’„ ๊ธ€์ž‘์„ฑ ํŽ˜์ด์ง€ UI์ถ”๊ฐ€ (#44)

* FE-72 โœจ ์—ํ”ผ๊ทธ๋žจ ๋“ฑ๋ก api์—ฐ๋™ (#52)

* FE-72โœจ ๊ธ€์ž‘์„ฑํŽ˜์ด์ง€ ์Šคํ‚ค๋งˆ ์ถ”๊ฐ€

* FE-72โœจ formํƒœ๊ทธ Form์ปดํฌ๋„ŒํŠธโ€ฆ

Co-authored-by: MOON <[email protected]>
Co-authored-by: MOON <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: Jiseok Woo <[email protected]>
Co-authored-by: ์šฐ์ง€์„ <[email protected]>
Co-authored-by: JeonYumin <[email protected]>
Co-authored-by: NEWJIN <[email protected]>
Co-authored-by: ์ „์œ ๋ฏผ <[email protected]>
Co-authored-by: kich555 <[email protected]>
Co-authored-by: morrison <[email protected]>
* โœจ ๋„ค์ด๋ฒ„ post api ์ถ”๊ฐ€

* โœจ ๊ตฌ๊ธ€ post api ์ถ”๊ฐ€

* ๐Ÿ”ง ๋ผ์šฐํŒ… ์ˆ˜์ •

* โœจ ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ ํ›… ์ถ”๊ฐ€ ๋ฐ ๋ผ์šฐํŒ…, ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๊ตฌํ˜„

* โœจ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ํ›… ์ถ”๊ฐ€ ๋ฐ ๋ผ์šฐํŒ…, ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๊ตฌํ˜„

* โœจ ๋„ค์ด๋ฒ„ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์„ค์ •

* โœจ ๊ตฌ๊ธ€ ๊ฐ„ํŽธ ๋กœ๊ทธ์ธ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์„ค์ •

* ๐Ÿ”ง ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ์šฉ: ๋„ค์ด๋ฒ„, ๊ตฌ๊ธ€, ์นด์นด์˜ค ๋กœ๊ทธ์ธ URL ์—…๋ฐ์ดํŠธ

* ๐Ÿ”ง ๊ฐ€์ž…ํ•˜๊ธฐ ๊ฒฝ๋กœ ์ˆ˜์ •

* ๐Ÿ”ง ๋กœ๊ทธ์ธ ํ›… ๋ผ์šฐํŒ… ์ˆ˜์ •

* ๐Ÿ”ง ๋กœ๊ทธ์ธ ํ›… ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •
@jisurk jisurk requested a review from a team August 1, 2024 06:49
@jisurk jisurk self-assigned this Aug 1, 2024
@jisurk jisurk added Priority: Medium ๐Ÿ”– ์šฐ์„ ์ˆœ์œ„ ๋ณดํ†ต Type: Merge ๐Ÿšš ๋จธ์ง€ labels Aug 1, 2024
@jisurk jisurk merged commit c1ab854 into epic/FE-54--detail-page Aug 1, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Medium ๐Ÿ”– ์šฐ์„ ์ˆœ์œ„ ๋ณดํ†ต Type: Merge ๐Ÿšš ๋จธ์ง€
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants