[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
Amazon VPC Architecture ์ดํดํ๊ธฐ
์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๋ฉฐ, ๊ฐ๋ฐ์์ ๋ฌด์์ ๊ฐ์ฅ ๋จผ์ ๊ณ ๋ฏผํด์ผ ํ๋์ง ๋ค์ ๋์๋ณด๊ฒ ๋์์ต๋๋ค.ํ๋๋ ํ๋ก ํธ์๋๊ฐ ๋ชจ๋ ์ค๊ณ์ ์ถ๋ฐ์ ์ด๋ผ๊ณ ๋ฏฟ์์ต๋๋ค. ์ ์ ๊ฐ ๋ฌด์์ ๋ณด๊ณ , ์ด๋ค ํ๋ฆ์์ ๋จธ๋ฌด๋ฅด๊ณ ์ดํํ๋์ง์ ๋ํ ์ดํด ์์ด ์๋น์ค๋ฅผ ๋ง๋ ๋ค๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํ๊ธฐ
'์์ฌ์ดํธ'ํ๋ก ํธ์๋ ๊ด์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ์ดํดํ๊ธฐ
์ค๋๋ง์ ๋ฐฉ๋ฒ๋ก ์ ๊ดํ ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค. ์ต๊ทผ ์ํฉ์ ์ด๋ ์ต๋๋ค. SSAFY์์๋ ํ๋ฃจ์ ์์ฒญ๋ ์์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ ๊ณผ์ ๋ก ์ํํ๊ฒ ๋ฉ๋๋ค. ๊ทธ ๊ณผ์ ์์, '๊ตฌํ๋ ฅ'์ด ๋งค์ฐ ๋จ์ด์ง๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์์ ํ ์ด๋ ค์ด ๋ฌธ์ ๋ผ๋ฉด '์์ฌ์'์ด๋ผ๋ ๊ฐ์ ์กฐ์ฐจ ๋๋ผ์ง
SubnetVPC ์ค๊ณ์ ์์: IP์ Subnet
๋ฐ๋ณต๋๋ ๋ฃจํด ์์์ ์ป์ ์์ ๊ฐ์ ๋ฐํ ์ผ์, ์ด์ ๋ ๊ธฐ์ ์ ์คํํธ๋ผ์ ๋ํ๊ธฐ ์ํ ๊ฐ์ธ ํ๋ก์ ํธ์ ์ฐฉ์ํ๊ณ ์ ํฉ๋๋ค.์ด๋ฒ ํ๋ก์ ํธ์ ๋ชฉํ๋ ๋จ์ํ ํฌํธํด๋ฆฌ์ค ๊ตฌ์ถ์ ๋์ด, ์ค์ ์๋น์ค ์์ค์ ๋ธ๋ก๊ทธ ์์คํ ๊ตฌํ๊ณผ ๋ค๊ตญ์ด ์ฒ๋ฆฌ ์ ์ฉ ๋ฑ ์ค๋ฌด์ ๊ฐ๊น์ด ์ญ๋์ ํ ๋จ๊ณ