TypeScriptμ κ°λ ₯ν κΈ°λ₯μ νμ©νμ¬ μ κ·μμΌλ‘ κ²μ¦λ λ¬Έμμ΄μ μ μ©νκ³ , κΈλ‘λ² λͺ¨λ² μ¬λ‘μ μμ λ₯Ό ν΅ν΄ κ΅μ μ μΈ μννΈμ¨μ΄ κ°λ°μμ νμ μμ μ±κ³Ό μ½λ νμ§μ ν₯μμν€λ λ°©λ²μ μμ보μΈμ.
TypeScript μ κ·μ κ²μ¦ λ¬Έμμ΄: κΈλ‘λ² μ ν리μΌμ΄μ μ μν ν¨ν΄ νμ μμ μ±
μννΈμ¨μ΄ κ°λ°μ μΈκ³μμ λ°μ΄ν°μ μ νμ±κ³Ό 무결μ±μ 보μ₯νλ κ²μ νΉν κΈλ‘λ² μ¬μ©μλ₯Ό μν μ ν리μΌμ΄μ μ ꡬμΆν λ κ°μ₯ μ€μν©λλ€. λ°μ΄ν° κ²μ¦μ μ€μν μΈ‘λ©΄ μ€ νλλ λ¬Έμμ΄μ λ€λ£¨λ κ²μ΄λ©°, μ΄ λ§₯λ½μμ μ κ· ννμ(regex)μ λ§€μ° μ€μν΄μ§λλ€. κ°λ ₯ν νμ΄ν μμ€ν μ κ°μΆ TypeScriptλ μ κ·μ ν¨ν΄μ κΈ°λ°μΌλ‘ λ¬Έμμ΄μ κ²μ¦νλ κ°λ ₯ν λ°©λ²μ μ 곡νμ¬ νμ μμ μ±κ³Ό μ½λ νμ§μ ν¬κ² ν₯μμν΅λλ€. μ΄ λΈλ‘κ·Έ κ²μλ¬Όμμλ TypeScriptμ κΈ°λ₯μ νμ©νμ¬ μ κ·μμΌλ‘ κ²μ¦λ λ¬Έμμ΄μ ꡬννλ λ°©λ²μ μμΈν μ΄ν΄λ³΄κ³ μ μΈκ³ κ°λ°μμκ² μ ν©ν ν¬κ΄μ μΈ κ°μ΄λλ₯Ό μ 곡ν©λλ€.
μ κ·μκ³Ό TypeScriptκ° μλ²½ν μ‘°ν©μΈ μ΄μ
μ κ· ννμμ λ¬Έμμ΄μμ ν¨ν΄μ μΌμΉμν€λ μ μ°νκ³ κ°λ ₯ν λꡬμ λλ€. κ°λ°μλ μ΄λ₯Ό ν΅ν΄ 볡μ‘ν κ²μ¦ κ·μΉμ μ μνμ¬ λ°μ΄ν°κ° νΉμ νμμ λ°λ₯΄λλ‘ ν μ μμ΅λλ€. JavaScriptμ μμ μ§ν©μΈ TypeScriptλ μ μ νμ΄νμ μ 곡νμ¬ μ€λ₯λ₯Ό μ‘°κΈ°μ λ°κ²¬νκ³ μ½λ μ μ§λ³΄μμ±μ ν₯μμν΅λλ€. μ κ·μμ ννλ ₯κ³Ό TypeScriptμ νμ μμ€ν μ κ²°ν©νλ©΄ λ¬Έμμ΄ κ²μ¦μ μν κ²¬κ³ ν μ루μ μ΄ λ§λ€μ΄μ§λ©°, μ΄λ μ λ’°ν μ μλ μ ν리μΌμ΄μ μ ꡬμΆνλ λ° νμμ μ λλ€. μ΄λ μ§μ λ° λ¬Ένμ κ΄μ΅μ λ°λΌ μ λ ₯ λ°μ΄ν°κ° ν¬κ² λ€λ₯Ό μ μλ κΈλ‘λ² μννΈμ¨μ΄μμ νΉν μ€μν©λλ€.
TypeScriptμμ μ κ·μμΌλ‘ κ²μ¦λ λ¬Έμμ΄μ μ΄μ
- ν₯μλ νμ μμ μ±: TypeScriptμ νμ μμ€ν μ μ»΄νμΌ νμμ μ€λ₯λ₯Ό λ°©μ§νμ¬ μλͺ»λ λ°μ΄ν° νμκ³Ό κ΄λ ¨λ λ°νμ λ¬Έμ μ κ°λ₯μ±μ μ€μ λλ€.
- ν₯μλ μ½λ κ°λ μ±: λͺ ννκ² μ μλ μ κ·μ ν¨ν΄μ μ½λλ₯Ό λ μ΄ν΄νκΈ° μ½κ³ μ μ§λ³΄μνκΈ° μ’κ² λ§λ€λ©°, νΉν κ΅μ κ°λ°νκ³Ό νμ ν λ μ μ©ν©λλ€.
- λ²κ·Έ κ°μ: μ‘°κΈ° κ²μ¦μ λ°νμμ λλ¬νκΈ° μ μ μ€λ₯λ₯Ό ν¬μ°©νμ¬ μκΈ°μΉ μμ λμμ κ°λ₯μ±μ μ€μ΄κ³ μ λ°μ μΈ μννΈμ¨μ΄ νμ§μ ν₯μμν΅λλ€.
- μ μ§λ³΄μμ± μ¦λ: μ μ νκ² νμ μ΄ μ§μ λκ³ κ²μ¦λ λ¬Έμμ΄μ μμ λ° λ¦¬ν©ν λ§μ΄ λ μ¬μ, μ§ννλ μννΈμ¨μ΄ νλ‘μ νΈμμ λ§€μ° μ€μν©λλ€.
- κ°μνλ λλ²κΉ : μ»΄νμΌ νμ κ²μ¦μ μ μ¬μ μΈ λ¬Έμ λ₯Ό μ‘°κΈ°μ μλ³νμ¬ λλ²κΉ νλ‘μΈμ€λ₯Ό λ¨μνν©λλ€.
TypeScriptμμ μ κ·μ κ²μ¦ λ¬Έμμ΄ κ΅¬ννκΈ°
TypeScriptλ μ κ·μμΌλ‘ κ²μ¦λ λ¬Έμμ΄μ ꡬννλ μ¬λ¬ κ°μ§ μ κ·Ό λ°©μμ μ 곡ν©λλ€. κ°μ₯ μΌλ°μ μΈ λ°©λ²μ 리ν°λ΄ νμ κ³Ό ν νλ¦Ώ 리ν°λ΄ νμ , κ·Έλ¦¬κ³ νμ λ¨μΈμ ν¨κ» μ¬μ©νλ κ²μ λλ€. κΈλ‘λ² κ³ λ €μ¬νμ μ€μμ±μ μΌλμ λκ³ μ€μ©μ μΈ μμ μ ν¨κ» μ΄λ¬ν κΈ°μ λ€μ μ΄ν΄λ³΄κ² μ΅λλ€.
1. 리ν°λ΄ νμ κ³Ό ν νλ¦Ώ 리ν°λ΄ νμ
μ΄ μ κ·Ό λ°©μμ μ¬μ©νλ©΄ νΉμ μ κ·μ ν¨ν΄κ³Ό μΌμΉνλ νμ μ μ μν μ μμ΅λλ€. μ΄λ νμ μ μ λ΄μμ λ¬Έμμ΄ λ¦¬ν°λ΄μ λνλ΄λ TypeScriptμ κΈ°λ₯μ νμ©ν©λλ€.
type Email = `${string}@${string}.${string}`;
function isValidEmail(email: string): email is Email {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return emailRegex.test(email);
}
function sendEmail(email: Email, subject: string, body: string): void {
console.log(`Sending email to ${email} with subject: ${subject}`);
}
const validEmail: Email = 'test@example.com';
sendEmail(validEmail, 'Hello', 'This is a test email.');
const invalidEmail = 'invalid-email';
if (isValidEmail(invalidEmail)) {
sendEmail(invalidEmail, 'Hello', 'This is a test email.');
}
μ΄ μμ μμ Email
νμ
μ μ΄λ©μΌ μ£Όμμ ꡬ쑰λ₯Ό κ°λ
μ μΌλ‘ λνλ΄λ ν
νλ¦Ώ 리ν°λ΄μ μ¬μ©νμ¬ μ μλμμ΅λλ€. κ·Έλ¬λ μ΄ λ°©λ²μ λ³Έμ§μ μΌλ‘ νμ
μμ€μμ μ κ·μ κ²μ¦μ κ°μ νμ§λ μμ΅λλ€. μ΄λ₯Ό κ²μ¦νλ €λ©΄ isValidEmail
κ³Ό κ°μ ν¨μλ₯Ό μ¬μ©ν λ€μ νμ
κ°λλ₯Ό μ¬μ©ν΄μΌ ν©λλ€. μ΄ λ°©λ²μ νμ
μ μμ ν λ©μ»€λμ¦μ μ 곡ν©λλ€.
2. μ κ·μ κ²μ¦κ³Ό νμ λ¨μΈ
μ΄ λ°©λ²μ νμ λ¨μΈμ μ¬μ©νμ¬ λ¬Έμμ΄μ΄ νΉμ νμ μ μ€μν¨μ TypeScriptμ λͺ μμ μΌλ‘ μ리λ κ²μ ν¬ν¨ν©λλ€. μ»΄νμΌ νμ μμ μ±μ λ¨μ΄μ§μ§λ§, μ€μ©μ μΈ μ κ·Όμ μν΄ λ°νμ κ²μ¦κ³Ό κ²°ν©ν μ μμ΅λλ€.
interface ValidatedString {
value: string;
isValid: boolean;
}
function validateString(input: string, regex: RegExp): ValidatedString {
return {
value: input,
isValid: regex.test(input)
};
}
const phoneNumberRegex = /^\+?[1-9]\d{1,14}$/;
const phoneNumberInput = '+15551234567';
const validatedPhoneNumber = validateString(phoneNumberInput, phoneNumberRegex);
if (validatedPhoneNumber.isValid) {
const phoneNumber = validatedPhoneNumber.value as string; // Type assertion
console.log(`Valid phone number: ${phoneNumber}`);
} else {
console.log('Invalid phone number');
}
μ΄ μμ μμ validateString
ν¨μλ λ¬Έμμ΄κ³Ό μ κ·μμ λ°μ΅λλ€. μ΄ ν¨μλ μλ³Έ λ¬Έμμ΄κ³Ό μ κ·μ μΌμΉ μ¬λΆλ₯Ό λνλ΄λ λΆλ¦¬μΈ κ°μ ν¬ν¨νλ κ°μ²΄λ₯Ό λ°νν©λλ€. κ²μ¦λ ν λ°νλ λ¬Έμμ΄μ΄ μ¬λ°λ₯Έ νμ
μμ 보μ₯νκΈ° μν΄ νμ
λ¨μΈμ΄ μ¬μ©λ©λλ€. μ΄ μ κ·Ό λ°©μμ μ μ°ν κ²μ¦μ νμ©νμ§λ§, κ°λ°μλ κ²μ¦λ κ°μ μ¬λ°λ₯Έ μ¬μ©μ 보μ₯ν μ±
μμ΄ μμ΅λλ€. μ΄λ νμμ΄ λ€μν κ΅μ μ νλ²νΈμ νΉν μ μ©ν©λλ€.
3. μλνν° λΌμ΄λΈλ¬λ¦¬ μ¬μ©
μ¬λ¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ TypeScriptμμ μ κ·μ κ²μ¦ κ³Όμ μ λ¨μνν μ μμ΅λλ€. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μ’
μ’
λ κ³ κΈ κΈ°λ₯μ μ 곡νκ³ νμν μμ©κ΅¬ μ½λλ₯Ό μ€μ¬μ€λλ€. μΌλ°μ μΈ μ΅μ
μ λ¬Έμμ΄μ κ°μΈλ μ¬μ©μ μ μ νμ
μ λ§λ€κ³ νμ
λ΄λΆμμ λ¬Έμμ΄μ κ²μ¦νλ κ²μ
λλ€. zod
λ superstruct
μ κ°μ λΌμ΄λΈλ¬λ¦¬λ μ κ·μ κΈ°λ° κ²μ¦μ ν¬ν¨ν κ°λ ₯ν λ°μ΄ν° κ²μ¦ μ루μ
μ μ 곡ν©λλ€. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μΌλ°μ μΌλ‘ νμ
μΆλ‘ κΈ°λ₯μ΄ λ΄μ₯λμ΄ μμ΄ λμμ΄ λ©λλ€. λ κ΄λ²μν κ²μ¦ νλ μμν¬λ₯Ό μ°Ύκ³ μλ€λ©΄ μ΄λ¬ν μ΅μ
μ κ³ λ €ν΄ λ³΄μΈμ.
import * as z from 'zod';
const emailSchema = z.string().email();
try {
const validatedEmail = emailSchema.parse('valid.email@example.com');
console.log(`Validated email: ${validatedEmail}`);
}
catch (error) {
console.error((error as z.ZodError).errors);
}
μ΄ μ½λλ Zodλ₯Ό μ¬μ©νμ¬ μ΄λ©μΌ μ€ν€λ§λ₯Ό μ μνκ³ .parse()
λ₯Ό μ¬μ©νμ¬ μ΄λ©μΌμ κ²μ¦ν©λλ€.
λ¬Έμμ΄ κ²μ¦μ λν κΈλ‘λ² κ³ λ €μ¬ν
κΈλ‘λ² μ¬μ©μλ₯Ό μν μ ν리μΌμ΄μ μ μ€κ³ν λλ κ΅μ λ°μ΄ν° νμμ λ―Έλ¬ν μ°¨μ΄λ₯Ό κ³ λ €νλ κ²μ΄ μ€μν©λλ€. μ΄λ¬ν κ³ λ €μ¬νμ μ κ·μμ μμ±νκ³ λ¬Έμμ΄ μ λ ₯μ κ²μ¦νλ λ°©μμ μ§μ μ μΈ μν₯μ λ―ΈμΉ©λλ€.
1. μ νλ²νΈ κ²μ¦
μ νλ²νΈ νμμ κ΅κ°λ§λ€ ν¬κ² λ€λ¦ λλ€. κ²¬κ³ ν μ루μ μ μ’ μ’ λ€λ₯Έ νμκ³Ό μ λμ¬λ₯Ό νμ©νλ κ²μ ν¬ν¨ν©λλ€. λ¨μΌ μ κ·μ λμ μ¬λ¬ μ κ·μ ν¨ν΄μ μ¬μ©νκ±°λ, λ€λ₯Έ κ΅κ° μ½λμ λ²νΈ νμμ λ€λ£¨λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ μ μ°ν νμμ νμ©νλ κ²μ κ³ λ €νμΈμ. μλ₯Ό λ€μ΄, λ―Έκ΅μ νλμ ꡬ쑰λ₯Ό κ°μ§κ³ μμ§λ§ μΈλλ μμ ν λ€λ¦ λλ€. λ€μ μ νλ²νΈ μμλ₯Ό κ³ λ €ν΄ λ³΄μΈμ:
- λ―Έκ΅: (555) 123-4567 λλ 555-123-4567 λλ 5551234567
- μκ΅: +44 20 7123 4567 λλ 020 7123 4567
- μΈλ: +91 9876543210 λλ 09876543210
μ κ·μμ κ΅κ°μ λ°λΌ λ³ν, μ λμ¬(+, 00) λ° μ«μ μλ¦Ώμλ₯Ό μ²λ¦¬ν μ μμ΄μΌ ν©λλ€. λ€λ₯Έ κ΅κ°μ λͺ¨λ μ½λλ₯Ό ν¬ν¨νλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ μ΄ μΈ‘λ©΄μ΄ λ¨μνλ©λλ€.
2. μ£Όμ κ²μ¦
μ£Όμ νμμ μ μΈκ³μ μΌλ‘ λ§€μ° λ€μνλ©°, μ£Όμ μ€, μ°νΈλ²νΈ, μ£Ό/λμ μμμ κΈΈμ΄κ° λ€λ¦ λλ€. μ§μμ λ°λΌ μ£Όμλ₯Ό ꡬ문 λΆμνκ³ νμ€νν μ μλ μ£Όμ κ²μ¦ λΌμ΄λΈλ¬λ¦¬ λ° APIλ₯Ό μ¬μ©νκ±°λ, νΉμ μ§μμ λ°λΌ μ£Όμ λΆλΆμ νμ©νκ³ κ²μ¦νλ©°, μ¬μ©μκ° μμ νμμΌλ‘ μ£Όμλ₯Ό μ λ ₯ν μ μλλ‘ νλ κ²μ κ³ λ €νμΈμ.
3. λ μ§ λ° μκ° νμ
λ μ§ λ° μκ° νμμ λ§€μ° λ€μν©λλ€(μ: DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD). νμ§ν λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ λ€μν νμμ μ²λ¦¬ν μ€λΉλ₯Ό νμΈμ. μ¬μ©μκ° μ νΈνλ νμμ μ ννκ±°λ μ§μ κΈ°λ° μ€μ μ μλμΌλ‘ κ°μ§νμ¬ μ¬μ©μ±μ ν₯μμν¬ μ μμ΅λλ€. μ΅μ κ³Ό μ§μΉ¨μ μ 곡νκ±°λ μ λ ₯ ν μλ μμμ μ 곡νμΈμ.
4. ν΅ν νμ
ν΅ν κΈ°νΈ, μμμ κ΅¬λΆ κΈ°νΈ, μ² λ¨μ κ΅¬λΆ κΈ°νΈλ λ¬ΈνκΆλ§λ€ λ€λ¦ λλ€. μ ν리μΌμ΄μ μ΄ νμ§νλμλμ§ νμΈνκ³ κ° μ§μμμ μ¬μ©λλ ν΅ν νμμ κ³ λ €νμΈμ. μ«μ λΆλΆλ§ κ²μ¦νκ³ λ€λ₯Έ ν΅ν νμμ μ§μνλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ μΆλ ₯μ νμννμΈμ.
5. μ΄λ¦ νμ
μ΄λ¦ νμμ λ¬ΈνκΆλ§λ€ ν¬κ² λ€λ¦ λλ€. μΌλΆ λ¬ΈνκΆμμλ μ¬λ¬ κ°μ μ΄λ¦, μ λμ¬(Mr., Ms., Dr.), μ λ―Έμ¬(Jr., Sr.)λ₯Ό μ¬μ©ν©λλ€. μ΄λ¦μ λ€λ₯Έ κΈΈμ΄μ νΉμ λ¬Έμλ₯Ό νμ©νκ³ , νμν κ²½μ°κ° μλλ©΄ μ격ν κ²μ¦μ νΌνμΈμ. μλ₯Ό λ€μ΄, λͺ¨λ μ΄λ¦μ΄ λ λΆλΆ(μ΄λ¦κ³Ό μ±)μΌλ‘ ꡬμ±λμ΄ μκ±°λ μ€κ° μ΄λ¦μ΄ μλ€κ³ κ°μ νμ§ λ§μΈμ.
6. μ λ ₯κΈ° κ³ λ €μ¬ν
μλ₯Ό λ€μ΄, λ§μ μμμ μΈμ΄μμλ μ¬μ©μκ° μ λ ₯κΈ°(IME)λ₯Ό μ¬μ©νμ¬ λ¬Έμλ₯Ό μ λ ₯ν μ μμ΅λλ€. μ΄λ μ¬λ¬ λ¬Έμ μ‘°ν©μ μ¬μ©ν μ μμ΅λλ€. νΉμ λ¬Έμμ λν μ νμ λμ§ λ§κ³ μ κ·μμ΄ λ€λ₯Έ IMEμ μ λ ₯κ³Ό νΈνλλμ§ νμΈνμΈμ.
7. λ¬Έμ μΈμ½λ© λ° μ λμ½λ μ§μ
μ λμ½λλ₯Ό μ¬μ©νμ¬ λ€λ₯Έ μΈμ΄μ λ€μν λ¬Έμλ₯Ό μ§μνμΈμ. μ ν리μΌμ΄μ μ΄ UTF-8 μΈμ½λ©μ μ¬λ°λ₯΄κ² μ²λ¦¬νκ³ μ κ· ννμμ΄ μ΄λ₯Ό κ³ λ €νμ¬ μ μΈκ³ μΈμ΄μ λ¬Έμ μ§ν©μ μ²λ¦¬νλλ‘ νμΈμ. μ΄λ μ΄λͺ¨ν°μ½ νΈνμ±μλ λμμ΄ λ©λλ€.
κΈλ‘λ² μ ν리μΌμ΄μ μμ μ κ·μ κ²μ¦ λ¬Έμμ΄μ μν λͺ¨λ² μ¬λ‘
- λ¨μνκ² μ μ§νμΈμ: νμμ λ§λ κ°μ₯ κ°λ¨ν μ κ·μ ν¨ν΄μ μ¬μ©νμΈμ. 볡μ‘ν μ κ·μ ν¨ν΄μ μ΄ν΄νκ³ μ μ§λ³΄μνκΈ° μ΄λ €μΈ μ μμ΅λλ€.
- μ² μ νκ² ν μ€νΈνμΈμ: νμ λ€μν μ§μμ μ ν¨ν μ λ ₯κ³Ό μ ν¨νμ§ μμ μ λ ₯μ ν¬ν¨ν ν¬κ΄μ μΈ ν μ€νΈ μΌμ΄μ€λ‘ μ κ·μ ν¨ν΄μ ν μ€νΈνμΈμ. μλνλ λ¨μ ν μ€νΈ μ¬μ©μ κ³ λ €νμΈμ.
- λͺ ννκ² λ¬ΈμννμΈμ: νΉν νκ³Ό ν¨κ» μμ ν λ μ κ·μ ν¨ν΄κ³Ό κ·Έ λͺ©μ μ λ¬ΈμννμΈμ. ν¨ν΄ λ€μ μλ κ·Όκ±°λ₯Ό μ€λͺ νμΈμ.
- λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμΈμ: 볡μ‘ν κ²μ¦ μμ , νΉν κ΅μ λ°μ΄ν° νμμ λ€λ£° λλ λΌμ΄λΈλ¬λ¦¬λ APIλ₯Ό νμ©νμΈμ. μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ μ’ μ’ κ΅μ νμμ 볡μ‘μ±μ μ²λ¦¬ν΄ μ€λλ€.
- μ μ©ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νμΈμ: κ²μ¦μ μ€ν¨νλ©΄ μ¬μ©μκ° λ¬Έμ λ₯Ό μ΄ν΄νκ³ μμ νλ λ° λμμ΄ λλ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νμΈμ. μ¬μ©μκ° μ€λ₯λ₯Ό μμ νλλ‘ λμμ£ΌμΈμ.
- μ μ°μ±μ νμ©νμΈμ: κ°λ₯ν κ²½μ° μ λ ₯ νμμ λ³νμ νμ©νμΈμ. λ€λ₯Έ κ΅κ°μ μ¬μ©μλ λ€λ₯Έ κΈ°λμΉμ μ λ ₯ μ΅κ΄μ κ°μ§ κ²μ λλ€.
- μ κΈ°μ μΌλ‘ κ²ν νκ³ μ λ°μ΄νΈνμΈμ: κ²μ¦ κ·μΉμ μ κΈ°μ μΌλ‘ κ²ν νκ³ λ³ννλ λ°μ΄ν° νμ λ° μ¬μ©μ νΌλλ°±μ λ°λΌ νμμ λ°λΌ μ λ°μ΄νΈνμΈμ.
- κ΅μ ν λ° νμ§ν(i18n & l10n): λ€λ₯Έ μΈμ΄λ‘μ νμ§ν λ° λ²μμ μ©μ΄νκ² νκΈ° μν΄ κ΅μ νλ₯Ό μΌλμ λκ³ μ ν리μΌμ΄μ μ μ€κ³νμΈμ.
- μ¬μ©μ κ²½νμ κ³ λ €νμΈμ: μ λ ₯μ μ€μκ°μΌλ‘ κ²μ¦νμ¬ μ¬μ©μμκ² μ¦κ°μ μΈ νΌλλ°±μ μ 곡νκ³ μ¬μ©μ κ²½νμ ν₯μμν€μΈμ.
μ€ν κ°λ₯ν ν΅μ°°λ ₯ λ° μ€μ©μ μΈ κΆμ₯ μ¬ν
κΈλ‘λ² μ ν리μΌμ΄μ μμ μ κ·μμΌλ‘ κ²μ¦λ λ¬Έμμ΄μ ν¨κ³Όμ μΌλ‘ ꡬννλ €λ©΄ λ€μμ μ€μ©μ μΈ λ¨κ³λ₯Ό κ³ λ €νμΈμ:
1. μ¬μ κ³ν:
μ½λλ₯Ό μμ±νκΈ° μ μ μ§μν΄μΌ νλ λ°μ΄ν° νμκ³Ό λ€λ₯Έ μ§μ κ°μ μ μ¬μ λ³νμ μ² μ ν λΆμνμΈμ. λ€λ£° μΌλ°μ μΈ νμκ³Ό μ£μ§ μΌμ΄μ€λ₯Ό μμΈν κΈ°μ ν λ¬Έμλ₯Ό λ§λμΈμ.
2. μ¬λ°λ₯Έ λꡬ μ ν:
μ κ·μ κ²μ¦κ³Ό κ΅μ νλ₯Ό μν κ²¬κ³ ν μ§μμ μ 곡νλ λΌμ΄λΈλ¬λ¦¬μ λꡬλ₯Ό μ ννμΈμ. μΈκΈ° μλ μ΅μ μ λ€μκ³Ό κ°μ΅λλ€:
- κ²μ¦μ©: Zod, Yup, Superstruct
- i18n/l10nμ©: i18next, formatjs
3. λ¨μνκ² μμνκ³ λ°λ³΅νκΈ°:
κΈ°λ³Έμ μΈ κ²μ¦ κ·μΉμΌλ‘ μμνμ¬ νμμ λ°λΌ μ μ°¨ λ 볡μ‘ν κ·μΉμ μΆκ°νμΈμ. μ¬μ©μ νΌλλ°±μ λ°νμΌλ‘ κ²μ¦ κ·μΉμ μ§μμ μΌλ‘ κ°μ νμΈμ.
4. ν μ€νΈ λ° κ°μ :
λͺ¨λ κ²μ¦ κ·μΉμ ν¬κ΄νκ³ λ€μν μ§μμ λ€μν λ°μ΄ν° μ λ ₯μ μ²λ¦¬νλ ν¬κ΄μ μΈ λ¨μ ν μ€νΈ μ€μνΈλ₯Ό λ§λμΈμ. μ€λ₯λ₯Ό μ‘°κΈ°μ λ°κ²¬νλ μλνλ ν μ€νΈ λꡬλ₯Ό μ¬μ©νμΈμ.
5. ν κ΅μ‘:
νμλ€μ΄ TypeScript, μ κ·μ, κ·Έλ¦¬κ³ κ΅μ λ°μ΄ν° νμμ λ―Έλ¬ν μ°¨μ΄μ λν΄ μ μκ³ μλμ§ νμΈνμΈμ. ν λ΄μμ μ§μ 곡μ λ₯Ό μ₯λ €νμΈμ.
6. μ¬μ©μ νΌλλ°± μμ©:
μ¬μ©μ νΌλλ°±μ μμ§νκ³ μ΄ μ 보λ₯Ό λ°νμΌλ‘ νμν λ³κ²½μ νμΈμ. μ¬μ©μλ μ¬λ¬λΆμ΄ κ³ λ €ν μ μλ νλ₯ν ν΅μ°°λ ₯μ μ 곡ν©λλ€. μ¬μ©μκ° κ²μ¦μ μ΄λ €μμ κ²ͺλλ€λ©΄ ꡬνμ μ‘°μ νμΈμ.
κ²°λ‘
TypeScriptλ μ λ’°ν μ μκ³ μ μ§λ³΄μ κ°λ₯ν κΈλ‘λ² μ ν리μΌμ΄μ μ ꡬμΆνλ λ° μ€μν κ΅¬μ± μμμΈ μ κ·μ κ²μ¦ λ¬Έμμ΄μ ꡬννλ κ²¬κ³ νκ³ ν¨μ¨μ μΈ μ κ·Ό λ°©μμ μ 곡ν©λλ€. νμ μμ€ν μ νμ©νκ³ μ κ·μμ νμ μ΄μ©νμ¬ κ°λ°μλ μ½λ νμ§μ ν¬κ² ν₯μμν€κ³ , λ°νμ μ€λ₯μ μνμ μ€μ΄λ©°, μ μΈκ³ μ¬μ©μμ μ¬μ©μ κ²½νμ ν₯μμν¬ μ μμ΅λλ€. λͺ¨λ² μ¬λ‘λ₯Ό μ±ννκ³ , λ°μ΄ν° νμμ κΈλ‘λ² λ³νμ κ³ λ €νλ©°, μ¬λ°λ₯Έ λꡬλ₯Ό νμ©ν¨μΌλ‘μ¨ κ°λ°μλ νμ μ μμ ν λΏλ§ μλλΌ λ€μν κ΅μ μ¬μ©μμκ² μ κ·Ό κ°λ₯νκ³ μ¬μ© κ°λ₯ν μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.
νμ μ¬μ©μ κ²½νμ μ΅μ°μ μΌλ‘ μκ°νκ³ , μ¬μ©μκ° μ λ ₯μ μ΄ν΄νκ³ μμ νλ λ° λμμ΄ λλλ‘ λͺ ννκ³ μ μ΅ν μ€λ₯ λ©μμ§λ₯Ό μ 곡νλ κ²μ μμ§ λ§μΈμ. μ¬μ©μ νΌλλ°±κ³Ό λ³ννλ λ°μ΄ν° νμμ λ°λΌ κ²μ¦ κ·μΉμ μ§μμ μΌλ‘ κ²ν νκ³ κ°μ νμΈμ. μ΄ μ κ·Ό λ°©μμ μ ν리μΌμ΄μ μ κ²¬κ³ μ±μ 보μ₯ν λΏλ§ μλλΌ ν¬μ©μ±κ³Ό κΈλ‘λ² μ¬μ©μ κΈ°λ°μ λν νμ μ 보μ¬μ€λλ€.