π SRP, λ¨μΌ μ± μ μμΉ
λ¨μΌ
λͺ¨λ
μ λ³κ²½μ μ΄μ κ° λ°λμ νλ λΏμ΄μ΄μΌ νλ€
λ¨μΌλͺ¨λ
μ νλμμ‘ν°
μ μν΄μλ§μ± μ
μ ΈμΌ νλ€
π SRPμ μλ°λλ μν°ν¨ν΄ μμ
μμ 1οΈβ£
export const SignInForm = () => {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { name, value } = e.target;
if (name === "email") setEmail(value);
else if (name === "password") setPassword(value);
};
// return ...
};
β μ΄ μ½λμ μ‘ν°λ?
μ»΄ν¬λνΈ λ΄λΆμμ λ€λ£¨κ³ μλ λ°μ΄ν°μλ email
, password
κ° μμ΅λλ€.
μ‘ν°λ email
, password
λ°μ΄ν°λ₯Ό λ³κ²½νλ μ£Όμ²΄μΈ handleChange
ν¨μμ
λλ€.
β μ΄ μ½λλ μ΄λ λΆλΆμ΄ SRPμ μλ°λλκ°?
λ°μ΄ν°λ₯Ό λ³κ²½νλ μ£Όμ²΄μΈ handleChange
ν¨μκ° email
, password
λ κ°μ§ λ°μ΄ν°λ₯Ό λͺ¨λ λ€λ£¨κ³ μμ΅λλ€.
μ΄λ, email
κ³Ό password
λ κ°μ§ λ°μ΄ν°λ₯Ό λ€λ£¨λ μ±
μμ κ°μ§κ³ μκΈ° λλ¬Έμ SRPμ μλ°λ©λλ€.
μμ 2οΈβ£
π κ³Όμ λΆκΈ (ιηΆδΈε) : SRP μμΉμ μ§ν€λ κ²μ΄ νμ μ³μ§λ μλ€
SRP μμΉμ μ§ν€λ κ²μ΄ νμ μ³μ κ²μ μλλΌκ³ μκ°ν©λλ€.
κ³Όλν λΆλ¦¬λ‘ μΈν ννΈνκ° λ°μν μ μκ³ , μ΄λ‘μΈν΄ μ½λμ μΆμ μ΄ μ΄λ €μμ§ μ μκΈ° λλ¬Έμ
λλ€.
λ°λΌμ, μ€μ©μ±μ κ³ λ €ν΄ λΆλ¦¬ν΄μΌνλ©°, νλ‘μ νΈμ κ·λͺ¨μ μꡬμ¬νμ λ°λΌ SRP μ μ μ©λ²μλ₯Ό μ μ°νκ² μ‘°μ ν΄μΌ ν©λλ€.
π μ°Έκ³ μλ£
- ν΄λ¦° μν€ν μ³ (λ‘λ²νΈ C. λ§ν΄) - Ch3.7 SRP λ¨μΌ μ± μ μμΉ