L MKλ, μ΄μ Lantern μ§λ¬Έμ μ΄μ΄μ μ΄λ²μ RekindleκΉμ§ νκ³ λμλ€μ. μ§λ¬Έμ΄ μ νν ν·κ°λ¦¬κΈ° μ¬μ΄ μ§μ μ μ§κ³ μμ΄μ, μ€μ μ½λ κΈ°μ€μΌλ‘ μ°¨κ·Όμ°¨κ·Ό νμ΄λ³Όκ²μ.
1. transaction μ "λ¬Έμ"κ° μλλΌ "λ³κ²½ μ¬κ±΄"μ΄μμ
λ§μνμ λλ‘ λ¬Έμ A β λ¬Έμ A' λ‘ μνλ₯Ό λ°κΎΈλ κ°μ²΄κ° λ§μμ. CodeMirror 6 μμλ νΈμ§κΈ° μν(EditorState)κ° λΆλ³μ΄κ³ , ν€ νλλ₯Ό λλ¬λ "μ΄ λ²μλ₯Ό μ΄ ν
μ€νΈλ‘ λ°κΏλΌ"λΌλ transaction μ΄ λ§λ€μ΄μ Έμ μ μνλ₯Ό λ³κ±°λ μ. κ·Έλ¬λκΉ transaction μ νμλ λ·°λ, μΈλ±μ€λ μλκ³ νΈμ§ μ΄λ²€νΈ κ·Έ μ체μμ. λ¬Έμ νμμ΄ μλλΌ "μ§κΈ μ΄ μκ° λ¬΄μμ΄ λ°λμλ"λ₯Ό λ΄μ μΌνμ± κ°μ²΄μ£ .
editActor λ κ·Έ transaction μ μ€λ¦¬λ λ©νλ°μ΄ν°(Annotation)μμ. λ³κ²½ λ΄μ©κ³Ό "λκ° νλμ§"κ° κ°μ κ°μ²΄λ₯Ό νκ³ κ°λ κ² ν΅μ¬μ΄κ³ μ. νΈμ§μ΄ λλκ³ λλ©΄ transaction μ μ¬λΌμ§κ³ ν
μ€νΈλ§ λ¨μμ. κ·Έλμ λ μ¨μμ "λ°λλ κ·Έ μκ°μ λ΅νμ§ μμΌλ©΄ μμ λ΅ λͺ» νλ€"κ³ ν κ±°μμ.
2. μ¬λμ΄ μΈ λλ μ£Όμμ΄ λΆλμ? β μλμ, "μμ"μ΄ κ³§ μ¬λμ΄μμ
μ€μ editActor.ts μ μ΄λ κ² μ ν μμ΄μ.
κ°μ actor id β νμ¬
"pippa"λ§ dispatch λλ€. μμΌλ©΄ μλΉ (μ¬λ)λ€.
μ¦ μ¬λ νμ΄νμλ μ무 νκ·Έλ μ λΆμ΄μ. κΈ°λ³Έκ°μ΄ μ¬λμ΄μμ. λμ μμΈκ° νλ μλλ°, νμΌ μ΄κΈ°Β·λ¦¬λ‘λμ²λΌ νλ‘κ·Έλ¨μ΄ λ¬Έμλ₯Ό ν΅μ§Έλ‘ κ°μλΌμ°λ externalSync transaction μ μ¬λλ Pippa λ μλ κ²μΌλ‘ κ±Έλ¬μ. μ 리νλ©΄ μ΄λμ.
editActor === "pippa"β PippaexternalSyncνμ β μ무λ μλ (νμΌ λκΈ°ν)- κ·Έ μΈ μ λΆ β μ¬λ
κ·Έλμ "μ νλ©΄ κ·μΉ"μ΄ λ¬΄μμ΄ κ±°μμ. Pippa κ° μ°λ κ²½λ‘μμ νκ·Έλ₯Ό κΉλΉ‘νλ©΄ μλ¬κ° λλ κ² μλλΌ μ‘°μ©ν μ¬λ κ²μΌλ‘ μΈμ΄μ§κ±°λ μ. κΈ°λ³Έκ°μ΄ μ¬λμ΄λκΉμ.
3. ꡬκΈλ μ€μ²λΌ λ¨μ΄λ§λ€ λΆλμ? β μλμμ, ν¨μ¬ κ±°μΉ μ΄μ
μ¬κΈ°κ° μ μΌ μ€μν μ°¨μ΄μμ. Rekindle μ λ¨μ΄ λ¨μ κ·μμ νμ§ μμμ. κΈ°λ‘ λ¨μλ "μ€λ μ· μ¬μ΄ ꡬκ°"μ΄κ³ , μ μ₯λλ κ°μ κ·Έ κ΅¬κ° λμ μλ μ¬λμ μ§ν©μ΄μμ.
νλ¦μ μ΄λμ.
- νΈμ§κΈ° 리μ€λκ° transaction λ§λ€ "μ΄λ² λ³κ²½μ μ¬λμ΄ μμλ, Pippa κ° μμλ"λ₯Ό λΆλ¦¬μΈ λ κ°λ‘ λ΄μ.
- λ
ΈνΈλ³λ‘ κ·Έκ±Έ OR λ‘ λμ ν΄μ. ν λ²μ΄λΌλ Pippa κ° μλμΌλ©΄
pippa: true. - μλ/μλ μ€λ
μ·μ΄ μ°ν λ κ·Έ λμ κ°μ
["dad"],["pippa"],["dad", "pippa"]μ€ νλλ‘ μ€λ μ· λ©ν(meta.json)μ κΈ°λ‘νκ³ λμ μ λΉμμ.
κ·Έλ¬λκΉ μ€λ μ· νμ€ν 리λ₯Ό μ΄λ©΄ κ° λ²μ μμ "you", "pippa", "you+pippa" μΉ©μ΄ λΆλ μ λμμ. μ΄λ λ¬Έμ₯μ΄ λꡬ κ²μΈμ§λ μ λμμ.
4. κ·ΈλΌ λ κ²½μ°(μ¬λ μ΄μβAI μμ , AI μ΄μβμ¬λ μμ )λ ꡬλΆμ΄ μ λλμ?
μ€λ
μ· νλλ§ λ³΄λ©΄ λ λ€ you+pippa λΌ κ΅¬λΆμ΄ μ λΌμ. λμ μ€λ
μ·μ μκ° μμΌλ‘ 보면 λλ¬λμ. 첫 μ€λ
μ·μ΄ you μλ€κ° λμ€μ you+pippa κ° λλ©΄ 1λ²μ΄κ³ , 첫 μ€λ
μ·μ΄ pippa μλ€κ° you+pippa κ° λλ©΄ 2λ²μ΄μ£ . μ¬λμ΄ μ΄ "λλ"λ κ³μ°νμ§ μμμ. 그건 μ€κ³ λͺ©νκ° μλμμ΄μ.
μ μ΄λ κ² κ±°μΉ κ² νλλλ©΄, μ΄ κΈ°λ₯μ΄ λ΅νλ €λ μ§λ¬Έμ΄ λ± νλκ±°λ μ. "λ°λ λ€μ μ΄ λ¬Έλ¨μ λ€μ μ½μ λ, μ¬κΈ°μ Pippa μμ΄ λΏμ μ μ΄ μλ?" μ/μλμ€λ©΄ μΆ©λΆν μ§λ¬Έμ΄μμ. λ¨μ΄λ§λ€ μμ μΉ νλ €λ©΄ ν μ€νΈ μμ λ λ²μ§Έ μ§μ€(λ³λ DB)μ λ¬μΌ νκ³ , κ·Έλ¬λ©΄ νμΌμ΄ μ λ³Έμ΄λΌλ μ΄ νΈλ μ 체μ μμΉμ΄ κΉ¨μ Έμ. νμΌμ κ·Έλλ‘ μμ λ§ν¬λ€μ΄μΌλ‘ λ¨κ³ , κ·μμ μ€λ μ· λ©ν ν μ€λ‘λ§ λ°λΌκ°λ κ² μ΄ μ€κ³μ νΈλ μ΄λμ€νμμ.
5. μ΄μ μ§λ¬Έκ³Ό μ΄μ΄μ§λ μ§μ
μ΄μ Lantern μμλ "νμΌ κ²½λ‘λ μ μλ₯Ό μ¦λͺ
νμ§ λͺ»νλ€"κ³ νμ£ . Rekindle μ κ·Έ λ°λνΈ λ΅μ΄μμ. μ μ μ 보λ λμ€μ μΆλ‘ νλ κ² μλλΌ λ³κ²½μ΄ μΌμ΄λλ μκ°μ λΆμ‘λ κ²μ΄κ³ , κ·Έλ§μ λ λ¬Έμ₯ λ¨μκ° μλλΌ "μ΄ κ΅¬κ°μ λκ° μμλ" μμ€μΌλ‘λ§ μ‘μμ. λ μ λ°ν κ·μμ΄ νμνλ©΄ 그건 diff κΈ°λ° μ¬ν μΆλ‘ μ΄ μλλΌ, transaction μμ λ³κ²½ λ²μ(changes)λ₯Ό κ·Έλλ‘ μ μ₯νλ λ³κ° μ€κ³κ° λΌμΌ νκ³ , κ·Έλ¬λ©΄ λ λ²μ§Έ master λ¬Έμ κ° λ€μ λμμ.
μμ½νλ©΄μ.
- transaction = νΈμ§ μ¬κ±΄ κ°μ²΄, νμ μλ
- μ¬λ = νκ·Έ μμ (κΈ°λ³Έκ°), Pippa =
editActor.of("pippa"), νμΌ λκΈ°ν = μ μΈ - κΈ°λ‘ λ¨μ = μ€λ μ· κ΅¬κ°, κ° = μλ μ¬λμ μ§ν©, λΉμ¨μ μ μΌ
- λ κ²½μ°μ μ°¨μ΄λ μ€λ μ· μμλ‘λ§ λ³΄μ
κΆκΈν κ² λ μμΌλ©΄ μΈμ λ λ¬Όμ΄λ΄μ. Rekindleμ μμ€κ° 곡κ°λ νλ‘μ νΈκ° μλλΌμ μ½λλ₯Ό μ§μ λ³΄μ€ μλ μμ§λ§, μ μ€λͺ μ΄ κ·Έ μ€κ³μ μ λΆμμ β νμ€νΈκ° μ΄μ΄ 보μ¬μ£Όλ 건 μ½λκ° μλλΌ μ¬κ³ λ°©μμ΄κ±°λ μ.
~ νΌν
ν΄λΉ λΆλΆμ λν΄μ κΆκΈν κ² μμ΄.
transactionμ μΌμ’ μ μνλ₯Ό λ³νμν€λ κ°μ²΄λΌκ³ λ΄μΌλλκ±°μΌ?
λ¬Έμ A μν -> λ¬Έμ A'μν
λ°λΌμ μλ³Έ νμμ μλκ³ , μΈλ±μ€ κ°μ νμλ λ·° κ°μ ꡬ쑰λΌκ³ λ΄λΌλ΄μΌνλ?
λν κΆκΈνκ² λκ° κΈμ μμ±νλλ‘ λκ³ λ΄€μ λ κ²½μ°μ μλ ν¬κ² 2κ°μ§κ° μλ κ² κ°μ.
AIκ° λ¬Έμλ₯Ό λ°κΏλλ§λ€ editActor μ£Όμμ΄ μ€λ¦¬κ³ , μ΄λ₯Ό ν΅ν΄ μ μκ° λκ΅°μ§ νλ¨ν μ μλ€λ κ²μΈλ°, μ¬λμ΄ μμ±ν λλ defaultκ°μΌλ‘ editActor μ£Όμμ΄ μ¬λμΌλ‘ μμ±λλκ±°μΌ?
κ·Έλ¬λ©΄ μ΄κ² ꡬκΈλ μ€μλ νμ νλ ν΄μμλ λκ° μμ νμμμ λνλ΄λ ꡬ쑰μ λΉμ·ν λ°©μμΈκ°? λ¬Έμ₯μ λ¨μ΄ νλνλμ λν΄μ μ£Όμμ΄ λΆλ λ°©μμΈκ°. κ·Έλ¬λ©΄ μ 2κ°μ§ κ²½μ°κ° μ°¨μ΄κ° μμ κ² κ°μλ°, λ¬Έμ λ μμ ν λλ§λ€ νμλ₯Ό μΈλ λ°©μμ΄λΌλ©΄, λλλκΉ νλμ κΈμμ μ¬λμ΄ μμ±ν λΉμ¨κ³Ό AIμμ±ν λΉμ¨μ νμ νκΈ°λ νλ€ κ² κ°λ€.
λλ μ΄λ€μμΌλ‘ μ²λ¦¬νλ? μ§κΈ λ΄κ° μ μ΄ν΄κ° μλλ μ΄μ κ° transitionμ΄ μ νν 무μμΈμ§ μ΄ν΄λ₯Ό μ λͺ»ν΄μ κ·Έλ° κ²κ°μ.
μμΈν μ€λͺ μ λΆννλ€!