โ† ๋ชฉ๋ก
A-04 MVP ์นดํ…Œ๊ณ ๋ฆฌ A
๐ŸŒณ TreeStudy APP ํ”„๋กœ์ ํŠธ ์ž‘์—…์ง€์‹œ์„œ
์—…๋ฐ์ดํŠธ 2026-03-02 ์ƒ์„ฑ 2026-03-02
โœ๏ธ ํŽธ์ง‘
์ •๋ง ์‚ญ์ œ?

ํ”„๋กœ์ ํŠธ ์ž‘์—…์ง€์‹œ์„œ

ํ”„๋กœ์ ํŠธ๋ช…: TreeStudy (์ˆ˜๋ชฉ ํ˜„์žฅ ์‹๋ณ„/ํ•™์Šต ๋„๊ตฌ)
๋ชฉํ‘œ: ํ˜„์žฅ์—์„œ 10์ดˆ ๋‚ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ˆ˜์ข…์„ ๋น ๋ฅด๊ฒŒ ํ™•์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”„๋ผ์ธ ์šฐ์„  ์•ฑ
ํ˜„์žฌ ๋‹จ๊ณ„: Phase 1 ์ง„ํ–‰ ์ค‘ (์ง„ํ–‰๋ฅ  70%)


์™„๋ฃŒ ํ•ญ๋ชฉ

// ------------------------------------------ //
// ------------------------------------------ //

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

ํ•ต์‹ฌ ๊ฐ€์น˜

์„ฑ๊ณต ๊ธฐ์ค€ (Phase 1)

๊ธˆ์ง€ ์‚ฌํ•ญ

// ------------------------------------------ //
// ------------------------------------------ //

2. Phase ๊ตฌ๋ถ„ ๋ฐ ์ง„ํ–‰ ์ƒํ™ฉ

Phase 1 (ํ˜„์žฌ ์ง„ํ–‰ ์ค‘)

๋ชฉํ‘œ

์ง„ํ–‰ ์ค‘ ์ž‘์—…

๋ธ”๋กœ์ปค/์ด์Šˆ


Phase 2 (์˜ˆ์ •)

์ถ”๊ฐ€ ๊ธฐ๋Šฅ


Phase 3 (๊ณ„ํš)

๊ณ ๊ธ‰ ๊ธฐ๋Šฅ

// ------------------------------------------ //
// ------------------------------------------ //

3. ๊ฐœ๋ฐœ ์ŠคํŽ™

ํ•„์ˆ˜ ํ™”๋ฉด 5๊ฐœ

1) Splash

2) Home

3) Category List

4) Species Detail

5) Compare (2์ข… ๋น„๊ต)


๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ

species.json

[
  {
    "id": "persimmon",
    "name_ko": "๊ฐ๋‚˜๋ฌด",
    "aliases": ["๊ฐ", "๊ฐ๋‚˜๋ฌด"],
    "category": "FRUIT_TREE",
    "rank": 1,
    "key_points": [
      "ํŒ๋ณ„ํฌ์ธํŠธ 1",
      "ํŒ๋ณ„ํฌ์ธํŠธ 2",
      "ํŒ๋ณ„ํฌ์ธํŠธ 3"
    ],
    "similar_ids": ["jujube"],
    "images": {
      "thumb": "thumbs/persimmon.webp",
      "lite": {
        "habit": "habit.webp",
        "detail": "detail.webp"
      },
      "full": {
        "habit": ["packs/full/persimmon/habit_01.webp"],
        "leaf": ["packs/full/persimmon/leaf_01.webp"],
        "bark": ["packs/full/persimmon/bark_01.webp"],
        "fruit": ["packs/full/persimmon/fruit_01.webp"]
      }
    }
  }
]

๊ฒฝ๋กœ ๊ทœ์น™:
- Android assets ๋‚ด๋ถ€์—์„œ๋Š” assets/ ์ ‘๋‘์–ด ์—†์ด ์ ‘๊ทผ
- lite ์ด๋ฏธ์ง€๋Š” ํŒŒ์ผ๋ช…๋งŒ ์ €์žฅ (์•ฑ์—์„œ lite/${id}/${ํŒŒ์ผ๋ช…} ์กฐํ•ฉ)
- thumb๋Š” thumbs/${id}.webp ๊ฒฝ๋กœ
- JSON์€ ํ‘œ์ค€ JSON๋งŒ ํ—ˆ์šฉ (์ฃผ์„/ํŠธ๋ ˆ์ผ๋ง ์ฝค๋งˆ ๊ธˆ์ง€)
- ID๋Š” ํด๋”๋ช…๊ณผ 100% ๋™์ผํ•ด์•ผ ํ•จ (๋Œ€์†Œ๋ฌธ์ž ํฌํ•จ)
- ๋ฌธ์„œ ํ‘œ/JSON/ํด๋”๋ช… 3๊ฐœ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๋ฉด PASS ์ฒ˜๋ฆฌ


comparisons.json

[
  {
    "id": "thuja_vs_juniper",
    "a": "thuja",
    "b": "juniper",
    "title": "์ธก๋ฐฑ๋‚˜๋ฌด vs ํ–ฅ๋‚˜๋ฌด",
    "decisive": "๊ฒฐ์ •ํƒ€ 1์ค„ ์„ค๋ช…",
    "points": {
      "leaf": ["์ฐจ์ด์  1", "์ฐจ์ด์  2"],
      "bark": ["์ฐจ์ด์  1"],
      "fruit": ["์ฐจ์ด์  1"],
      "habit": ["์ฐจ์ด์  1"]
    }
  }
]

๋น„๊ต ์นด๋“œ ๋…ธ์ถœ ๊ทœ์น™:
- a์™€ b ์ˆ˜์ข…์ด ๋‘˜ ๋‹ค ์กด์žฌํ•  ๋•Œ๋งŒ ๋…ธ์ถœ
- ํ•˜๋‚˜๋ผ๋„ ์—†์œผ๋ฉด ์ž๋™ ์ˆจ๊น€ (Phase 2์—์„œ ์ข… ์ถ”๊ฐ€ ์‹œ ์ž๋™ ํ™œ์„ฑํ™”)


ํด๋” ๊ตฌ์กฐ

Lite (์•ฑ ๋‚ด์žฅ)

app/src/main/assets/
โ”œโ”€โ”€ data/
โ”‚   โ””โ”€โ”€ species_phase1.json
โ”œโ”€โ”€ lite/
โ”‚   โ””โ”€โ”€ <species_id>/
โ”‚       โ”œโ”€โ”€ habit.webp
โ”‚       โ””โ”€โ”€ detail.webp
โ””โ”€โ”€ thumbs/
    โ””โ”€โ”€ <species_id>.webp

Full Pack (๋‹ค์šด๋กœ๋“œ/์˜คํ”„๋ผ์ธ)

packs/full/<species_id>/
โ”œโ”€โ”€ habit_01.webp
โ”œโ”€โ”€ leaf_01.webp
โ”œโ”€โ”€ bark_01.webp
โ””โ”€โ”€ fruit_01.webp

์นดํ…Œ๊ณ ๋ฆฌ Enum (๊ณ ์ • ํ‚ค)


์ปดํฌ๋„ŒํŠธ ์šฐ์„ ์ˆœ์œ„

P0 (ํ•„์ˆ˜)

  1. ๋กœ์ปฌ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ (JSON)
  2. ๊ฒ€์ƒ‰ (์ˆ˜์ข…๋ช… + ๋ณ„์นญ) + ์ž๋™์™„์„ฑ
  3. ์ตœ๊ทผ ๋ณธ ๊ธฐ๋ก (๋กœ์ปฌ ์ €์žฅ, ์ตœ๋Œ€ 10๊ฐœ, 30์ผ ๋ณด๊ด€)
  4. ์ƒ์„ธ ํŽ˜์ด์ง€ ์ด๋ฏธ์ง€ ํ•€์น˜ ์คŒ (๊ตฌํ˜„: Transformable ๊ธฐ๋ณธ ์šฐ์„ )
  5. ๋น„๊ต ๊ธฐ๋Šฅ (2์ข…) + ์กฐ๊ฑด๋ถ€ ๋…ธ์ถœ
  6. Lite/Full ํŒฉ ๊ฒฝ๋กœ ๋ถ„๋ฆฌ + ์Šฌ๋กฏ ํ‘œ์‹œ

P1 (๊ถŒ์žฅ)

  1. ์ฆ๊ฒจ์ฐพ๊ธฐ (๋กœ์ปฌ)
  2. ๋‹ค์šด๋กœ๋“œ ํŒฉ UI (Wi-Fi ๊ถŒ์žฅ/์šฉ๋Ÿ‰ ํ‘œ์‹œ/์ง„ํ–‰๋ฅ /์žฌ์‹œ๋„)

P2 (ํ›„์ˆœ์œ„)

  1. ์‹ฑํฌ ์Šคํฌ๋กค ๋น„๊ต
  2. ํ˜•ํƒœ ํ•„ํ„ฐ ์นฉ
  3. ๋‚ด ์‚ฌ์ง„ ์ดฌ์˜ ๋น„๊ต
  4. ๋ฆฌํฌํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ

๋ฐ์ดํ„ฐ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ ์š”๊ตฌ์‚ฌํ•ญ

์ž…๋ ฅ ํด๋” (์›๋ณธ)

raw/<species_id>/
โ”œโ”€โ”€ habit/*.jpg
โ”œโ”€โ”€ leaf/*.jpg
โ”œโ”€โ”€ bark/*.jpg
โ””โ”€โ”€ fruit/*.jpg

์ถœ๋ ฅ

Validator ํ•„์ˆ˜ ์ฒดํฌ ํ•ญ๋ชฉ

// ------------------------------------------ //
// ------------------------------------------ //

4. ์ž‘์—… ๋กœ๊ทธ (์ตœ์‹ ์ˆœ)

2026-02-15

์™„๋ฃŒ

์ˆ˜์ •

Next

// ------------------------------------------ //
// ------------------------------------------ //

5. ๋ถ€๋ก

Top 20 ์ˆ˜์ข… (Phase 1)

์ˆœ์œ„ ํ•œ๊ธ€๋ช… ID (์˜๋ฌธ) ์นดํ…Œ๊ณ ๋ฆฌ
1 ๊ฐ๋‚˜๋ฌด persimmon FRUIT_TREE
2 ์†Œ๋‚˜๋ฌด pine CONIFER_EVERGREEN
3 ๋Œ€์ถ”๋‚˜๋ฌด jujube FRUIT_TREE
4 ๋‹จํ’๋‚˜๋ฌด maple BROADLEAF_TREE
5 ๋งค์‹ค๋‚˜๋ฌด maesil_plum FRUIT_TREE
6 ๋ฐฐ๋‚˜๋ฌด pear FRUIT_TREE
7 ๋ณต์ˆญ์•„๋‚˜๋ฌด peach FRUIT_TREE
8 ์‚ฌ์ฒ ๋‚˜๋ฌด euonymus_japonicus SHRUB_LANDSCAPE
9 ์ž๋‘๋‚˜๋ฌด plum FRUIT_TREE
10 ๋ฝ•๋‚˜๋ฌด mulberry FRUIT_TREE
11 ์˜์‚ฐํ™ azalea_youngsan SHRUB_LANDSCAPE
12 ์‚ฌ๊ณผ๋‚˜๋ฌด apple FRUIT_TREE
13 ๋ฌด๊ถํ™” rose_of_sharon SHRUB_LANDSCAPE
14 ์•„๋กœ๋‹ˆ์•„ aronia FRUIT_TREE
15 ์ฃผ๋ชฉ yew CONIFER_EVERGREEN
16 ํ–ฅ๋‚˜๋ฌด juniper CONIFER_EVERGREEN
17 ๋‘๋ฆ…๋‚˜๋ฌด angelica_tree BROADLEAF_TREE
18 ์ธก๋ฐฑ๋‚˜๋ฌด thuja CONIFER_EVERGREEN
19 ์žฅ๋ฏธ rose SHRUB_LANDSCAPE
20 ํฌ๋„๋‚˜๋ฌด grapevine FRUIT_TREE

Top 50 ์ˆ˜์ข… (Phase 2 ํ™•์žฅ)

A) ๊ณผ์‹คยท์—ด๋งค (17์ข…)


B) ์นจ์—ฝยท์ƒ๋ก (10์ข…)


C) ํ™œ์—ฝ ๊ต๋ชฉ (8์ข…)


D) ๊ด€๋ชฉยท์กฐ๊ฒฝยทํ™”๋ชฉ (12์ข…)

// ------------------------------------------ //

๋น„๊ต์Œ 10๊ฐœ (Phase 1 ์šฐ์„ )

Phase 1 ์ฆ‰์‹œ ๋…ธ์ถœ 5์Œ (Top 20 ๋‚ด ์–‘์ชฝ ์กด์žฌ)
1. ์ธก๋ฐฑ๋‚˜๋ฌด vs ํ–ฅ๋‚˜๋ฌด
2. ๋งค์‹ค๋‚˜๋ฌด vs ์ž๋‘๋‚˜๋ฌด
3. ์ž๋‘๋‚˜๋ฌด vs ๋ณต์ˆญ์•„๋‚˜๋ฌด
4. ์‚ฌ๊ณผ๋‚˜๋ฌด vs ๋ฐฐ๋‚˜๋ฌด
5. ๊ฐ๋‚˜๋ฌด vs ๋Œ€์ถ”๋‚˜๋ฌด

Phase 2 ์ข… ํ•„์š” (๋ฐ์ดํ„ฐ๋งŒ ์ค€๋น„, ์ž๋™ ์ˆจ๊น€)
6. ํ–ฅ๋‚˜๋ฌด vs ๋…ธ๊ฐ„์ฃผ๋‚˜๋ฌด
7. ์ฃผ๋ชฉ vs ๋…ธ๊ฐ„์ฃผ๋‚˜๋ฌด
8. ์ธก๋ฐฑ๋‚˜๋ฌด vs ์—๋ฉ”๋ž„๋“œ๊ทธ๋ฆฐ
9. ์ „๋‚˜๋ฌด vs ๋…์ผ๊ฐ€๋ฌธ๋น„๋‚˜๋ฌด
10. ๋งค์‹ค๋‚˜๋ฌด vs ์‚ด๊ตฌ๋‚˜๋ฌด

๋…ธ์ถœ ๊ทœ์น™: Phase 1์—์„œ๋Š” ์ฆ‰์‹œ ๋…ธ์ถœ 5์Œ๋งŒ ํ™œ์„ฑํ™”, ๋‚˜๋จธ์ง€๋Š” ์ข… ์ถ”๊ฐ€ ์‹œ ์ž๋™ ํ™œ์„ฑํ™”


๋น„๊ต์Œ 20๊ฐœ ์ „์ฒด (ํ™•์žฅ)

์นจ์—ฝ/์ƒ๋ก ํ•ต์‹ฌ (9์Œ)

  1. ์ธก๋ฐฑ๋‚˜๋ฌด vs ํ–ฅ๋‚˜๋ฌด
  2. ํ–ฅ๋‚˜๋ฌด vs ๋…ธ๊ฐ„์ฃผ๋‚˜๋ฌด
  3. ์ธก๋ฐฑ๋‚˜๋ฌด vs ์—๋ฉ”๋ž„๋“œ๊ทธ๋ฆฐ
  4. ํ–ฅ๋‚˜๋ฌด vs ์—๋ฉ”๋ž„๋“œ๊ทธ๋ฆฐ
  5. ์ฃผ๋ชฉ vs ํ–ฅ๋‚˜๋ฌด
  6. ์ฃผ๋ชฉ vs ์ธก๋ฐฑ๋‚˜๋ฌด
  7. ์†Œ๋‚˜๋ฌด vs ๋ฐ˜์†ก
  8. ์†Œ๋‚˜๋ฌด vs ์žฃ๋‚˜๋ฌด
  9. ์ „๋‚˜๋ฌด vs ํŽธ๋ฐฑ๋‚˜๋ฌด

๊ทธ๋ฃน: ์ธก๋ฐฑ/ํ–ฅ๋‚˜๋ฌด/๋…ธ๊ฐ„์ฃผ/์—๋ฉ”๋ž„๋“œ๊ทธ๋ฆฐ/์ฃผ๋ชฉ (2๊ฐœ ์„ ํƒ ๋น„๊ต)


๊ณผ์‹คยท์žฅ๋ฏธ๊ณผ ํ˜ผ๋™๊ตฐ (6์Œ)

  1. ๋งค์‹ค๋‚˜๋ฌด vs ์‚ด๊ตฌ๋‚˜๋ฌด
  2. ๋งค์‹ค๋‚˜๋ฌด vs ์ž๋‘๋‚˜๋ฌด
  3. ์ž๋‘๋‚˜๋ฌด vs ๋ณต์ˆญ์•„๋‚˜๋ฌด
  4. ์ฒด๋ฆฌ๋‚˜๋ฌด vs ์•ต๋‘๋‚˜๋ฌด
  5. ๊ฐ๋‚˜๋ฌด vs ๋Œ€์ถ”๋‚˜๋ฌด
  6. ๋ฐฐ๋‚˜๋ฌด vs ํŒฅ๋ฐฐ๋‚˜๋ฌด

๊ด€๋ชฉ/์กฐ๊ฒฝ ํ˜ผ๋™๊ตฐ (5์Œ)

  1. ํšŒ์–‘๋ชฉ vs ๊ฝ๊ฝ๋‚˜๋ฌด
  2. ์‚ฐ์ˆ˜์œ  vs ์‚ฐ๋”ธ๋‚˜๋ฌด
  3. ์˜์‚ฐํ™ vs ์ฒ ์ญ‰
  4. ๋‚จ์ฒœ vs ํ™”์‚ด๋‚˜๋ฌด
  5. ์‚ฌ๊ณผ๋‚˜๋ฌด vs ๋ฐฐ๋‚˜๋ฌด

// ------------------------------------------ //
// ------------------------------------------ //

๋‹ค์šด๋กœ๋“œํŒฉ ๊ตฌ์กฐ (์œ ๋ฃŒํ™” ๋Œ€๋น„)

๊ธฐ๋ณธ ์›์น™

ํŒฉ ๋‹จ์œ„ (๊ถŒ์žฅ)

์œ ๋ฃŒ(Pro) ๊ตฌ์„ฑ (์˜ˆ: 3,900์›)

Lite (๋ฌด๋ฃŒ)
- ์ข…๋‹น 2~3์žฅ (habit + detail + fruit)
- ๋น„๊ต ๊ธฐ๋Šฅ ๋™์ผ ์ œ๊ณต
- ์˜คํ”„๋ผ์ธ์€ Lite๋งŒ ๋ณด์žฅ

Pro (์œ ๋ฃŒ)
- Full ์‚ฌ์ง„ํŒฉ ์˜คํ”„๋ผ์ธ ์ œ๊ณต
- ์‚ฌ์ง„ ์ˆ˜ ํ™•์žฅ (ํŒŒํŠธ๋ณ„ ๋‹ค์žฅ) + ์คŒ ์ตœ์ ํ™”
- ํŒฉ ์„ค์น˜/์—…๋ฐ์ดํŠธ/๋ณต๊ตฌ UX
- (Phase 2) ์‹ฑํฌ ์Šคํฌ๋กค ๋น„๊ต ์ „์šฉ

// ------------------------------------------ //
// ------------------------------------------ //

๋ฌธ์„œ ์ด๋ ฅ