νμ΄.. λ²μ¨ λ μΌμ£ΌμΌμ΄ μ§λ¬λ€. λ΄μΌμ΄λ©΄ μ΄λμ 3μ£Ό μ°¨μ μ μ΄λ λ€!! μ΄λ² μ£Όλ μ§λ apiλ₯Ό λμ΄μ€λλ° λ§μ μκ°μ μΌλ€. μΉ΄μΉ΄μ€ developer μ λ€μν μνλ€μ΄ λμμμ§λ§ κ°λ° μμ΄λ³΄μΈ λμκ²λ λ³΄κ³ μ΄ν΄νλ κ²λ μ΄λ €μ κ³ , 리μ‘νΈμ κ°μ Έμμ ꡬννλ κ²λ μ½μ§ μμλ€. κ·Έλλ 보λ€λ³΄λ μ΄λμ λ μ΄ν΄λλκ² μ κΈ°νλ€. νλ‘ νΈ νμ λΆμ νλμΊλ¦¬λ‘ μΌμΆ ꡬνμ΄ μμ±λμκ³ , κ³νν μ€μΌμ₯΄μ λ§κ² νλ¬κ°κ³ μκΈ΄νλ€. κ·Όλ° μ€κ°μ μμλ°λ¦¬ μλ¬λ€μ΄ μκΎΈλμ¨λ€. μ λ° λ€μ΄κ°μ£ΌλΌ μλ¬s γ γ
λͺ¨λ¬κ³Ό μ§λapiλ₯Ό μ¬μ©νλ©΄μ μκ² λ css μμ±μ΄λ€. μμ μ (λΌλΌμμ ..) κ·Έλ¦Όν μ°λ μμ μ λ§μ°μ€ μ°ν΄λ¦νλ©΄ 맨 μμΌλ‘ 보λ΄κΈ° & 맨 λ€λ‘ 보λ΄κΈ°λΌλ κΈ°λ₯μ΄ μμλ€. λΉμ·ν μμ±μ΄λΌκ³ 보면 λλ€. z-indexλ₯Ό μ¬μ©ν λλ position κ³Ό κΌ ν¨κ» μ¬μ©ν΄μΌ ꡬνν μ μλ€. μΈμ λ κ°μ₯ μμΌλ‘ λΉΌκ³ μΆμ μ»΄ν¬λνΈμ z-index κ°μ κ°μ₯ ν¬κ² μ£Όμλ€. νμ¬ νλ‘μ νΈμ κ²½μ° λͺ¨λ¬μ΄ κ°μ₯ μμΌλ‘ μμΌνκΈ° λλ¬Έμ λͺ¨λ¬μ΄ κ°μ₯ ν° κ°μ κ°κ³ μλ€.
μ°Έκ³ μμλ§ν¬
μ΄λ¦¬μ 리 λΈλ‘κ·Έλ λ³΄κ³ , μμλ 보면μ custom hooks λ₯Ό λ§λ€μλ€. λͺ¨λ¬ λ°κΉ₯ μμμ ν΄λ¦νμ λ λͺ¨λ¬μ λ«λ ν¨μμ΄λ€. useRef λ₯Ό μ²μμΌλ‘ μ¬μ©νλλ°, μμ§λ μ 맀ν λλμ΄λ€. μ¬μ©νλ€λ³΄λ©΄ ꡬ체μ μΌλ‘ μκ² λ κ² κ°λ€. μ λ§ νΈν hooks μ΄μ§λ§ μμ§ λ§μ hooks λ₯Ό μ¬μ©νμ§ λͺ»νκ³ μλ€. μ°¨κ·Όμ°¨κ·Ό κ³ κ³
const useClickOutside = (handler) => {
let domNode = useRef();
useEffect(() => {
let windowHandler = (e) => {
if (!domNode.current?.contains(e.target)) {
handler();
}
};
document.addEventListener('mousedown', windowHandler);
return () => {
document.removeEventListener('mousedown', windowHandler);
};
});
return domNode;
};
const domNode = useClickOutside(() => {
// λͺ¨λ¬ λ«λ ν¨μλ₯Ό μ¬κΈ°μ μ λλ€.
})
κ·Έλ¦¬κ³ ν΄λΉ λͺ¨λ¬μ΄ μλ tagμ ref={domNode} λ£μ΄μ£Όλ©΄ λͺ¨λ¬μ°½ λ«κΈ°λ₯Ό μνλ κ³³μμ μ΄μ©ν μ μλ€.
κ³μ μλ²κ° λκΈ°λ μλ¬λ₯Ό λ§μ£Όνμ§λ§.. ν΄κ²°νλ€! λ‘κ·ΈμΈμμ λ무λ ν λ²μ μμ·μν¬λ‘ μ무 μλ¬λ μ λμ λΆμνλλ°, μμ μλ¬λ μκ°μ°¨ 곡격 γ νΏ.. μλ²κ° λκ²Όλ μ΄μ λ μλ²μ½λμμ μ μΈλμ§ μμ λ³μκ° μ¬μ©λκ³ μμλ€. μλ² μ½λ μμ νμλ€κ° μ€μλ‘ μ£Όμμ²λ¦¬ ν΄ λμΌμ λΆλΆμ΄ μμλλ° μ£Όμμ νκ³ λλ ν무νκ²λ ν΄κ²°λλ€.
νμ μλ¬κ° λλ©΄ λ΄κ° μμ±ν μ½λλΆν° μμ¬νκ² λλλ° μ΄μ μλ² μ½λλ μ μ¬ν λ³΄κ³ , νλ‘ νΈμ μ μ°κ²°μ΄ λλμ§λ μ΄ν΄λ΄μΌκ² λ€. κ·Έλλ μλ¬κ° λκ³ , ν΄κ²°νλ κ³Όμ μμ λ°°μ°λ κ²λ€μ΄ λ§κ³ κΈ°μ΅νκ²λλ κ²λ€λ λ§λ€!
RDSμ EC2 λ₯Ό μ’ λ£μν€μ§ μκ³ 2μ£Όκ° νλ λ€. κ³ΌκΈμ΄ λ κ±°λΌκ³€ μμλ λͺ»νμ±.... μ°μ AWS μΈ‘μΌλ‘ λ©μΌμ 보λ΄λ¨μΌλ λ΅μ₯μ κΈ°λ€λ €λ΄μΌκ² λ€. μμ²λ κΈμ‘μ μλμ§λ§ μ΄ 35λΆ μ λ..? κ³ΌκΈμ 무μμμ λλΌλ μ€μ΄λ€. λͺ¨λλ€ μλ² μ λμκ³ , λ°μ΄ν°λ μ λμ μ ν γ γ ..