1. ν μ€νΈ
- μλ¬λ₯Ό μ¬μ μ κ²μ¬νκΈ° μν κ²
- λμμ΄ μ΄μ κ³Ό λ€λ₯Έκ²μ΄ μλμ§ κ²μ¬νλ κ²
- μ¬μ κ²μ¦μ ν΅νμ¬ μμ μ± μλ μ±μ μ λ¬ νκΈ° μν¨
1.1 Static Analysis
- μ½λ μμμ μλ λ¬Έμ λ₯Ό λ°λ‘ μμ λΌ μ μλ κ²
- Type Checking (Typescript, Flow λ±)
- Lint (ESLint)
- κ°μ₯ μ½κ² μ κ·Ό ν μ μλ λ°©λ²
- μ λΉμ© κ³ ν¨μ¨
1.2 Testable code
- μ½λλ₯Ό κ°κ° λ¨μμ λ§κ² μͺΌκ°λκ²
- μκ² μͺΌκ°€ μλ‘ λ ν μ€νΈκ° μ¬μμ§
- λΉμ¦λμ€ λ‘μ§, App State, μ»΄ν¬λνΈλ±μ λ¨μλ‘ λΆλ¦¬
1.3 Structuring Test
- ν μ€νΈ μμ±μ λͺ ννκ² μ΄λ€ ν μ€νΈμΈμ§λ₯Ό μ λ¬νκΈ° μν¨
- ꡬ쑰νλ ν
μ€νΈλ¬Έμ λͺ¨λκ° ν
μ€νΈμ μꡬμ¬νμ νμ
νκΈ° μ¬μμ§
Given: μ΄λ€ 쑰건μ ν μ€νΈ μΈμ§?When: μ΄λ€ ν¨μ λλ νλμ μν΄μ λ°μνλκ² μΈμ§?Then: μ΄λ ν κ²°κ³Όκ°μ΄ λμμΌ νλμ§
- κ³Όκ±°μ μ’μμ λλ₯Έ κΈ°λ‘ μμ΄ μ’μμλ₯Ό ν λ μ’μμκ° μ¬λΌκ°λ€
1.4 Unit Test
- κ°μ₯ μμ λ¨μμ λν ν μ€νΈ
- μ½κ³ λΉ λ₯΄κ² μμ± ν μ μκ³ λ°λ‘ μ€ννμ¬ κ²μ¦ κ°λ₯
- function λλ class λ±μ μ μ©
- μμλ¨μλ‘λ§ ν μ€νΈ νκΈ° λλ¬Έμ, ν©μ³μ‘μλ λμμ΄ λ¬λΌ μ§ μλ μμ
1.5 Integration Test
- ν΅ν© ν μ€νΈ, μ λν μ€νΈλ€κ³Ό ν¨κ» ν΅ν©ν΄μ ν μ€νΈ νλκ²
- κ°κ°μ μ λ ν μ€νΈ κ²°κ³Όλ€μ μμ΄ ν μ€νΈ κ²°κ³Όκ°μ μ νκ² λ¨
1.6 Component Test
- μ»΄ν¬λνΈ μ체μ λν κ²μ¦μ μ§ν
Interaction Test: λ²νΌμ΄ λ리λμ§, νΉμ disableλμμλ λλ¦¬μ§ μλμ§ λ±μ λν κ²μ¦Snapshot Test: μ΄μ μ render λλ κ²κ³Ό μ§κΈ renderλλκ²μ΄ κ°μμ§ κ²μ¦
1.7 E2E Test (End to End Test)
- μ€μ λ‘ λμκ°λ μ±μμ μ§μ λ μ€ν¬λ¦½νΈλλ‘ λ°λ³΅ νλ κ²
- μ€μ λ‘ λ‘κ·ΈμΈ νλ‘μ°λ± μ λ³νμ§ μλ νλ©΄μ λν΄μλ ν μ€νΈ κ°λ₯
- μ€μ νΈλν°κ³Ό μ°λνμ¬ ν μ€νΈ κ°λ₯
- Detox, Appiumλ± μ€νμμ€λ‘ λμ΄μμ
2. Jest
- Javascript Unit Test Framework
- μλ°μ€ν¬λ¦½νΈμμ μ λν μ€νΈλ₯Ό λ§λ€λ κ°μ₯ λ²μ©μ μΌλ‘ μ¬μ© λ¨
- Metaμμ κ°λ°
- κΈ°λ³Έ ν μ€νΈ ꡬ쑰
1test('What to Test it', () => {2expect(1 + 1).toBe(2)3})
3. Expoλ‘ μ€ν μ΄ μ λ‘λ λ° μ΄μ
3.1 νκ²½λΆλ¦¬
- λλ²κΉ , νλ‘λμ μ μν μ± λ± μ¬μ©νλ Configλ€μ λΆλ¦¬ νλκ²
- μ½λλ 벨μμλ ν μ μμ§λ§ ν΄λ¨Όμλ¬μ λ°μ κ°λ₯μ±μ΄ λμ
- μ΄λ€ APIλ‘ λ³΄λΌμ§, DBλ μ΄λλ₯Ό μ κ·Όν μ§ λ±μ λλ λ
3.2 OTA Update λ ?
- μ€ν μ΄λ₯Ό ν΅νμ§ μκ³ λ°λ‘ μ¬μ©μλ€μ΄ μ¬μ© ν μ μλλ‘ νλ μ λ°μ΄νΈ
- Over the air Updateμ μ½μ
- App Update λ? λΉλ μλ£ β μ€ν μ΄ κ²μ β μ¬μ©μμκ² μ λ¬
OTA Update: λΉλ μλ£ λ λ€ λ°λ‘ μ¬μ©μμκ² μ λ¬λ¨- OTA Update μ νμ
- μ λ°μ΄νΈκ° Javascript, Typescriptμμμμλ§ κ°λ₯
4. Expoμ νκ³μ
(1) Expo SDK λ―Έμ§μμ λΆνΈν¨
- μ§μνμ§ μλ SDKλ₯Ό μ¬μ©νλ©΄ eject ν΄μ μ¬μ© ν΄μΌ ν¨
- μΉ΄μΉ΄μ€ λ‘κ·ΈμΈ, λ€μ΄λ² λ‘κ·ΈμΈ λ± λ€μ΄ν°λΈ λͺ¨λμ μ¬μ©ν λ λ°μ
(2) EAS Build Systemμ λΉλ μκ°
- λΉλλ₯Ό κ±Έμ΄λκ² λλ©΄ EASμμ λΉλκ° μ§νλ¨
- ν΄λΌμ°λ 리μμ€λ₯Ό μ¬μ©νλ€λ³΄λ μ무λλ λκΈ° μκ°μ΄ νμ
- λΉλμλ² κ΅¬μΆ, μ λ£ νλμ μ¬μ©νμ§ μλλ€λ©΄ λ°μ (μ£Όλ‘ 15~20λΆ μ¬μ΄)
(3) λΉλ κ²°κ³Όλ¬Όμ Size
- λΉλ κ²°κ³Όλ¬Όμ μ©λμ΄ ν°νΈ (20MB μ΄μ)
- Expo SDKμ ν΄λΉνλκ²λ€μ΄ λͺ¨λ λ€μ΄κ°κΈ° λλ¬Έ