๐ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ์ ๋ต (๊ธฐ์ ๊ด์ ) ๐

์๋ ํ์ธ์, ์ฌ๋ฌ๋ถ! ์ค๋์ ๊ธฐ์ ์ ์ฅ์์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ด๋ป๊ฒ ์ฑ์ฉํ๋ฉด ์ข์์ง์ ๋ํด ๊น์ด ์๊ฒ ํํค์ณ๋ณผ ๊ฑฐ์์. ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ฆ ๊ฐ๋ฐ๊ณ์์ ํซํ ์ธ์ด๋ผ๋ ๊ฑด ๋ค๋ค ์์์ฃ ? ใ ใ ใ ๊ทธ๋งํผ ์ค๋ ฅ ์๋ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ฐพ๋ ๊ฒ๋ ์ฝ์ง ์๋ต๋๋ค. ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์! ์ด ๊ธ์ ๋ค ์ฝ๊ณ ๋๋ฉด ์ฌ๋ฌ๋ถ๋ ํ์ ์คํฌ๋ฆฝํธ ๊ณ ์๋ฅผ ์์ ํ ์ ์๋ ์ฑ์ฉ ๊ณ ์๊ฐ ๋ ์ ์์ ๊ฑฐ์์! ๐
๐ก Tip: ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ์ ๋จ์ํ ๊ธฐ์ ์ ์ธ ๋ฉด๋ง ๋ณผ ๊ฒ ์๋๋ผ, ํ ๋ฌธํ์์ ์ ํฉ์ฑ, ์ฑ์ฅ ๊ฐ๋ฅ์ฑ ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํด์!
์, ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํด๋ณผ๊น์? ์ค๋น๋์ จ๋์? 3, 2, 1... ๊ณ ๊ณ ! ๐
1. ํ์ ์คํฌ๋ฆฝํธ, ๋์ฒด ๋ญ๊ธธ๋? ๐ค
ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ญ์ง ๋ชจ๋ฅด๋ ๋ถ๋ค์ ์ํด ๊ฐ๋จํ ์ค๋ช ๋๋ฆด๊ฒ์. ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํผ์ ์ธ์ด์์. ์ฝ๊ฒ ๋งํด, ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์ ์ ํ ๊ฑฐ์ฃ . "์๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋๋ฐ ์ ๊ตณ์ด ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์จ์?" ๋ผ๊ณ ๋ฌผ์ผ์ค ์ ์๊ฒ ๋ค์.
๊ทธ ์ด์ ๋ ๋ฐ๋ก ํ์ ์์ ์ฑ๋๋ฌธ์ด์์! ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋ฏธ๋ฆฌ ์ค๋ฅ๋ฅผ ์ก์ ์ ์์ด์ ๋ฒ๊ทธ๋ฅผ ์ค์ผ ์ ์๋ต๋๋ค. ๊ฒ๋ค๊ฐ ์ฝ๋์ ๊ฐ๋ ์ฑ๋ ์ข์์ง๊ณ , ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ํนํ ์ ์ฉํ์ฃ .
๐จ ์ฃผ์: ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ง๋ฅ์ ์๋์์! ์๋ชป ์ฌ์ฉํ๋ฉด ์คํ๋ ค ์์ฐ์ฑ์ ๋จ์ด๋จ๋ฆด ์ ์์ผ๋ ์ฃผ์ํด์ผ ํด์.
ํ์ ์คํฌ๋ฆฝํธ์ ์ธ๊ธฐ๊ฐ ๋ ๋ก ๋์์ง๋ฉด์, ๋ง์ ๊ธฐ์ ๋ค์ด ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ฐพ๊ณ ์์ด์. ํนํ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๋ ๊ฑฐ์ ํ์๊ฐ ๋์ด๊ฐ๋ ์ถ์ธ์ฃ . ๋ฐฑ์๋์์๋ Node.js์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์.
๊ทธ๋์ ๋ง์ธ๋ฐ์, ์ฌ๋ฌ๋ถ! ํน์ ์ฌ๋ฅ๋ท์ด๋ผ๋ ์ฌ์ดํธ ์์ธ์? ๊ฑฐ๊ธฐ์๋ ํ์ ์คํฌ๋ฆฝํธ ๊ด๋ จ ์ฌ๋ฅ์ ๊ฑฐ๋ํ ์ ์๋ค๊ณ ํ๋๋ผ๊ณ ์. ๊ฐ๋ฐ์๋ค์ ์ค๋ ฅ์ ๋ฏธ๋ฆฌ ํ์ธํด๋ณผ ์ ์๋ ์ข์ ๊ธฐํ๊ฐ ๋ ์ ์๊ฒ ์ฃ ? ใ ใ
์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด, ํ์ ์คํฌ๋ฆฝํธ๋ ๊ฒฐ๊ตญ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํ์ผ๋ผ์. ๊ทธ๋์ ๋ธ๋ผ์ฐ์ ์์ ์ง์ ์คํ๋๋ ๊ฑด ์๋ฐ์คํฌ๋ฆฝํธ๋๋๋ค. ํ์ง๋ง ๊ฐ๋ฐ ๊ณผ์ ์์๋ ํ์ ์คํฌ๋ฆฝํธ์ ์ฅ์ ์ ์ถฉ๋ถํ ํ์ฉํ ์ ์์ฃ .
์, ์ด์ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ญ์ง ๋์ถฉ ๊ฐ์ด ์ค์๋์? ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฑ์ฉ ์ ๋ต์ ๋ํด ์์๋ณผ๊น์? ๐โโ๏ธ๐จ
2. ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์, ์ด๋ค ์ ์ ๋ด์ผ ํ ๊น? ๐ง
ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ฑ์ฉํ ๋๋ ๋จ์ํ "ํ์ ์คํฌ๋ฆฝํธ ํ ์ค ์๋์?"๋ผ๊ณ ๋ฌผ์ด๋ณด๋ ๊ฒ๋ง์ผ๋ก๋ ๋ถ์กฑํด์. ์ง์ง ์ค๋ ฅ์๋ฅผ ๋ฝ์ผ๋ ค๋ฉด ์ข ๋ ์ธ๋ฐํ๊ฒ ๋ด์ผ ํฉ๋๋ค. ์ด๋ค ์ ๋ค์ ์ค์ ์ ์ผ๋ก ๋ด์ผ ํ ์ง ํ๋์ฉ ์ดํด๋ณผ๊น์?
2.1 ๊ธฐ๋ณธ๊ธฐ๋ ํํํ๊ฐ?
ํ์ ์คํฌ๋ฆฝํธ๋ ๊ฒฐ๊ตญ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ์ด์์. ๊ทธ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ๊ธฐ๊ฐ ํํํ์ง ํ์ธํ๋ ๊ฒ ์ค์ํด์. ES6+ ๋ฌธ๋ฒ, ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฑ์ ๋ํ ์ดํด๋๋ฅผ ์ฒดํฌํด๋ณด์ธ์.
๐ก Tip: ์ฝ๋ฉ ํ ์คํธ๋ฅผ ํ ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋จผ์ ํ์ด๋ณด๋ผ๊ณ ํ ๋ค, ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ณํํด๋ณด๋ผ๊ณ ํ๋ฉด ๊ธฐ๋ณธ๊ธฐ์ ํ์ ์คํฌ๋ฆฝํธ ์ค๋ ฅ์ ๋์์ ํ์ธํ ์ ์์ด์!
2.2 ํ์ ์์คํ ์ ๋ํ ์ดํด๋๋?
ํ์ ์คํฌ๋ฆฝํธ์ ํต์ฌ์ ๋ฐ๋ก ํ์ ์์คํ ์ด์์. ๊ธฐ๋ณธ์ ์ธ ํ์ ๋ถํฐ ๊ณ ๊ธ ํ์ (Union, Intersection, Generics ๋ฑ)๊น์ง ์ผ๋ง๋ ์ ์ดํดํ๊ณ ์๋์ง ํ์ธํด๋ด์ผ ํด์.
์๋ฅผ ๋ค์ด, ์ด๋ฐ ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ค๋ช ํด๋ฌ๋ผ๊ณ ํด๋ณด๋ ๊ฑด ์ด๋จ๊น์?
type User = {
name: string;
age: number;
};
type Admin = User & {
role: 'admin' | 'super-admin';
};
function greet(user: User | Admin) {
console.log(`Hello, ${user.name}!`);
if ('role' in user) {
console.log(`You are an ${user.role}`);
}
}
์ด ์ฝ๋์์ Union ํ์ , Intersection ํ์ , ํ์ ๊ฐ๋ ๋ฑ์ ๊ฐ๋ ์ด ์ฌ์ฉ๋๊ณ ์์ด์. ์ด๋ฐ ๊ฑธ ์ ๋๋ก ์ค๋ช ํ ์ ์๋ค๋ฉด ํ์ ์์คํ ์ ๋ํ ์ดํด๋๊ฐ ๋๋ค๊ณ ๋ณผ ์ ์๊ฒ ์ฃ ?
2.3 ์ค์ ํ๋ก์ ํธ ๊ฒฝํ์ด ์๋๊ฐ?
์ด๋ก ๋ง ์๋ฉด ๋ญํด์, ์ค์ ์์ ์จ๋ด์ผ ์ง์ง ์ค๋ ฅ์ด์ฃ ! ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณธ ๊ฒฝํ์ด ์๋์ง ๋ฌผ์ด๋ณด์ธ์. ํนํ ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ์์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋์ง, ์ด๋ค ๋ฌธ์ ๋ฅผ ๊ฒช์๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๋ฑ์ ๋ฌผ์ด๋ณด๋ฉด ์ข์์.
๐ก Tip: GitHub ๊ฐ์ ๊ณณ์์ ํ๋ณด์์ ํ์ ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ๋ฅผ ๋ฏธ๋ฆฌ ์ดํด๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์. ์ฝ๋ ํ์ง, ๋ฌธ์ํ ์์ค ๋ฑ์ ํ์ธํ ์ ์์ฃ .
2.4 ํ์ ์คํฌ๋ฆฝํธ ์ํ๊ณ์ ๋ํ ์ดํด๋๋?
ํ์ ์คํฌ๋ฆฝํธ๋ ํผ์ ์ฐ๋ ๊ฒ ์๋์์. ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ์ ํจ๊ป ์ฌ์ฉ๋์ฃ . React, Vue, Angular ๊ฐ์ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ๋ Node.js ๊ฐ์ ๋ฐฑ์๋ ํ๊ฒฝ์์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ๋์ง ์๊ณ ์๋์?
๋ํ, TSLint(๋๋ ESLint), Prettier ๊ฐ์ ๋๊ตฌ๋ค์ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ด ์๋์ง๋ ์ค์ํด์. ์ด๋ฐ ๋๊ตฌ๋ค์ ์ฝ๋ ํ์ง์ ๋์ด๋ ๋ฐ ํฐ ๋์์ด ๋๊ฑฐ๋ ์.
2.5 ์ง์์ ์ธ ํ์ต ๋ฅ๋ ฅ์ด ์๋๊ฐ?
ํ์ ์คํฌ๋ฆฝํธ๋ ๊ณ์ ๋ฐ์ ํ๊ณ ์์ด์. ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋๊ณ , ๊ธฐ์กด ๊ธฐ๋ฅ์ด ๊ฐ์ ๋์ฃ . ๊ทธ๋์ ์ง์์ ์ผ๋ก ํ์ตํ๊ณ ์๋ก์ด ๊ฒ์ ๋ฐ์๋ค์ผ ์ ์๋ ๋ฅ๋ ฅ์ด ์ค์ํด์.
์ต๊ทผ์ ๊ณต๋ถํ ํ์ ์คํฌ๋ฆฝํธ ๊ด๋ จ ๋ด์ฉ์ด ๋ญ์ง ๋ฌผ์ด๋ณด๊ฑฐ๋, ํ์ ์คํฌ๋ฆฝํธ์ ์ต์ ๋ฒ์ ์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ ๋ํด ์ค๋ช ํด๋ฌ๋ผ๊ณ ํด๋ณด์ธ์. ์ด๋ฅผ ํตํด ํ์ต ์์ง์ ๋ฅ๋ ฅ์ ํ์ธํ ์ ์์ด์.
๐ก Tip: ์ฌ๋ฅ๋ท๊ฐ์ ํ๋ซํผ์์ ํ์ ์คํฌ๋ฆฝํธ ๊ด๋ จ ๊ฐ์๋ ๋ฉํ ๋ง์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์๋ค์ ์ฐพ์๋ณด๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์. ๋จ์ ๊ฐ๋ฅด์น ์ ์๋ค๋ ๊ฑด ๊ทธ๋งํผ ๊น์ด ์๋ ์ง์์ ๊ฐ์ง๊ณ ์๋ค๋ ๋ป์ด๋๊น์!
์, ์ด์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ํ๊ฐํ ๋ ๋ด์ผ ํ ์ฃผ์ ํฌ์ธํธ๋ค์ ์์๋ดค์ด์. ํ์ง๋ง ์ด๊ฒ ๋ค๊ฐ ์๋์์! ๋ค์ ์น์ ์์๋ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฑ์ฉ ๊ณผ์ ์ ์งํํ๋ฉด ์ข์์ง ์์ธํ ์์๋ณผ ๊ฑฐ์์. ์ค๋น๋์ จ๋์? ๊ณ ๊ณ ! ๐
3. ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ํ๋ก์ธ์ค ๐ฏ
์, ์ด์ ์ค์ ๋ก ์ด๋ป๊ฒ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ฑ์ฉํ ์ง ๋จ๊ณ๋ณ๋ก ์ดํด๋ณผ๊น์? ์ฑ์ฉ ํ๋ก์ธ์ค๋ ํ์ฌ๋ง๋ค ๋ค๋ฅผ ์ ์์ง๋ง, ๋๋ต์ ์ผ๋ก ์ด๋ฐ ํ๋ฆ์ ๋ฐ๋ฅด๋ฉด ์ข์ ๊ฑฐ์์.
3.1 ์ฑ์ฉ ๊ณต๊ณ ์์ฑํ๊ธฐ
์ฒซ ๋จ๊ณ๋ ์ข์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ์์ฑํ๋ ๊ฑฐ์์. ๊ทธ๋ฅ "ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ๊ตฌํจ"์ด๋ผ๊ณ ํ๋ฉด ์ ๋ผ์! ใ ใ ใ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์คํฌ์ ์ ์ํ๋์ง, ์ด๋ค ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ฒ ๋ ์ง ๋ฑ์ ๋ช ํํ๊ฒ ์ ์ด์ฃผ์ธ์.
๐ก Tip: ์ฑ์ฉ ๊ณต๊ณ ์ ํ์ฌ์ ๊ธฐ์ ์คํ, ๊ฐ๋ฐ ๋ฌธํ, ์ฑ์ฅ ๊ธฐํ ๋ฑ๋ ํจ๊ป ์ธ๊ธํ๋ฉด ์ข์์. ์ด๋ฐ ์ ๋ณด๋ค์ด ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๋ค์ ๋์ด๋ค์ด๋ ๋ฐ ๋์์ด ๋ ๊ฑฐ์์!
์๋ฅผ ๋ค์ด, ์ด๋ฐ ์์ผ๋ก ์์ฑํด๋ณผ ์ ์๊ฒ ์ฃ ?
[์ฑ์ฉ] ํซํ ์คํํธ์
'์ฝ๋ฉ์กฐ์'์์ ํ์
์คํฌ๋ฆฝํธ ๋์๋ฅผ ์ฐพ์ต๋๋ค! ๐ฅท
์ฐ๋ฆฌ๋ ์ด๋ฐ ๋ถ์ ์ฐพ๊ณ ์์ด์:
- ํ์
์คํฌ๋ฆฝํธ์ React๋ฅผ ์ฌ์ฉํ 2๋
์ด์์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ฒฝํ
- RESTful API ๋ฐ GraphQL์ ๋ํ ์ดํด
- ํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD) ๊ฒฝํ์ ์ฐ๋
- ์๋ก์ด ๊ธฐ์ ํ์ต์ ๋ํ ์ด์ ๊ณผ ๋ฅ๋ ฅ
์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๊ฒ๋ค:
- ์ต์ M1 ๋งฅ๋ถ ํ๋ก ์ ๊ณต (ใ
ใ
๋ถ๋ฝ์ฃ ?)
- ์์ ๋ก์ด ์ฌํ๊ทผ๋ฌด (์ ์ท ์
๊ณ ์ผํด๋ ๋ผ์, ์ง์ง๋ก!)
- ์ฐ 1ํ ํด์ธ ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ ์ง์ (Vegas, baby! ๐ฐ)
- ๋ฌด์ ํ ๊ฐ์๊ณผ ์ปคํผ (์ด ์ฐ๋ ๊ฑด ๋ค์ด์์ ใ
ใ
)
๊ด์ฌ ์์ผ์ ๊ฐ์? ์ง๊ธ ๋ฐ๋ก ์ง์ํ์ธ์!
์ด๋ ฅ์์ ํจ๊ป GitHub ํ๋กํ, ๊ฐ๋ฐ ๋ธ๋ก๊ทธ ์ฃผ์๋ ๋ณด๋ด์ฃผ์๋ฉด ๋ ์ข์์ ๐
์ด๋์? ์ด๋ฐ ์์ผ๋ก ์ฐ๋ฉด ์ง์์๋ค์ ํฅ๋ฏธ๋ฅผ ๋ ์ ์๊ฒ ์ฃ ?
3.2 ์๋ฅ ์ ํ
์ง์์๋ค์ ์ด๋ ฅ์์ ํฌํธํด๋ฆฌ์ค๋ฅผ ๊ผผ๊ผผํ ์ดํด๋ณด์ธ์. ์ด๋ ์ฃผ์ํ ์ ์, ๋จ์ํ "ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฅ"์ด๋ผ๊ณ ์ ํ์๋ค๊ณ ํด์ ๋์ด๊ฐ๋ฉด ์ ๋๋ค๋ ๊ฑฐ์์. ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ๋์ง ํ์ธํด๋ด์ผ ํด์.
๐ก Tip: GitHub ํ๋กํ์ด๋ ๊ฐ๋ฐ ๋ธ๋ก๊ทธ๊ฐ ์๋ค๋ฉด ๊ผญ ํ์ธํด๋ณด์ธ์. ์ฝ๋ ํ์ง, ๋ฌธ์ํ ๋ฅ๋ ฅ, ๊ธฐ์ ์ ๋ํ ์ดํด๋ ๋ฑ์ ์ฟ๋ณผ ์ ์์ด์.
3.3 ์ฝ๋ฉ ํ ์คํธ
์๋ฅ ์ ํ์ ํต๊ณผํ ์ง์์๋ค์๊ฒ๋ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์งํํด๋ณด์ธ์. ์ด๋ ์ฃผ์ํ ์ ์, ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ง ๋ด์ง ๋ง๊ณ ์ค์ ์ ๋ฌด์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ๋ด๋ ๊ฒ ์ข์์.
์๋ฅผ ๋ค์ด, ์ด๋ฐ ๋ฌธ์ ๋ ์ด๋จ๊น์?
// ๋ค์๊ณผ ๊ฐ์ User ํ์
์ด ์์ต๋๋ค.
type User = {
id: number;
name: string;
email: string;
age?: number;
};
// 1. ์ ํ์
์์ 'id'๋ฅผ ์ ์ธํ ์๋ก์ด ํ์
'UserWithoutId'๋ฅผ ๋ง๋์ธ์.
// 2. User ๋ฐฐ์ด์ ๋ฐ์์ ๋์ด(age)์ ํ๊ท ์ ๊ณ์ฐํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
// ๋จ, age๊ฐ ์๋ User๋ ๊ณ์ฐ์์ ์ ์ธํฉ๋๋ค.
// 3. User ๊ฐ์ฒด๋ฅผ ๋ฐ์์ ํด๋น ๊ฐ์ฒด๊ฐ ์ ํจํ์ง ๊ฒ์ฌํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
// ์ ํจํ User๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํฉ๋๋ค:
// - name์ ๋น์ด์์ง ์์ ๋ฌธ์์ด
// - email์ '@'๋ฅผ ํฌํจํ ์ ํจํ ์ด๋ฉ์ผ ํ์
// - age๊ฐ ์๋ค๋ฉด 0๋ณด๋ค ํฐ ์ซ์
// ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ๊ฐ ๋ฌธ์ ์ ๋ํ ํ
์คํธ ์ฝ๋๋ ํจ๊ป ์์ฑํด์ฃผ์ธ์.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํตํด ํ์ ์คํฌ๋ฆฝํธ์ ํ์ ์์คํ ์ดํด๋, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ, ํ ์คํธ ์ฝ๋ ์์ฑ ๋ฅ๋ ฅ ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ํ๊ฐํ ์ ์์ด์.
3.4 ๊ธฐ์ ๋ฉด์
์ฝ๋ฉ ํ ์คํธ๋ฅผ ํต๊ณผํ ์ง์์๋ค๊ณผ ๊ธฐ์ ๋ฉด์ ์ ์งํํด๋ณด์ธ์. ์ด๋๋ ๋จ์ํ ์ง์์ ๋ฌป๋ ๊ฒ๋ณด๋ค๋, ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๋ณด๋ ๊ฒ ์ค์ํด์.
์๋ฅผ ๋ค์ด, ์ด๋ฐ ์ง๋ฌธ๋ค์ ํด๋ณผ ์ ์๊ฒ ์ฃ ?
- "ํ์ ์คํฌ๋ฆฝํธ์์ 'any' ํ์ ์ฌ์ฉ์ ์ต์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."
- "Union ํ์ ๊ณผ Intersection ํ์ ์ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."
- "ํ์ ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์? Promise, async/await์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."
- "ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ํฐ ํ๋ก์ ํธ์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ด๋ป๊ฒ ํ ์ ์์๊น์?"
- "ํ์ ์คํฌ๋ฆฝํธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ ๊ฒช์ ์ ์๋ ๋ฌธ์ ์ ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."
๐ก Tip: ๋ฉด์ ์ค์ ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ํ๊ฑฐ๋, ๊ธฐ์กด ์ฝ๋์ ๋ฌธ์ ์ ์ ์ฐพ์๋ด๊ณ ๊ฐ์ ํ๊ฒ ํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์. ์ด๋ฅผ ํตํด ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ๊ณผ ์ฝ๋ ํ์ง์ ๋ํ ์๋ชฉ์ ํ๊ฐํ ์ ์์ฃ .
3.5 ๋ฌธํ ์ ํฉ์ฑ ๋ฉด์
๊ธฐ์ ์ ์ธ ๋ฅ๋ ฅ๋ ์ค์ํ์ง๋ง, ํ๊ณผ ์ ์ด์ธ๋ฆด ์ ์๋์ง๋ ์ค์ํด์. ๋ฌธํ ์ ํฉ์ฑ ๋ฉด์ ์์๋ ์ง์์์ ์ฑ๊ฒฉ, ์ผํ๋ ์คํ์ผ, ํ์ํฌ ๋ฅ๋ ฅ ๋ฑ์ ํ๊ฐํด๋ณด์ธ์.
์ด๋ฐ ์ง๋ฌธ๋ค์ ํด๋ณผ ์ ์๊ฒ ์ฃ ?
- "ํ ๋ด์์ ์๊ฒฌ ์ถฉ๋์ด ์์ ๋ ์ด๋ป๊ฒ ๋์ฒํ์๋์?"
- "์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๊ณ ์ ์ฉํ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?"
- "์ง๊ธ๊น์ง ์ผํ๋ฉด์ ๊ฐ์ฅ ์ด๋ ค์ ๋ ์ ์ ๋ฌด์์ด์๊ณ , ์ด๋ป๊ฒ ๊ทน๋ณตํ์ จ๋์?"
- "์ฐ๋ฆฌ ํ์ฌ์ ๊ฐ๋ฐ ๋ฌธํ ์ค ๊ฐ์ฅ ๋ง์์ ๋๋ ์ ์ ๋ฌด์์ธ๊ฐ์?"
3.6 ์ต์ข ๊ฒฐ์ ๋ฐ ์คํผ
๋ชจ๋ ๊ณผ์ ์ ๊ฑฐ์น ํ, ํ ๋ด์์ ์ถฉ๋ถํ ๋ ผ์๋ฅผ ๊ฑฐ์ณ ์ต์ข ๊ฒฐ์ ์ ๋ด๋ฆฌ์ธ์. ๊ทธ๋ฆฌ๊ณ ํฉ๊ฒฉ์์๊ฒ๋ ์ ์คํ๊ณ ๋งค๋ ฅ์ ์ธ ์คํผ๋ฅผ ๋ณด๋ด์ธ์.
๐ก Tip: ์คํผ ์ ๋จ์ํ ์ฐ๋ด๋ง ์ ์ํ์ง ๋ง๊ณ , ํ์ฌ์์ ์ ๊ณตํ๋ ์ฑ์ฅ ๊ธฐํ, ํ๋ก์ ํธ์ ๋น์ ๋ฑ๋ ํจ๊ป ์ค๋ช ํด์ฃผ์ธ์. ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๋ค์ ๋จ์ํ ๋์ ์ฐ๋ด๋ณด๋ค๋ ์ฑ์ฅํ ์ ์๋ ํ๊ฒฝ์ ๋ ์ค์ํ๊ฒ ์ฌ๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์.
์, ์ด๋ ๊ฒ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ํ๋ก์ธ์ค์ ๋ํด ์์๋ดค์ด์. ์ด๋์? ์๊ฐ๋ณด๋ค ๋ณต์กํ์ฃ ? ใ ใ ใ ํ์ง๋ง ์ด๋ฐ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด ์ ๋ง ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๋ฅผ ๋ฝ์ ์ ์์ ๊ฑฐ์์!
๊ทธ๋ฐ๋ฐ ๋ง์ด์์, ํน์ ์ด๋ฐ ์๊ฐ ๋ค์ง ์๋์? "์... ์ด๊ฑฐ ํผ์ ๋ค ํ๋ ค๋ฉด ๋๋ฌด ํ๋ค๊ฒ ๋๋ฐ?" ๋ง์์, ์ฑ์ฉ์ ์ ๋ง ์ด๋ ค์ด ์ผ์ด์์. ๊ทธ๋์ ์ฌ๋ฅ๋ท ๊ฐ์ ํ๋ซํผ์ ํ์ฉํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด ๋ ์ ์์ด์. ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์ ์ฑ์ฉ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ํ๊ฑฐ๋, ๊ธฐ์ ๋ฉด์ ์ ๋ํํด์ค ์ ๋ฌธ๊ฐ๋ฅผ ์ฐพ์ ์๋ ์๊ฑฐ๋ ์. ์ฐธ๊ณ ํด๋ณด์ธ์! ๐
4. ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ์ ์ฃผ์ํ ์ โ ๏ธ
์, ์ด์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ด๋ป๊ฒ ๋ฝ์์ง ์์์ผ๋๊น ๋ฐ๋ก ์คํ์ ์ฎ๊ธฐ๋ฉด ๋๊ฒ ์ฃ ? ์ ๊น๋ง์! ์ฑ์ฉ ๊ณผ์ ์์ ์ฃผ์ํด์ผ ํ ์ ๋ค์ด ๋ช ๊ฐ์ง ์์ด์. ์ด๊ฒ๋ค๋ง ์กฐ์ฌํ๋ฉด ํจ์ฌ ๋ ํจ๊ณผ์ ์ผ๋ก ์ฑ์ฉํ ์ ์์ ๊ฑฐ์์.
4.1 ๊ณผ๋ํ ์ฝ๋ฉ ํ ์คํธ๋ ๊ธ๋ฌผ!
์ฝ๋ฉ ํ ์คํธ๋ ์ค์ํ์ง๋ง, ๋๋ฌด ์ด๋ ต๊ฑฐ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ํ ์คํธ๋ ์คํ๋ ค ์ญํจ๊ณผ๋ฅผ ๋ผ ์ ์์ด์. ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๋ค์ ์ด๋ฏธ ๋ฐ์ ๊ฒฝ์ฐ๊ฐ ๋ง๊ฑฐ๋ ์. 2-3์๊ฐ ์ ๋๋ฉด ์ถฉ๋ถํด์.
๐จ ์ฃผ์: "์ด ๋ฌธ์ ์ผ์ฃผ์ผ ์์ ํ์ด์ ๋ณด๋ด์ฃผ์ธ์~" ์ด๋ฐ ๊ฑด ์ ๋ ์ ๋ผ์! ใ ใ ใ ์๋ฌด๋ฆฌ ์ข์ ํ์ฌ๋ผ๋ ์ง์์์๊ฒ ๊ทธ๋ ๊ฒ ๋ง์ ์๊ฐ์ ์๊ตฌํ๋ฉด ์ ๋ฉ๋๋ค.
4.2 ํ์ ์คํฌ๋ฆฝํธ๋ง ๊ณ ์งํ์ง ๋ง๊ธฐ
ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ๋ฝ๋๋ค๊ณ ํด์ ํ์ ์คํฌ๋ฆฝํธ๋ง ์๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ฉด ์ ๋ผ์. ๊ฒฐ๊ตญ ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ์ด๋๊น์. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ๊น์ ์ดํด๋ ํ์์์.
๐ก Tip: ๋ฉด์ ๋ "ํ์ ์คํฌ๋ฆฝํธ์ ์ฅ์ ๋ง ๋ง์ํด ์ฃผ์ธ์"๊ฐ ์๋๋ผ "ํ์ ์คํฌ๋ฆฝํธ์ ์ฅ๋จ์ ์ ๋น๊ตํด์ ์ค๋ช ํด์ฃผ์ธ์"๋ผ๊ณ ๋ฌผ์ด๋ณด์ธ์. ๊ท ํ ์กํ ์๊ฐ์ ๊ฐ์ง ๊ฐ๋ฐ์๋ฅผ ์ฐพ์ ์ ์์ ๊ฑฐ์์.
4.3 ๊ฒฝ๋ ฅ๋ง์ผ๋ก ํ๋จํ์ง ๋ง๊ธฐ
ํ์ ์คํฌ๋ฆฝํธ ๊ฒฝ๋ ฅ์ด ๊ธธ๋ค๊ณ ํด์ ๋ฌด์กฐ๊ฑด ์ค๋ ฅ์ด ์ข์ ๊ฑด ์๋์์. ๋ฐ๋๋ก ๊ฒฝ๋ ฅ์ด ์งง๋ค๊ณ ํด์ ์ค๋ ฅ์ด ์๋ ๊ฒ๋ ์๋๊ณ ์. ์ค์ ํ๋ก์ ํธ ๊ฒฝํ๊ณผ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๋ ์ค์ํ๊ฒ ๋ด์ผ ํด์.
์๋ฅผ ๋ค์ด, ์ด๋ฐ ์ง๋ฌธ์ ํด๋ณผ ์ ์๊ฒ ์ฃ ?
"ํ์
์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐํ๋ฉด์ ๊ฐ์ฅ ์ด๋ ค์ ๋ ๋ฌธ์ ๋ ๋ฌด์์ด์๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ์
จ๋์? ๊ทธ ๊ณผ์ ์์ ๋ฌด์์ ๋ฐฐ์ฐ์
จ๋์?"
์ด๋ฐ ์ง๋ฌธ์ ํตํด ์ค์ ๊ฒฝํ๊ณผ ํ์ต ๋ฅ๋ ฅ์ ๋์์ ํ๊ฐํ ์ ์์ด์.
4.4 ํ ๋ฌธํ์์ ์ ํฉ์ฑ ๊ฐ๊ณผํ์ง ๋ง๊ธฐ
์๋ฌด๋ฆฌ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํด๋ ํ๊ณผ ์ ์ด์ธ๋ฆฌ์ง ๋ชปํ๋ฉด ์์ฉ์์ด์. ๊ธฐ์ ์ ์ธ ๋ฉด ๋ชป์ง์๊ฒ ํ ๋ฌธํ์์ ์ ํฉ์ฑ๋ ์ค์ํ๊ฒ ๋ด์ผ ํด์.
๐ก Tip: ๋ฉด์ ๋ ํ ๋ฉค๋ฒ๋ค๊ณผ ์ ๊น ๋ํํ ์ ์๋ ์๊ฐ์ ๋ง๋ จํด๋ณด๋ ๊ฒ๋ ์ข์์. ์๋ก ์ผ๊ตด์ ๋ณด๊ณ ์ด์ผ๊ธฐ๋ฅผ ๋๋๋ค ๋ณด๋ฉด ํ๊ณผ ์ ๋ง์์ง ๊ฐ์ ์ก์ ์ ์์ฃ .
4.5 ์ง์์ ์ธ ํ์ต ๋ฅ๋ ฅ ๋ฌด์ํ์ง ๋ง๊ธฐ
ํ์ ์คํฌ๋ฆฝํธ๋ ๊ณ์ ๋ฐ์ ํ๊ณ ์์ด์. ํ์ฌ ์ค๋ ฅ๋ ์ค์ํ์ง๋ง, ์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ๊ณ ์ ์ฉํ ์ ์๋ ๋ฅ๋ ฅ์ด ๋ ์ค์ํ ์ ์์ด์.
์ด๋ฐ ์ง๋ฌธ์ ํด๋ณด๋ ๊ฑด ์ด๋จ๊น์?
"์ต๊ทผ์ ์๋กญ๊ฒ ๋ฐฐ์ด ํ์
์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ด๋ ํจํด์ด ์๋์? ์ด๋ค ์ํฉ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์๊น์?"
์ด๋ฅผ ํตํด ์ง์์์ ํ์ต ์์ง์ ๋ฅ๋ ฅ์ ํ์ ํ ์ ์์ด์.
4.6 ๊ณผ๋ํ ๊ธฐ๋๋ ๊ธ๋ฌผ
"ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ๋ฝ์์ผ๋ ์ด์ ๋ชจ๋ ๋ฒ๊ทธ๊ฐ ์ฌ๋ผ์ง ๊ฑฐ์ผ!" ์ด๋ฐ ์๊ฐ์ ์ ๋ ํ์ง ๋ง์ธ์. ใ ใ ใ ํ์ ์คํฌ๋ฆฝํธ๋ ๋๊ตฌ์ผ ๋ฟ์ด์์. ๊ฒฐ๊ตญ ์ค์ํ ๊ฑด ๊ฐ๋ฐ์์ ์ค๋ ฅ๊ณผ ๊ฒฝํ์ด์์.
๐จ ์ฃผ์: ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ "๋ง๋ฅ ํด๊ฒฐ์ฌ"๋ก ์๊ฐํ์ง ๋ง์ธ์. ํ์ ์คํฌ๋ฆฝํธ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ์ง๋ง, ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ์ง ์์์.
์, ์ด์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ์ ์ฃผ์ํ ์ ๋ค์ ์์๋ดค์ด์. ์ด๋ฐ ์ ๋ค์ ์ผ๋์ ๋๊ณ ์ฑ์ฉ์ ์งํํ๋ฉด ํจ์ฌ ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ ๊ฑฐ์์!
๊ทธ๋ฐ๋ฐ ๋ง์ด์์, ์ด๋ ๊ฒ ๋ง์ ๊ฑธ ๊ณ ๋ คํ๋ค ๋ณด๋ฉด ๋จธ๋ฆฌ๊ฐ ์ํ ์ ์์ด์. ๊ทธ๋ด ๋๋ ์ฌ๋ฅ๋ท๊ฐ์ ํ๋ซํผ์ ํ์ฉํด๋ณด๋ ๊ฒ๋ ์ข์์. ์ฑ์ฉ ์ ๋ฌธ๊ฐ์ ์กฐ์ธ์ ๋ฐ๊ฑฐ๋, ๊ฒฝํ ๋ง์ ๊ฐ๋ฐ์์ ๋์์ ๋ฐ์ ์ ์๊ฑฐ๋ ์. ํผ์ ๊ณ ๋ฏผํ์ง ๋ง๊ณ , ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์๋ณด์ธ์! ๐
5. ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ํ ๊ด๋ฆฌ ๐ฑ
์, ์ด์ ์ด์ฌํ ๋ ธ๋ ฅํด์ ํ๋ฅญํ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ฑ์ฉํ์ด์. ๋๋ฌ๋ค๊ณ ์๊ฐํ์๋์? ์๋์์! ์ฌ์ค ์ง์ง ์ค์ํ ๊ฑด ์ง๊ธ๋ถํฐ์์. ์ด๋ป๊ฒ ํ๋ฉด ์ฑ์ฉํ ๊ฐ๋ฐ์๊ฐ ๊ณ์ํด์ ์ฑ์ฅํ๊ณ ํ์ฌ์ ๊ธฐ์ฌํ ์ ์์๊น์?
5.1 ์ง์์ ์ธ ํ์ต ๊ธฐํ ์ ๊ณต
ํ์ ์คํฌ๋ฆฝํธ๋ ๊ณ์ ๋ฐ์ ํ๊ณ ์์ด์. ๊ฐ๋ฐ์๋ค์ด ์ต์ ํธ๋ ๋๋ฅผ ๋ฐ๋ผ๊ฐ ์ ์๋๋ก ์ง์ํด์ฃผ์ธ์.
- ์ ๊ธฐ์ ์ธ ๊ธฐ์ ์ธ๋ฏธ๋ ๊ฐ์ต
- ์จ๋ผ์ธ ๊ฐ์ ์๊ฐ ์ง์
- ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ ์ง์
๐ก Tip: "ํ์ ์คํฌ๋ฆฝํธ ํํ ๋ฆฌ์ผ ์์ฑํ๊ธฐ" ๊ฐ์ ์ฌ๋ด ํ๋ก์ ํธ๋ฅผ ์งํํด๋ณด๋ ๊ฒ๋ ์ข์์. ๊ฐ๋ฅด์น๋ฉด์ ๋ฐฐ์ฐ๋ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์ฃ !
5.2 ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ ์ ์ฐฉ
ํ์ ์คํฌ๋ฆฝํธ์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ํ ์ ์ฒด๊ฐ ์ข์ ์ฝ๋ฉ ๊ดํ์ ๊ณต์ ํด์ผ ํด์. ์ ๊ธฐ์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ์๋ก์ ์ฝ๋๋ฅผ ๊ฐ์ ํ๊ณ ๋ฐฐ์ธ ์ ์์ด์.
// ์ข์ ์์
function greet(name: string): string {
return `Hello, ${name}!`;
}
// ๊ฐ์ ์ด ํ์ํ ์์
function greet(name): any {
return "Hello, " + name + "!";
}
์ด๋ฐ ์์ผ๋ก ๊ตฌ์ฒด์ ์ธ ์์๋ฅผ ๋ค์ด๊ฐ๋ฉฐ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด ๋ ํจ๊ณผ์ ์ด์์.
5.3 ํ์ ์คํฌ๋ฆฝํธ ๊ฐ์ด๋๋ผ์ธ ์ ์
ํ ๋ด์์ ์ผ๊ด๋ ์ฝ๋ฉ ์คํ์ผ์ ์ ์งํ๊ธฐ ์ํด ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ฉ ๊ฐ์ด๋๋ผ์ธ์ ๋ง๋ค์ด๋ณด์ธ์.
- ๋ค์ด๋ฐ ์ปจ๋ฒค์ (์: camelCase vs snake_case)
- ํ์ผ ๊ตฌ์กฐ ๋ฐ ๋ชจ๋ํ ๋ฐฉ์
- 'any' ํ์ ์ฌ์ฉ์ ๋ํ ๊ท์น
- ์ธํฐํ์ด์ค vs ํ์ ๋ณ์นญ ์ฌ์ฉ ๊ธฐ์ค
๐ก Tip: ESLint์ Prettier๋ฅผ ํ์ฉํ๋ฉด ์ด๋ฐ ๊ท์น๋ค์ ์๋์ผ๋ก ์ ์ฉํ ์ ์์ด์. ๊ฐ๋ฐ์๋ค์ ์๊ณ ๋ฅผ ๋์ด์ค ์ ์์ฃ !
5.4 ์ฑ๊ณผ ํ๊ฐ ๋ฐ ํผ๋๋ฐฑ
์ ๊ธฐ์ ์ผ๋ก ๊ฐ๋ฐ์๋ค์ ์ฑ๊ณผ๋ฅผ ํ๊ฐํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ธ์. ์ด๋ ๋จ์ํ "ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฐ๋?"๊ฐ ์๋๋ผ ๋ค์๊ณผ ๊ฐ์ ์ ๋ค์ ์ข ํฉ์ ์ผ๋ก ๋ด์ผ ํด์:
- ์ฝ๋ ํ์ง ํฅ์ ์ ๋
- ํ ๋ด ์ง์ ๊ณต์ ํ๋
- ์๋ก์ด ๊ธฐ์ ๋์ ๋ฐ ์ ์ฉ ๋ฅ๋ ฅ
- ํ๋ก์ ํธ ๊ธฐ์ฌ๋
5.5 ํ ๋น๋ฉ ํ๋
๊ธฐ์ ์ ์ธ ๋ฉด ๋ชป์ง์๊ฒ ํ์ํฌ๋ ์ค์ํด์. ์ ๊ธฐ์ ์ธ ํ ๋น๋ฉ ํ๋์ ํตํด ํ ๋ถ์๊ธฐ๋ฅผ ์ข๊ฒ ๋ง๋ค์ด์ฃผ์ธ์.
- ํ์ ์คํฌ๋ฆฝํธ ๊ด๋ จ ํด์ฆ ๋ํ
- ํ ํ๋ก์ ํธ ํด์ปคํค
- ํ์ ์คํฌ๋ฆฝํธ ๋ฐ์ ์ฐธ๊ฐ
๐ก Tip: ์ฌ๋ฅ๋ท์์ ํ์ ์คํฌ๋ฆฝํธ ์ ๋ฌธ๊ฐ๋ฅผ ์ด์ฒญํด ํน๊ฐ์ ๋ค์ด๋ณด๋ ๊ฒ๋ ์ข์ ์์ด๋์ด์์. ์๋ก์ด ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์์ ๊ฑฐ์์!
5.6 ์คํ ์์ค ์ฐธ์ฌ ์ฅ๋ ค
ํ์ ์คํฌ๋ฆฝํธ ๊ด๋ จ ์คํ ์์ค ํ๋ก์ ํธ์ ์ฐธ์ฌํ๋๋ก ๋ ๋ คํด๋ณด์ธ์. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ค์ ๋ ๋์ ์ปค๋ฎค๋ํฐ์ ์ํตํ๋ฉฐ ์ฑ์ฅํ ์ ์์ด์.
์๋ฅผ ๋ค์ด, DefinitelyTyped ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๊ฒ์ ํ์ ์คํฌ๋ฆฝํธ ์ค๋ ฅ์ ํค์ฐ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์.
5.7 ๋ฉํ ๋ง ํ๋ก๊ทธ๋จ ์ด์
์๋์ด ๊ฐ๋ฐ์์ ์ฃผ๋์ด ๊ฐ๋ฐ์๋ฅผ ๋งค์นญํด ๋ฉํ ๋ง ํ๋ก๊ทธ๋จ์ ์ด์ํด๋ณด์ธ์. ๊ฒฝํ๊ณผ ์ง์์ ๊ณต์ ํ๋ฉฐ ํจ๊ป ์ฑ์ฅํ ์ ์์ด์.
์, ์ด๋ ๊ฒ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ ํ ๊ด๋ฆฌ์ ๋ํด ์์๋ดค์ด์. ์ด๋์? ์๊ฐ๋ณด๋ค ํ ์ผ์ด ๋ง์ฃ ? ใ ใ ใ ํ์ง๋ง ์ด๋ฐ ๋ ธ๋ ฅ๋ค์ด ๋ชจ์ฌ์ ์ ๋ง ํ๋ฅญํ ๊ฐ๋ฐํ์ ๋ง๋ค ์ ์์ด์!
๊ทธ๋ฐ๋ฐ ์ด ๋ชจ๋ ๊ฑธ ํผ์ ํ๋ ค๋ฉด ์ ๋ง ํ๋ค๊ฒ ์ฃ ? ๊ทธ๋ด ๋๋ ์ฌ๋ฅ๋ท๊ฐ์ ํ๋ซํผ์ ํ์ฉํด๋ณด์ธ์. ๊ฐ๋ฐ์ ๊ต์ก ํ๋ก๊ทธ๋จ์ ์ฐพ์๋ณด๊ฑฐ๋, ๋ฉํ ๋ง ์๋น์ค๋ฅผ ์ด์ฉํด๋ณผ ์ ์์ด์. ํ์ฌ์ ์ํฉ์ ๋ง๋ ์ต์ ์ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฐ ๋์์ ๋ฐ์ ์ ์์ ๊ฑฐ์์. ํ์ดํ ! ๐ช
6. ๋ง๋ฌด๋ฆฌ: ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ, ์ด๋ ๊ฒ ํ์ธ์! ๐
ํด~ ๊ธด ์ฌ์ ์ด์์ฃ ? ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ์ ๋ํด ์ ๋ง ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ด์. ์ด์ ๋ง์ง๋ง์ผ๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณผ๊ฒ์!
6.1 ํต์ฌ ํฌ์ธํธ ์์ฝ
- ์ฑ์ฉ ๊ณต๊ณ ์์ฑ: ๊ตฌ์ฒด์ ์ด๊ณ ๋งค๋ ฅ์ ์ธ ๊ณต๊ณ ๋ฅผ ์์ฑํ์ธ์.
- ์๋ฅ ์ ํ: ์ด๋ ฅ์๋ฟ๋ง ์๋๋ผ ํฌํธํด๋ฆฌ์ค, GitHub ๋ฑ์ ๊ผผ๊ผผํ ํ์ธํ์ธ์.
- ์ฝ๋ฉ ํ ์คํธ: ์ค๋ฌด์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ณ , ๊ณผ๋ํ๊ฒ ์ด๋ ต์ง ์๊ฒ ํด์ฃผ์ธ์.
- ๊ธฐ์ ๋ฉด์ : ๊น์ด ์๋ ์ง๋ฌธ์ผ๋ก ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํ๊ฐํ์ธ์.
- ๋ฌธํ ์ ํฉ์ฑ ๋ฉด์ : ํ๊ณผ ์ ์ด์ธ๋ฆด ์ ์๋ ์ฌ๋์ธ์ง ํ์ธํ์ธ์.
- ์ฑ์ฉ ํ ๊ด๋ฆฌ: ์ง์์ ์ธ ํ์ต ๊ธฐํ ์ ๊ณต, ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ ์ ์ฐฉ, ์ฑ๊ณผ ํ๊ฐ ๋ฑ์ ํตํด ๊ฐ๋ฐ์๋ค์ด ๊ณ์ ์ฑ์ฅํ ์ ์๋๋ก ์ง์ํด์ฃผ์ธ์.
๐ก Tip: ๋ชจ๋ ๊ณผ์ ์์ ์ฌ๋ฅ๋ท๊ฐ์ ํ๋ซํผ์ ํ์ฉํ๋ฉด ๋ ํจ์จ์ ์ผ๋ก ์ฑ์ฉ์ ์งํํ ์ ์์ด์. ์ ๋ฌธ๊ฐ์ ๋์์ ๋ฐ์๋ณด์ธ์!
6.2 ๋ง์ง๋ง ์กฐ์ธ
ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ, ์ ๋ง ์ค์ํ์ง๋ง ์ฝ์ง ์์ ์ผ์ด์์. ํ์ง๋ง ๋๋ฌด ์คํธ๋ ์ค ๋ฐ์ง ๋ง์ธ์! ์๋ฒฝํ ๊ฐ๋ฐ์๋ ์์ด์. ์ค์ํ ๊ฑด ๊ณ์ํด์ ์ฑ์ฅํ ์ ์๋ ์ฌ๋, ํ๊ณผ ์ ์ด์ธ๋ฆด ์ ์๋ ์ฌ๋์ ์ฐพ๋ ๊ฑฐ์์.
๊ทธ๋ฆฌ๊ณ ์์ง ๋ง์ธ์. ์ฑ์ฉ์ ๋์ด ์๋๋ผ ์์์ด์์. ์ฑ์ฉ ํ์๋ ๊ฐ๋ฐ์๋ค์ด ๊ณ์ํด์ ์ฑ์ฅํ ์ ์๋๋ก ์ง์ํด์ฃผ๋ ๊ฒ ์ ๋ง ์ค์ํด์.
๋ง์ง๋ง์ผ๋ก, ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ์ ๋ํด ์ด์ผ๊ธฐํ๋ค ๋ณด๋ ๋ฌธ๋ ์ด๋ฐ ์๊ฐ์ด ๋ค์์ด์. ๊ฐ๋ฐ์๋ฅผ ์ฑ์ฉํ๋ ๊ฒ๋ ์ผ์ข ์ 'ํ์ ์ฒดํฌ'๊ฐ์์. ์ฐ๋ฆฌ ํ์ฌ์ ์ ๋ง๋ 'ํ์ '์ ๊ฐ๋ฐ์๋ฅผ ์ฐพ๋ ๊ฑฐ์ฃ . ใ ใ ใ
type OurCompany = {
culture: "์ด์ ์ " | "ํ์ ์ " | "ํ๋ ฅ์ ";
projects: "์น ๊ฐ๋ฐ" | "๋ชจ๋ฐ์ผ ์ฑ" | "AI";
snacks: "๋ฌด์ ํ" | "์ ๋นํ" | "๊ฑด๊ฐ์";
};
type IdealDeveloper = {
skills: "TypeScript" | "React" | "Node.js";
personality: "ํ์ํฌ" | "์ฐฝ์์ฑ" | "์ฑ
์๊ฐ";
coffeeConsumption: "๋ง์ด" | "์์ฒญ ๋ง์ด" | "IV๋ก ์ฃผ์
";
};
function hireDeveloper(developer: IdealDeveloper): OurCompany {
// ์ฌ๊ธฐ์ ๋งค์ง์ด ์ผ์ด๋ฉ๋๋ค! โจ
return {
culture: "์ด์ ์ ",
projects: "์น ๊ฐ๋ฐ",
snacks: "๋ฌด์ ํ"
};
}
๋๋ด์ด์์, ๋๋ด! ใ ใ ใ ํ์ง๋ง ์ง์ฌ์ ๋ด์ ๋ง์๋๋ฆด๊ฒ์. ์ข์ ๊ฐ๋ฐ์๋ฅผ ์ฐพ๋ ๊ฒ๋ ์ค์ํ์ง๋ง, ๊ทธ ๊ฐ๋ฐ์๊ฐ ๋น์ ๋ฐํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ๋ ์ ๋ง ์ค์ํด์. ์ฌ๋ฌ๋ถ์ ํ์ฌ๊ฐ ๊ฐ๋ฐ์๋ค์ด ์ผํ๊ณ ์ถ์ด ํ๋ ๋ฉ์ง ํ์ฌ๊ฐ ๋๊ธธ ๋ฐ๋๊ฒ์! ๐
์, ์ด์ ์ ๋ง ๋์ด์์! ๊ธด ๊ธ ์ฝ๋๋ผ ๊ณ ์ ๋ง์ผ์ จ์ด์. ์ด ๊ธ์ด ์ฌ๋ฌ๋ถ์ ํ์ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ์ฑ์ฉ์ ์กฐ๊ธ์ด๋ผ๋ ๋์์ด ๋์๊ธธ ๋ฐ๋ผ์. ํ์ดํ ! ๐
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ