[React] Lazy initialization
SleepyWoods νλ‘μ νΈλ₯Ό μ§ννλ©° μ 체 μ±ν κΈ°λ₯μ ꡬννμλ€.
μ 체μ±ν μ ꡬννλ©΄μ νΉμ λΆλμ΄ν μν©μ΄ λ°μν΄ μλ‘κ³ μΉ¨μ΄ λλ κ²½μ°μ μ΄μ μ λλ΄λ μ΄μΌκΈ°λ₯Ό νμΈν΄μΌ νλ κ²½μ°κ° μ‘΄μ¬νμ§ μμκΉ? λΌλ μκ°μ νλ°μ±μΌλ‘ μ±ν λ΄μμ μΌμμ μΌλ‘ μ μ₯νκΈ°λ‘ νμκ³ , νμ¬ μν©μμ Redisλ₯Ό λμ νκΈ°μλ μΌμ μ μΌλ‘ λ¬΄λ¦¬κ° μμκΈ° λλ¬Έμ μΈμ μ€ν 리μ§λ₯Ό μ¬μ©νμ΅λλ€.
μ΄μ μ±ν λ΄μμ μ΄κΈ°μ κ°μ Έμ€κΈ° μν΄μ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό μμ±νλ€.
const [chatDatas, setChatDatas] = useState<chatType[]>(() => {
const sessionStorageChat = sessionStorage.getItem('chat');
return sessionStorageChat ? JSON.parse(sessionStorageChat) : [];
});
λ¬Έλ λ μκ°μ΄ μ΄λ κ² λλ©΄ μνκ° λ³κ²½λκ±°λ, μμ μ»΄ν¬λνΈμ λ³λμ΄ μ겨 리λλλ§ λ κ²½μ°μ μΈμ μ€ν 리μ§λ₯Ό μ‘°ννλ λμμ΄ κ³μ μΌμ΄λλ κ²μ΄ μλκ°? λΌλ μκ°μ νμκΈ° λλ¬Έμ μ°Ύμ보λ μμ²λΌ μ΄κΈ°κ°μ ν λΉν λ ν¨μλ₯Ό λ겨쀬μ λ μΌλ° κ°μ λ겨주λ κ²κ³Ό λ€λ₯΄κ² λμμ νλ€κ³ νλ€.
λͺ μΉλΆν° λ§νμλ©΄ κ²μΌλ₯Έ μ΄κΈ°ν(Lazy initialization) λΌκ³ νλλ° React 곡μ λ¬Έμμ λ°λ₯΄λ©΄, ν¨μλ μ€μ§ stateκ° μ²μ λ§λ€μ΄ μ§ λλ§ μ€νλκ³ . μ΄ν λ€μ 리λ λλ§λλ©΄ μ΄ ν¨μμ μ€νμ 무μλλ€κ³ νλ€.
λ°λΌμ useStateλ₯Ό μ¬μ©νλ©΄μ μ΄κΈ° κ°μ ν λΉν λ 볡μ‘ν μ°μ°μ ν¬ν¨νλ κ²½μ° μ¬μ©νλ©΄ μ²μ λλλ§ λ λλ§ μ€νλκ³ μ΄νλΆν°λ μ€νλμ§ μμ μ±λ₯ μ΅μ νμ ν¨κ³Όλ₯Ό λ³Ό μ μλ€.
λ΄ κ²½μ° μΈμ μ€ν 리μ§λ₯Ό μ‘°ννλ λ³΄λ€ λ¬΄κ±°μ΄ μμ μ΄ μ²μ λλλ§ λ λ ν λ²λ§ μ€νμ΄ λκ³ μ΄ν μ»΄ν¬λνΈ λ΄ μνκ° λ³κ²½λμμ λλ μνλμ§ μμ μ±λ₯μμΌλ‘ μ΅μ νκ° κ°λ₯νλ€.
μΆκ°μ μΌλ‘ κ²μΌλ₯Έ μ΄κΈ°νλ₯Ό μ¬μ©νλ κ²½μ°λ‘λ λ°°μ΄μ λ€λ£¨λ map, filter, find λ±μ λ°°μ΄ λ©μλ λλ λ‘컬μ€ν 리μ§λ μΈμ μ€ν λ¦¬μ§ μ‘°ν κ°μ λμλ€μ΄ ν¬ν¨λλ€κ³ νλ€.