230719(μ)
π€ μ±μ₯μΌμ§ 6.0
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
πΎ (4.0)νμ΅ ν€μλμμ μ΅λν κ°λ¨ν μ 보 μ 곡, κ³ λ―Όμμ λ΄ κ²½νμ μμΈν μ μ!
π₯ (5.0)νμ΅ ν€μλλ νμ€μ ν΅μ¬μΌλ‘λ§ μ 리, μ±κ³΅/μ€ν¨ μΌμ§ μμ±νκΈ°! μ΄ λ, μ€ν¨μ κ²½νμ μμΈν μ κΈ°!
π (6.0)<μμ κ°νΈ!!!> λ§€μΌ μ΅κ΄μ μΌλ‘ ν΅μ¬λ§ μ μ μ μκ² νλ μ λ³κ²½. μ±κ³΅λ³΄λ¨ μ€ν¨μ μ΄μ μ λ§μΆκΈ°.
- π (6.1)<μμ > λ§€λ² μ±κ³΅, μ€ν¨λ₯Ό λ°λ‘ μ λ κ²λ³΄λ¨ κ²½νμΌλ‘ νννμ
π μ€λμ κ°μ
μ΄λ² μ£Όλ μ λ°μ μΌλ‘ μͺΌμ€κΈ μ λ² μ£Όλ³΄λ€ μ§μ€μ λͺ»νλ λλμ΄λ€..! κ·Όλ° λ μ΄μνκ² λͺ©νν κ³νλ€μ μ νλ κ² κ°κ³ ..? μ‘°κΈ μμ½μ§λ§μλ λ§€μΌ μ‘°κΈμ© λμκ°λ λλμ΄λΌ λ€νμΈ κ² κ°λ€.
𫧠μ€λμ κ³ λ―Ό
νλμ μ§μ€νλ κ² μ’μκΉ? μ¬λ¬κ°μ§λ₯Ό λ³ννλ κ² μ’μκΉ?
νμ΅μ ν λ, λͺ μΌ λμ νλμλ§ λ§€λ¬λ¦¬λ κ²λ³΄λ€ μ¬λ¬κ°μ§λ₯Ό λμμ λ³ννλ κ±Έ μ¦κ²¨νλ νΈμ΄λ€. μ΄ λ°©λ²μ μ’μνλ μ΄μ λ νλκ° μ‘°κΈ μ§λ¦΄ λ, λ€λ₯Έ κ±Έ μμνκ³ κ·Έκ² λ μ§λ¦¬λ©΄ λλ€λ₯Έ κ±Έ νλ μ¬λ―Έκ° μκΈ° λλ¬Έμ΄λ€. μ΄λ κ² μννλ―μ΄ μ¬λ¬κ°μ§λ₯Ό λ³ννλ©΄ λΉκ΅μ κ³ ν΅λ³΄λ¨ μ¬λ―Έλ₯Ό μ μ§νλ©΄μ νμ΅ν μ μλ κ² κ°λ€. κ·Έλ¦¬κ³ μ¬μ€ μ΄ λ°©λ²μ κ°μ₯ ν° λ¬λ―Έλ λ°λ‘ μλ€. 3~4κ°μ§λ₯Ό λμμ μ‘°κΈμ© μ§νν΄μ λͺ¨λ κ² κ±°μ κ³νλλ‘ μμ±λμ΄κ° λ μ¦μ, κ·Έ λ 머리μ μλ‘ μ°κ΄λλ©΄μ λ§μΆ°μ§λ νΌμ¦κ°μ λλ..! μ΄ κΈ°λΆμ΄ λλ λ무 μ’λ€. νΉνλ κ°λ° 곡λΆλ κ³λ¨μμΌλ‘ μ±μ₯νλ€κ³ λ€ λ§νλλ°, λλ μ΄ λ κ·Έ κ³λ¨ νλλ₯Ό μ¬λΌκ°λ λλμ΄ λ λ€. μ΄λ€ λ°©λ²μ΄ μ’μμ§λ μ μ μμ΄λ λνν λ§λ λ°©λ²μ΄ λμ§λ μκ³ μμΌλ μ΄μ¬ν λ°μ΄ λΆμ¬λκ°λ΄μΌκ² λ€. μΈμ κ° λ΄κ° μνλ κΈ°μ μμ μΌνκ² λμ΄ μ’μ μ μ κ°λ°μλΆμ λ΅λ©΄ λ μ’μ νμ΅λ²μ μ¬μ€λ΄μΌμ§.
βοΈ μ€λμ κ²½ν
Reduxμ ducks pattern
Redux ducks patternμ reduxμ λμμΈ ν¨ν΄ μ€ νλμ΄λ€. μ λ§ κ°λ¨νκ² λ§νλ©΄ action, reducer, action creatorλ₯Ό ν νμΌμ λͺ°μλ£λ κ²μ΄λ€. μ΄λ κ² νλ©΄ νμΌμ νλλ§ λ³΄κ³ λ ν΄λΉ λͺ¨λμ action, reducer, action creatorλ₯Ό ν λμ λ³Ό μ μμ΄μ νΈνλ€. λν, action typeμ μ μν λ, action typeμ prefixλ₯Ό μ μν΄λλ©΄ action typeμ μ€λ³΅μ λ§μ μ μλ€. μλλ 곡λΆν λ΄μ©μ ν λλ‘ μμ±ν΄λ³Έ μμ μ½λ
// Action Types
export const ACTION_TYPE_ADD_TODO = "react-n-redux/todo/ADD_TODO";
export const ACTION_TYPE_REMOVE_TODO = "react-n-redux/todo/REMOVE_TODO";
export const ACTION_TYPE_REMOVE_ALL = "react-n-redux/todo/REMOVE_ALL";
// Reducer
const initialState = [];
const todoReducer = (state = initialState, action) => {
switch (action.type) {
case ACTION_TYPE_ADD_TODO:
return state.concat(action.text);
case ACTION_TYPE_REMOVE_TODO:
return state.slice(0, -1);
case ACTION_TYPE_REMOVE_ALL:
return [];
default:
return state;
}
};
export default todoReducer;
// Action Creators
export const addTodoActionCreator = (todo) => {
return {
type: ACTION_TYPE_ADD_TODO,
text: todo,
};
};
export const removeTodoActionCreator = () => {
return {
type: ACTION_TYPE_REMOVE_TODO,
};
};
export const removeAllActionCreator = () => {
return {
type: ACTION_TYPE_REMOVE_ALL,
};
};
// Side Effects: νμ¬λ λ°λ‘ μμ
ν¨μν νλ‘κ·Έλλ°
μ¬λ¬ νλ‘κ·Έλλ° ν¨λ¬λ€μ μ€ νΉνλ ν¨μν νλ‘κ·Έλλ°μ λκ° μ€λ¬΄μ μΌλ‘ μ¬μ©νκΈ° μ΄λ €μ΄ λλμ΄ κ°νκ² λ€μλ€.(μ μ°¨μ§ν₯, κ°μ²΄μ§ν₯μ λκ°λ₯Ό μ§ν₯νλ€λ λ©΄μμ μ€μ§μ μΈ μ½λλ‘ μ μλΏλλ€κ³ ν΄μΌνλ..?)
κ·Έλ¬λ€ μ€ν°λμ λͺ©μ μΌλ‘ μμ λ€μ΄μ€λ ν¨μν μ½λ©
μ΄λΌλ μ±
μ μ½κΈ° μμνλ€. μμ§ μ±ν° 1 λ°μ λͺ»μ½μμ§λ§ λμ
λΆμ λμ€λ μ‘μ
, κ³μ°
, λ°μ΄ν°
μ ꡬλΆμ λν κ°λ
μ μ μ νλ€. Reactκ°
μ¨μ ν ν¨μν νλ‘κ·Έλλ°μ΄λΌκ³ λ ν μ μμ§λ§, ν¨μν νλ‘κ·Έλλ°μ κ°λ
μ μ μ μ©ν λΌμ΄λΈλ¬λ¦¬μ΄κΈ° λλ¬Έμ μ΄ μ±
μ μ½μΌλ©΄μ Reactλ₯Ό λ μ μ΄ν΄ν μ μμ κ² κ°μλ€. μ΄ μ±
μ μ½μΌλ©΄μ μ€μ§μ μΈ λμ μ½λμ
νμ€κΈ° λΉμ΄ λΉμΆ°μ§κΈΈβ¦!!!!!(μκ° λ³΅μ‘λ, κ³΅κ° λ³΅μ‘λ λ±λ± ν¨μ¨λ λ무 μ’μ§λ§ 무μλ³΄λ€ κ°λ
μ±μλ μ½λλ₯Ό μμ±νκ³ μΆλ€!!!)
πΎ μ€λμ κ΅ν
μΈμμ μ΄μκ°λ©° μ΄λ€ λͺ©μ μ§μ λλ¬νλ λ°©λ²μ μλ μμ΄ λ§μμ μ΄ν΄νκ³ μΈμ νμ. κ·Έ μμμ λμ κΈΈμ 묡묡ν μ κ±Έμ΄κ°μ. κ·Έλ κ² λ§€μΌ μ‘°κΈμ© λμκ°μ.
πͺ΅ μ°Έκ³
- [μ± ] μμ λ€μ΄μ€λ ν¨μν μ½λ©