NHJeans / Deepening-Project

๋ชจ์ž„์ด ๋๋‚˜๊ณ  ํ›„๊ธฐ๋ฅผ ์ „ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ์—์š”
https://deepening-project.vercel.app
1 stars 2 forks source link

Code Review(2024.07.14 13์‹œ ๊ธฐ์ค€) #31

Closed hyeonseok98 closed 1 month ago

hyeonseok98 commented 1 month ago

๐Ÿ”ฅ ์ฝ”๋“œ์™€ ์‹คํ–‰ ๊ฒฐ๊ณผ๋งŒ์„ ๋ณด๊ณ  ์ž‘์„ฑํ•˜์˜€์Œ์œผ๋กœ ์˜๋„์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ comment ๋‚จ๊ฒจ์ฃผ์„ธ์š”(7์›” 14์ผ 13์‹œ ๊ธฐ์ค€ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค)

๐Ÿ’ก ์ œ ๊ฐœ์ธ์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์ž„์œผ๋กœ ํ† ๋ก ์€ ์–ธ์ œ๋“  ํ™˜์˜์ž…๋‹ˆ๋‹ค~!!


๐ŸŒˆ ์ „์ฒด(To. ํŒ€์žฅ๋‹˜~)

1. (๊ฑด์˜์‚ฌํ•ญ) input css ํ†ต์ผ

โœจ ๋กœ๊ทธ์ธ

1. email, back ์ด๋ฏธ์ง€ ์œ„์น˜ ์ˆ˜์ •

2. /(sub)/auth/page.tsx

4. /(sub)/auth/login/page.tsx

4-1. 10๋ฒˆ์งธ ์ค„: ๋ถˆํ•„์š” ๊ณต๋ฐฑ์ค„ ์ œ๊ฑฐ 4-2. ์ฝ”๋“œ ๋‚ด if(result.error)์™€ ๊ฐ™์ด ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๊ตฌ๋ฌธ์ด ์žˆ์ง€๋งŒ, fetchํ•˜๋Š” ๊ณผ์ • ์ž์ฒด์—์„œ error๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ์—๋Š” result ์ด์ „์— ์—๋Ÿฌ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— setError(null) ๋‹ค์Œ ์ฝ”๋“œ๋ถ€ํ„ฐ try~catch๋ฌธ์œผ๋กœ ๋งŒ๋“ค์–ด ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํ•ด์ฃผ๋Š” ๊ฒƒ๋„ ์ข‹์•„๋ณด์ž…๋‹ˆ๋‹ค.

5. /(sub)/auth/sign-up/page.tsx

5-1. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ตฌ๋ฌธ ์‚ญ์ œ

import { createClient } from "@/utils/supabase/client";

5-2. 9, 20๋ฒˆ์งธ ๋ถˆํ•„์š” ๊ณต๋ฐฑ์ค„ ์ œ๊ฑฐ

6. /(sub)/auth/socialNickname/page.tsx

6-1. ๋‹ค๋ฅธ ์œ„์น˜๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๋Š” const supabase = createClient(); ๋ถ€๋ถ„์€ ๋”ฐ๋กœ ์กด์žฌํ•˜๊ธฐ ๋ณด๋‹จ ๋‹ค๋ฅธ const์™€ ๊ฐ™์ด ๋ถ™์–ด ์žˆ์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 6-2. [63~111๋ฒˆ์งธ ์ค„] ์ฐพ์•„๋ณด๋‹ˆ supabase์—๋Š” upsert๋ผ๋Š” ์ฟผ๋ฆฌ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต๋˜๋Š” ๊ฐ’์ด ์žˆ๋‹ค๋ฉด Update๋ฅผ ํ•˜๊ณ  ์ค‘๋ณต๋˜๋Š” ๊ฐ’์ด ์—†๋‹ค๋ฉด Insert๋ฅผ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„  ๊ธฐ์กด์— ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์œผ๋ฉด ์—…๋ฐ์ดํŠธํ•˜๊ณ , ์—†์œผ๋ฉด ์‚ฝ์ž…ํ•˜๋Š” ๋กœ์ง์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ตฌ๋ฌธ๋„ ์žˆ๋‹ค ์ •๋„๋กœ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”(ํ˜„์žฌ 50์ค„ -> upsert ์‚ฌ์šฉ์‹œ 20์ค„ ์ •๋„ ์˜ˆ์ƒ)

6.3 useEffect ์˜์กด์„ฑ ๋ฐฐ์—ด์— supabase๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฝ๊ณ  ๋ฐ‘์ค„์„ ์—†์• ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 6.4 h1์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ๋‘ ์ค„์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

6.5 input ์ขŒ์šฐ ์—ฌ๋ฐฑ์ด ์กฐ๊ธˆ ์žˆ์œผ๋ฉด ์–ด๋–จ๊นŒ ํ•ฉ๋‹ˆ๋‹ค! 6.6 button์— hover ํšจ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉด ์–ด๋–จ๊นŒ ํ•ฉ๋‹ˆ๋‹ค 6.7 ํ•œ ํŽ˜์ด์ง€ ๋‚ด '๋‹‰๋„ค์ž„'์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋งŽ์ด ๋ฐ˜๋ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(4๋ฒˆ). ๋•Œ๋ฌธ์— label์€ ์—†์–ด๋„ ๊น”๋”ํ•˜์ง€ ์•Š์„๊นŒ ๊ฑด์˜๋“œ๋ ค์š” 6.7 ์ „์ฒด๋ฅผ ๊ฐ์‹ธ๋Š” div ๋Œ€์‹  main, section, form๊ณผ ๊ฐ™์€ ์‹œ๋ฉ˜ํ‹ฑ ํƒœ๊ทธ๋„ ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค!


โœจ ๋ฉ”์ธ ํŽ˜์ด์ง€(clubs)

/(main)/page.tsx

\

\

 <Link key={club.id} href={`/clubs/${club.id}/comments`}>
<div key={club.id} ref={isLastClub ? lastClubRef : null} className="bg-white p-4 rounded-lg shadow-md">

\


โœจ ๋ชจ์ž„ ๋งŒ๋“ค๊ธฐ


โœจ Club Detail

โœ… ๊ณต์œ ํ•˜๊ธฐ

\

โœ… ๋ชจ์ž„ ๋งŒ๋“ค๊ธฐ(๋ฆฌ์ŠคํŠธ)

\, \

\

/(main)/clubs/[clubId]/page.tsx

// ๋ณ€๊ฒฝ ํ›„ commentList.length > 0


## โœจ ๊ธ€ ์ƒ์„ฑ
- ํ˜„์žฌ๋‹˜ pr ํ•ฉ์นœ ๋ฒ„์ „์œผ๋กœ ์ฒดํฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

### 1. (main)/guests/[id]/createPost/page.tsx
1-1. 8๋ฒˆ์งธ ๊ณต๋ฐฑ์ค„ ์ œ๊ฑฐํ•ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”
1-2. if๋ฌธ๊ณผ ํ•จ๊ป˜ error์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ \<h1> ํƒœ๊ทธ๋ฅผ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„ ๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ๊ฐœ์ธ์ ์œผ๋กœ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
1-3. ๊ฐœ์ธ์ ์œผ๋กœ ๋ชจ์ž„๋ช…์€ ์˜ˆ์ „์ฒ˜๋Ÿผ ์กฐ๊ธˆ ๊ตต๊ฒŒ font-weight์ด ์žˆ์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”
1-4. section className ๋งจ ๋’ค์˜ ๊ณต๋ฐฑ ์ œ๊ฑฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ ค์š”!
1-5. ์•„๋ž˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.
- font color์— ๋Œ€ํ•œ ์†์„ฑ์€ ์ œ๊ฑฐํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์•„์š”
- ์™ผ์ชฝ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค๋ฅธ์ชฝ ์—ฌ๋ฐฑ๋„ ๊ฐ™์€ ์—ฌ๋ฐฑ ํฌ๊ธฐ๋กœ ์ง€์ •๋˜๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„์š”
- className ๋งจ ๋’ค์˜ ๊ณต๋ฐฑ ์ œ๊ฑฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ ค์š”!
```jsx
<h1 className="font-black text-xl self-start ml-10 pb-5 ">{`${clubData[0].title}๋‹˜์˜ ๋ชจ์ž„`}</h1>

1-6 input ํƒœ๊ทธ ๋‚ด์—๋„ ํ…์ŠคํŠธ ์ƒ‰์ƒ ์ง€์ •์€ ์ œ๊ฑฐํ•ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1-7. textarea ๋‚ด text-2xl๊ณผ border ์‚ฌ์ด ๊ณต๋ฐฑ์„ ์ œ๊ฑฐ ๋ถ€ํƒ๋“œ๋ ค์š”! 1-8. ๊ฐœ์ธ์ ์œผ๋กœ textarea ๋‚ด ๊ธ€์ž ํฌ๊ธฐ๊ฐ€ ์กฐ๊ธˆ ํฐ ๊ฒƒ ๊ฐ™์•„์š”.

1-9. ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๋ถ€๋ถ„์— placeholder๋กœ ์ด๊ณณ์— ๊ธ€์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š” ๋“ฑ์˜ ์•ˆ๋‚ด ๋ฌธ๊ตฌ๊ฐ€ ์žˆ์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.(์ทจํ–ฅ)

2. (main)/guests/[id]/postDetail/[postId]/page.tsx

2-1. ์•ž์„  ํŽ˜์ด์ง€์ฒ˜๋Ÿผ font-black์€ ์‚ญ์ œ๋ฅผ, ์˜ค๋ฅธ์ชฝ ์—ฌ๋ฐฑ๋„ ์™ผ์ชฝ ์ฒ˜๋Ÿผ ๊ท ๋“ฑํ•˜๊ฒŒ ์žˆ์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žŒ์ž…๋‹ˆ๋‹น

<h1 className="font-black text-xl self-start ml-10 pb-3">{`${club.title}๋‹˜์˜ ๋ชจ์ž„`}</h1>

2-2. ์งง๊ฒŒ category๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„์ด๊ธฐ์— div๋ณด๋‹ค ๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ข‹์•„๋ณด์—ฌ์š”!

<div className="w-1/5 bg-customGreen border rounded-md text-white shadow-md text-center">{post.category}</div>

2-3. text-2xl๊ณผ mb-4 ์‚ฌ์ด ๊ณต๋ฐฑ ์ œ๊ฑฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ท! ๊ทธ๋ฆฌ๊ณ  ์œ„์— ํŽ˜์ด์ง€์˜ ๋ชจ์ž„์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ \

ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋ถ€๋ถ„์€ ํ•œ ๋‹จ๊ณ„ ๋‚ฎ์ถ˜

๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์•„ ๋ณด์—ฌ์š”!

<h1 className="text-2xl  mb-4">{post.content}</h1>

2-4. ์•ž์œผ๋กœ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚  ์˜๋ฏธ๋กœ ํ•ด์„๋˜์ง€๋งŒ ํ•ด๋‹น ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ๋ฒ„ํŠผ๋งŒ์„ ๊ฐ์‹ผ ํƒœ๊ทธ์ด๊ธฐ์— ul๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      <ul className="pt-10">
        <Link
          href={`/clubs/${id}/comments`}
          className="bg-customGreen border rounded-md text-white shadow-md text-center p-2 px-10"
        >
          ๋ชจ์ž„ ์‘์›๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ
        </Link>
      </ul>

\

์ฝ”๋“œ ๋ณด๊ธฐ/์ ‘๊ธฐ ```jsx "use client"; type ColorButtonsProps = { handleColorChange: (color: string) => void; }; // ์ƒ์ˆ˜๋Š” constants ํด๋”๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ const COLORS = [ { bgColor: "#ffcccc", colorCode: "#FFBABA" }, { bgColor: "#ccffcc", colorCode: "#8DE8A6" }, { bgColor: "#ccccff", colorCode: "#84BBFD" }, { bgColor: "#ffccff", colorCode: "#E4AFED" }, ]; const ColorButtons = ({ handleColorChange }: ColorButtonsProps) => { return (
{COLORS.map(({ bgColor, colorCode }) => ( ))}
); }; export default ColorButtons; ```


โœจ ๊ทธ ์™ธ

โœ… apis ํด๋”

Ahnjonghyun87 commented 1 month ago

font-black์€

https://tailwindcss.com/docs/font-weight ํ…Œ์ผ์œˆ๋“œ ๊ณตํ™ˆ์—์„œ font-black์ด ์ตœ๊ณ ๊ตต์€ ํฐํŠธ ํฌ๊ธฐ๋ผ ์ผ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ ๋‹ค๋ฅธ๊ฒŒ ๋จนํžˆ๋ ค๋‚˜ ์‹ถ์–ด์„œ font-[10rem] ์ด๋Ÿฐ๊ฑฐ ํ•ด๋ณด๋ ค๋‹ˆ ์•ˆ๋˜๋”๋ผ๊ตฌ์š” ํ˜น์‹œ ๋‹ค๋ฅธ ํฐํŠธ์›จ์ดํŠธ ์„ค์ •๋ฒ• ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ์ผ๋‹จ์€ font-black์œผ๋กœ ์“ฐ๊ณ  ์žˆ์–ด์•ผ ํ• ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค ----->> ์ด๋ถ€๋ถ„ ๋‹ค๋ฅธ๋ถ„๋“ค์—๊ฒŒ ํ˜ผ๋™์„ ์ฃผ๋Š”๊ฑฐ ๊ฐ™์•„์„œ font-extrabold ํ•œ๋‹จ๊ณ„ ๋‚ด๋ ค์„œ ์“ฐ๊ฒ ์Šต๋‹ˆ๋‹ค~!