[TIL/React] 2024/08/29
๐ฟ 1. Naiveํ ๊ธฐํ์ง์์ ๋ฐฐ๋ฅผ ๋ฒ ๋ฒ ๊ธ๋ค๊ฐ '๋์กธ ๋ฐฑ์ 400๋ง ์๋'๋ผ๋ ํญ๋ ฅ์ ์ธ ์ ๋ชฉ์ ๊ธฐ์ฌ๋ฅผ ์ฝ๊ฒ ๋์๋ค. ๋จ์ด๋ ์ฒ ํ์ ๋ฐ์ํ๋ค. '์ฑ์ฉ'์์ '์์ '์ผ๋ก, '๊ณต๊ฐ ์ฑ์ฉ'์์ '์์ ์ฑ์ฉ'์ผ๋ก, '์ธ์ฌํ'์์ '์ง์๊ฒฝํํ'์ผ๋ก, ์ฌํ์์ ์ฌ์ฉํ๋ ์ฉ์ด๊ฐ
๐ฟ 1. Naiveํ ๊ธฐํ

์ง์์ ๋ฐฐ๋ฅผ ๋ฒ
๋ฒ
๊ธ๋ค๊ฐ ``๋์กธ ๋ฐฑ์ 400๋ง ์๋``๋ผ๋ ํญ๋ ฅ์ ์ธ ์ ๋ชฉ์ ๊ธฐ์ฌ๋ฅผ ์ฝ๊ฒ ๋์๋ค.
๋จ์ด๋ ์ฒ ํ์ ๋ฐ์ํ๋ค. ``์ฑ์ฉ์์ ์์
`์ผ๋ก, `๊ณต๊ฐ ์ฑ์ฉ์์ ์์ ์ฑ์ฉ`์ผ๋ก, `์ธ์ฌํ์์ ์ง์๊ฒฝํํ``์ผ๋ก, ์ฌํ์์ ์ฌ์ฉํ๋ ์ฉ์ด๊ฐ ๋ณ๊ฒฝ๋๊ณ ์๋ค. ์๋, ์ด๋ฏธ ๋ง์ด ๋ณ๊ฒฝ๋์๋ค. ๋ํ ๊ฐํ, ํ์ , ํ ์ต ์ ์์ ๊ฐ์ ์ ๋์ ์งํ๋ง ์ด์ง ๋ค์ถฐ๋ณด๊ณ , "์ฐ๋ฆฌ๊ฐ ํค์์ค๊ฒ!" ํ๋ ๊ทนํ ํจ์จ ์๋์ ๋์ด ๋๋ํ ๊ฒ.
๋ํ์์๋ ์ง์ฅ์์๋ ``์ญ๋ ๊ฐํ`๋ฅผ ๋์์ฃผ์ง ์๊ธฐ ๋๋ฌธ์, "๋ ๊ฐ์ ์ ์
์ ์ด๋์ ๊ฒฝํ์ ์๋"๋ผ๋ ๋ง์ด ๋์ฌ ์๋ฐ์ ์๋ค. ๊ทธ๋์ `์ธ๋ถ ํ๊ฒฝ`์ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ์ด๋ฆํ์ผ `ํ ํฐ(TORTEE)``.
๋ณธ์ ์ธ ์์ต ์ฐฝ์ถ์ ํฌ๋งํ๋ ํ์ง ๊ฐ๋ฐ์์, ๊ฒ์ฆ๋ ํ์ง ๊ฐ๋ฐ์์์ ๊ต๋ฅ๋ฅผ ํตํด ์ญ๋์ ๊ฐํํ๊ณ ์ถ์ด ํ๋ ์ทจ์ค์์ ์ฐ๊ฒฐํ๋ ํ๋ซํผ์ ๋ง๋ค์ด๋ณด๋ฉด ์ด๋จ๊น ์๊ฐํด ๋ณธ ๊ฒ.
๋๊ฐ ์๋์ ๊ฐ์ ๋ชฉ์ ์ ๋ด์ ํ๋ซํผ์ด ๋๊ฒ ๋ค. ๊ธฐํ์ด ๋ํ ์ผํด์ง๋ฉด, ๋์์ด๋๋ฅผ ๋ชจ์ ๋ค, ์ ํด์ง ๋์์ธ์ ๊ตฌํํ ์์ ์ด๋ค. ๊ฐ๊ฐ์๊ฒ ํ์ด๋ฌ์ผ๋ฉด ๊ฐ์์ด๋(๊ฐ๋ฐ์+๋์์ด๋) ํ๋ ๊ฑด๋ฐ, ์์ฝ๋ค.

์ด ๊ฐ๋ฐ ๊ธฐ๊ฐ์ ``45์ผ~60์ผ`` ์ ๋๋ก ์์ํ๋ค. ๋ค๋ง ์กธ์
์ค๋น ๋๋ฌธ์ ์ผ์ ์ ๋ง์ถ ์ ์์์ง๋ ์์ ์ด ์๋ค๋ฆฌ. ํ์ง๋ง, ๊ณํํน) ์คํจ๊ฐ ๋ํดํธ.
๐ฟ 2. Mentor
์ด๋ฒ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด๋ค. ์์ง ์ด๊ธฐ ๊ธฐํ ์ํ๋ผ, ๋ก๊ทธ์ธ ์ ์ ์์ฒด๋ฅผ ๋ฉํ ์ ๋ฉํฐ๋ก ๋ถ๋ฆฌํ ์ง ์๋๋ฉด ํ์ด์ง๋ณ๋ก ๋ฉํ ์ ๋ฉํฐ๋ฅผ ๊ตฌ๋ถํ ์ง ์ ํด์ง ๊ฒ์ ์๋๋ค. ํ์ง๋ง ๊ฒฐ๋ก ์ ์ผ๋ก ``๋ฑ๋ก์ ๊ดํ CRUD(Create, Read, Update, Delete)``๋ ๋ฐ๋์ ์ด๋๊ฐ์ ์์ด์ผ ํ ๊ฒ์ด๋ค.

์ ํ๋ฉด์ ์๋นํ ๊ฐ์ํ ๋ฒ์ ์ด๋ค. ๋น์ฅ ๋ฉํ ๋ถ๋ถ๋ง ์๊ฐํด๋, ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์์ ธ ๋์จ๋ค.
1. id: ๋ฉํ ๊ตฌ๋ถ์(MongoDB ๊ธฐ์ค)
2. name: ๋ฉํ ์ฑํจ
3. expertise: ๋ฉํ ์ ๋ฌธ ๋ถ์ผ
4. experienceLevel: ๋ฉํ ๊ฒฝํ๋(n๋
์ฐจ ํน์ ์ฃผ๋์ด/์๋์ด ๋ฑ)
5. locationPreference: ์คํฐ๋ ํฌ๋ง ์ง์ญ
6. availableTimeSlots: ํฌ๋ง ํ์
์ฌ๋กฏ
7. profileUrl: ํ๋กํ ์ฌ์ง url
8. portfolioUrl: ํฌํธํด๋ฆฌ์ค url์ด์ธ์๋ ๋ถ๋ช ๋ ์๋ค. ๊ธฐํ์ ๊ณ์๋๋ค. ๊ฐ๋ฅ์ ์ก์๋ณด์๋ฉด ์์ ๊ฐ๋ค๋ ๊ฒ.
๐ฟ 3. Mentee(์นด์นด์ค ์๋ฆผํก, ์ง๋)

๋ฉํ ์ฐพ๊ธฐ์์ ์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ๊ฐ๊ฐ๋๋ ์ ๋์ ์ฐจ์ด๋ฐ์ ์๊ฒ ๋ค.
๊ทธ๋ฐ๋ฐ ํ์ฌ ๊ธฐํ ๋จ๊ณ์์ ๊ตฌํํด ๋ณด๊ณ ์ถ์ ๊ฒ์ ์นด์นด์คํก ์๋ฆผํก์ด๋ค.
1. id: ๋ฉํฐ ๊ตฌ๋ถ์(MongoDB ๊ธฐ์ค)
2. name: ๋ฉํฐ ์ฑํจ
3. expertise: ๋ฉํฐ๊ฐ ํฌ๋งํ๋ ํ์ต ๋ถ์ผ
4. experienceLevel: ๋ฉํฐ ๊ฒฝํ๋(์ฝ๋ฉ ๊ฒฝํ, CS ์ ๊ณต ์ฌ๋ถ)
5. locationPreference: ์คํฐ๋ ํฌ๋ง ์ง์ญ
6. availableTimeSlots: ํฌ๋ง ํ์
์ฌ๋กฏ
7. profileUrl: ํ๋กํ ์ฌ์ง url
8. portfolioUrl: ํฌํธํด๋ฆฌ์ค url๋ฉํฐ๋ ํฐ ํ์์๋ ์์ ์ ์ฌํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ``๋ฉํฐ๊ฐ ์ํ๋ ์กฐ๊ฑด๊ณผ ๋ฉํ ๊ฐ ์ ์ํ ์กฐ๊ฑด` ์ค ์ผ๋ถ(3. ์ ๋ฌธ๋ถ์ผ, 4. ๊ฒฝํ๋, 5. ์คํฐ๋ ํฌ๋ง ์ง์ญ, 6. ํฌ๋ง ํ์
์ฌ๋กฏ)๊ฐ `์ผ์น`ํ ๋ ์๋ก์๊ฒ `์๋ฆผํก``์ ๋ณด๋ด์ฃผ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ด ๋ ํฅ์๋์ง ์์๊น ํ๋ ์๊ฐ์ด ๋ ๋ค.
์ถ๊ฐ์ ์ผ๋ก, ์ต์ด์ ์งํํ๋ ค๊ณ ํ๋ ๋ฐฉํ์ถ ๋ฐ ๋ณด๋๊ฒ์ ์นดํ์ ๋ฉ์ธ ๊ธฐ์ ์ด์๋ ``์ง๋ api ๊ด๋ จ` ๋ด์ฉ์ `locationPreference``์ ์ฎ์ด๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
๐ฟ 4. Employment Case
ํด๋น section๋ ๊ฒฐ๊ตญ์ CRUD์ ๊ดํ ๋ด์ฉ์ด๋ค. ํ๋ซํผ์์ ์ฐ๊ฒฐ๋ ๋ฉํ -๋ฉํฐ์ ์ต์ข
์งํฅ์ ์ด๋ผ ํ ์ ์๋ ``์ทจ์
์ฌ๋ก`๋ฅผ ๊ณต์ ํจ์ผ๋ก์จ, `์ ๊ท ์ด์ฉ์์ ์ ์
`์ ๋๋ชจํ ์ ์๊ณ , `๊ฐ๋ฐ ์ฑ์ฉ ์์ฅ์ ์ต์ ๋ํฅ``์ ์ดํด๋ณผ ์ ์๊ฒ ๋ค.

์ทจ์ ์ฌ๋ก์ ํ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๋ค์ ์์์ ๊ฐ๋ค.
{
"salary": 4500, // ์ฐ๋ด: 4์ฒ ์ค๋ฐ
"isEntryLevel": true, // ์ ์
์ฌ๋ถ
"resumeSubmissions": 60, // ์ด๋ ฅ์ ์ ์ถ ๊ฐ์
"resumeAcceptanceRate": 0.2, // ์๋ฅ ํฉ๊ฒฉ๋ฅ (15~25%)
"employmentDate": "2024-Q2", // ์ทจ์
๋ ์ง
"preparationPeriodMonths": 5, // ์ค๋น ๊ธฐ๊ฐ (๊ฐ์)
"bootcampOrGovernmentTraining": false, // ๋ถํธ์บ ํ/๊ตญ๋น ์ฌ๋ถ
"companyIndustry": "IT Service", // ๊ธฐ์
์ข
๋ฅ
"companyLocation": "Seoul", // ๊ธฐ์
์์น
"companySalary": 4500, // ๊ธฐ์
์ฐ๋ด
"companySize": 75, // ๊ธฐ์
๊ท๋ชจ (์ง์ ์)
"certifications": [], // ์๊ฒฉ์ฆ (์์)
"techStack": ["Java", "Spring Boot"], // ๊ธฐ์ ์คํ
"projectExperienceEmphasized": true, // ํ๋ก์ ํธ ๊ฒฝํ ๊ฐ์กฐ ์ฌ๋ถ
"technicalBlog": true, // ๊ธฐ์ ๋ธ๋ก๊ทธ ์์ฑ ์ฌ๋ถ
"interviewQuestion": "Explain memory management in Java" // ๋ฉด์ ์ง๋ฌธ: Java์์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์.
}์ ๊ตฌ์กฐ๋ ์ ํ๋ฒ ์๋์ค ๋์ ์ปค๋ฎค๋ํฐ ํญ์ ๋ฑ๋ก๋ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๋ค.
๐ฟ 5. QnA Section

์ ์์์์๋ '์ฝ๋๋ฆฌ๋ทฐ'๋ผ๋ ํญ์ผ๋ก ์ค์ ๋์ด ์์ผ๋, QnA ํญ์ผ๋ก ๋ณ๊ฒฝํ ์์ ์ด๋ค.

'์ปค๋ฆฌ์ด๋ฆฌ' ์๋น์ค์ ๊ฐ๋ฐ์ ``Q&A` ํ์ด์ง์ ๊ฐ์ด, ๊ฐ๋ฐ์์ ์ทจ์ค์์ด ๊ฐ๋ฐ์ด๋ผ๋ ์ฃผ์ ์ ๊ดํด, `์ง๋ฌธ๊ณผ ์ง๋ฌธ์ ๋ํ ํ์์ ๊ณต์ ``ํ๋ section์ด ๋ ๊ฒ์ด๋ค.
๋ฉํ ๋ ์ง๋ฌธ์์ ์ง๋ฌธ ๋ด์ญ์ ํตํด ์์ค์ ๊ฐ๋ ํด ๋ณผ ์ ์๊ณ , ๋ฉํฐ๋ ๋ฉํ ์ ์ง๋ฌธ ๋ต๋ณ ๋ด์ญ์ ํตํด ์์ ๊ณผ ๊ฒฐ์ด ๋ง๋ ์ฌ๋์ธ์ง ํ์ธํด ๋ณผ ์ ์๋ค. MBTI ๊ฐ์ ์์๋ ์ถ๊ฐํด ๋ณด๋ฉด ์ฌ๋ฐ์ ๊ฒ ๊ฐ๋ค.
๐ฟ 6. Authentication

๋ฌผ๋ก ์์ฌ๋ด์ง ์๊ณ ์ผ๋จ ์นด์นด์ค ๋ก๊ทธ์ธ ํ๋๋ง ๊ตฌํํ์๋ ๊ฒ์ด ํ์ฌ๋ก์์ ํ๋จ์ด๋ค.
> **๐ฟ 7. Monetization**
์ทจ์
์ ์ํ, ํฌํธํด๋ฆฌ์ค ๋ชฉ์ ํ๋ก์ ํธ๋ผ๊ณ ํด์ '๊ทธ๋ฅ' ๋ง๋ค ์๊ฐ์ ์๋ค. ์ฒ๋ฐํ๊ฒ ํํํ๋ฉด, ๊ธฐ์
์ ๋ ๋ฒ๋ ค๊ณ ์กด์ฌํ๋ ์กฐ์ง์ด๋ค. ๊ทธ๋ฌ๋๊น ์ทจ์ค์์ธ '๋'๋, ํ๋ก์ ํธ๋ฅผ ํตํด ๊ธฐ์ ์ ์ญ๋๊ณผ ๋๋ถ์ด, ```๋น์ ๋ค์๊ฒ ๋์ ๋ฒ์ด๋ค ์ค ๋ฅ๋ ฅ์ด ์์ต๋๋ค```๋ผ๋ ๊ฒ๋ ๋ณด์ฌ์ค์ผ ํ ์๋ฌด๊ฐ ์๋ ๊ฒ์ด๋ค. ์์ตํ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ๋ค.
**1. ์์๋ฃ ๊ธฐ๋ฐ ๋ชจ๋ธ**
ํ๋ซํผ์, ์ฑ์ฌ๋ ```์ฒซ ๋ฌ ๊ณผ์ธ๋น์ 20%๋ฅผ ๋ฉํ ์๊ฒ ์์๋ฃ๋ก ๋ถ๊ณผ```ํ๋ค. ์๋ฅผ ๋ค์ด, ์ฒซ ๋ฌ ๊ณผ์ธ๋น๊ฐ 50๋ง ์์ด๋ผ๋ฉด, ํ๋ซํผ์ 10๋ง ์์ ์์๋ฃ๋ก ์ฐจ๊ฐํ๊ณ , ๋๋จธ์ง 40๋ง ์์ ๋ฉํ ์๊ฒ ์ง๊ธํ๋ค. ์ด ๋ชจ๋ธ์ ๋ฉํ ์์ ์ฑ๊ณต์ ์ธ ์ฐ๊ฒฐ์ ํตํด ์ง์์ ์ผ๋ก ์์ต์ ์ฐฝ์ถํ ์ ์๋ ๊ตฌ์กฐ๋ค.
**2. ๊ตฌ๋
๊ธฐ๋ฐ ๋ชจ๋ธ**
๋งค๋ฌ ์ผ์ ```๊ตฌ๋
๋ฃ```๋ฅผ ์ง๋ถํ๋ฉด, ํน์ ๋ฉํ ์ ๊ตญํ๋์ง ์๊ณ ๋ค์ํ ๋ฉํ ๋ฅผ ์์ ๋กญ๊ฒ ๋ง๋ ์ ์๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์ฌ์ฉ์๋ React์ ๊ฐ์ ํน์ ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ฑฐ๋, ๊ฐ๋จํ ์ปคํผ์ฑ์ ํตํด ์กฐ์ธ์ ์ป๋ ๋ฑ ๋ค์ํ ์๊ตฌ์ ๋ง๊ฒ ๋ฉํ ๋ง์ ์ ํํ ์ ์๋ค. ์ด ๋ชจ๋ธ์ ```์ ์ฐ์ฑ์ ์ค์์ํ๋ ์ฌ์ฉ์๋ค```์๊ฒ ํฐ ๋ง์กฑ๊ฐ์ ์ ๊ณตํ๋ฉฐ, ```๊ตฌ๋
์ ๊ธฐ๋ฐ์ ์์ ์ ์ธ ์์ต```์ ํ๋ณดํ ์ ์๋ค.
**3. ๊ด๊ณ ๋ชจ๋ธ**4. ์ ์ง ๋ชจ๋ธ ํ์ฌ ํ๋ซํผ์ ๋ฉํฐ๋ ํฅํ ๋ฉํ ๋ก ์ฑ์ฅํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. ์ด ๋ชจ๋ธ์ ๋ฉํฐ๊ฐ ์ทจ์
์ ์ฑ๊ณตํ ํ, ๋ฉํ ๋ก ํ๋ํ์ฌ ๋ค์ ์์๋ฃ ๊ธฐ๋ฐ ์์ต ๊ตฌ์กฐ์ ๊ธฐ์ฌํ๊ฒ ๋ง๋๋ ``์ง์ ๊ฐ๋ฅํ ์ํ ๊ตฌ์กฐ``๋ฅผ ํ์ฑํ๋ค. ์ด๋ ํ๋ซํผ์ ์ฑ์ฅ๊ณผ ์ ์ง์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ฉฐ, ์ ์ฌ์ ์ธ ๊ณ ๊ฐ์ ํ๋ณดํ๋ ๋์์ ๊ธฐ์กด ์์ต ๋ชจ๋ธ์ ์ ์งํ๋ ๋ฐ ๋์์ ์ค๋ค.
๋ฒ์จ K-LinkedIn์ ์ฐฝ์ ํ ๊ธฐ๋ถ์ด๋ค.
๐ฟ 8. ํ๊ณ
reference(๋ณ๋์๋น 77ํ - ๋ฆฌ๋์ญ): https://comic.naver.com/webtoon/detail?titleId=806189&no=77&week=mon

More to read
ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ์ฌ์ด
HTTP ์ํ ์ฝ๋๋ ํ๋ก ํธ์๋์์ ๋ฐฑ์๋๋ก ๋ณด๋๋ ์์ฒญ์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์๋ฏธํ๋ ์ผ์ข ์ ์ฝ์์ด๋ฉฐ, API๋ฅผ ๊ตฌ์ฑํ๋ ํต์ฌ ์์ ์ค ํ๋์ ๋๋ค. ์ํ ์ฝ๋์ ๊ด๋ จํ์ฌ, ๋ฐฑ์๋๋ ์ ๋ชจ๋ฅด๋ ํ๋ก ํธ์๋์ ์ฌํ ์ฌ์ ์ด ์์ต๋๋ค.์๋๋ ์์ฒญ์ด ์คํจํ์์๋, ๋ฐฑ์๋์์ ์ํ ์ฝ๋
JWTํ ํฐ ๊ด๋ฆฌ ๋ฐฉ์ ํบ์๋ณด๊ธฐ
0. ๋ค์ด๊ฐ๋ฉฐ ๐ฏ ์๋น์ค์ ์ ๊ทผํ๋ ค๋ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ ์ฌ์ฉ์ ์ธ์ฆ์ด๋ผ๊ณ ํฉ๋๋ค. ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ ์ฃผ์ด์ง ๊ถํ์ ํ์ธํ๋ ์์ ์ ์ธ๊ฐ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ธ๊ฐ๋ ๋ค๋ฃจ์ง ์์ต๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ์๋ ๋ง์ ๋ฐฉ์์ด ์์ง๋ง, ์ค๋์ ์ธ์ ์ธ์ฆ ๋ฐฉ
A2AA2A / MCP ๋ฉํฐ ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์
0. ๋ค์ด๊ฐ๋ฉฐ โ๏ธ Google for Developers์, ๋ ์คํ ๋ ๊ณต๊ธ๋ง ์๋๋ฆฌ์ค๋ก ์ฎ์ 6๋ ํ๋กํ ์ฝ(MCP, A2A, UCP, AP2, A2UI, AG-UI)์ ๋ํ ๊ฐ์ด๋๊ฐ ๊ฒ์๋ ์ดํ, MCP์ A2A๋ถํฐ ๊ตฌํํด ๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋