ํ ์ค ๊ฒฐ๋ก
๊ณต๊ณต OpenAPI/๊ธฐ๊ด ๊ณต๊ณ ๋ฅผ โํ
๋ ๊ทธ๋จ ์๋ฆผ ์๋น์คโ๋ก ํ์คํํด์,
ํฌ๋ชฝ์ โ์ด์ ๊ฐ ์ธํ
(์ง์
์ฉ)โ์ผ๋ก ๊น๊ณ , ๋ฐ๋ณต ๋งค์ถ์ โ๊ตญ๋ด ๊ฒฐ์ (ํ ์ค ๋ฑ) + ๊ธฐ๊ฐ๊ถโ์ผ๋ก ํ์ํ๋ค.
ํ์ฅ์ API๋ณ ์ด๋ํฐ๋ง ์ถ๊ฐํ๋ ๊ณต์ฅํ ๊ตฌ์กฐ๋ก ๊ฐ๋ค.
1) ๋ฌธ์ ์ธ์๊ณผ ์ ๋ต ์ฌ์ ์
1.1 ๊ฒฝ์์ด ์ฌํ ์์ญ vs ํ์๊ฐ ์๋ ์์ญ
- ๋๋ผ์ฅํฐ/์กฐ๋ฌ์ ์ด๋ฏธ ๋ฌด๋ฃ ๊ฒฝ์์(์: ์งํฌ๋นํ๋ฌ์ค๋ฅ)๊ฐ ์กด์ฌ โ โ์ ๋ณด ์์ฒดโ๋ก๋ ์ฐจ๋ณํ ์ด๋ ต๋ค.
- ๋ฐ๋ฉด LH ์๋์ ํ/๋ถ์ยท์๋/ํน์ ๊ธฐ๊ด ๊ณต๊ณ ๋ API๋ ์์ด๋ โ์ ๋ฆฌ๋ ํ
๋ ๊ทธ๋จ ์ค์๊ฐ ์๋ฆผโ์ด ๋ถ์กฑ โ ํ์๊ฐ ์๋ค.
1.2 ํต์ฌ ์ ๋ต(์คํธ๋ ๋ฐฉํฅ)
2) ํ๊ฒ/๋ฒํฐ์ปฌ ์ฐ์ ์์(์์ฝ)
Tier 1 (๋ช
ํํ ๋์ฆ + ๋์ด ๋๋ ๋ถ์ผ)
- ์
์ฐฐ/์กฐ๋ฌ(๊ธฐ๊ด๋ณ)
- ๋ถ๋์ฐ/๋ถ์/์๋/๊ณต๋งค
- ์ ๋ถ์ง์์ฌ์
(์ค์/์ฐฝ์
/R&D)
- ํน์(ODA/๊ธ์/ํ๊ฒฝ/ํญ๋ง ๋ฑ)
Tier 2 (๋์นํ์ง๋ง ์ ์ค)
- ๊ท์ /๋ฒ๋ฅ /๊ด๋ณด/์๋ฃ๊ธฐ๊ธฐ ์ฌํ๊ฐ
- ํนํ/์ํ/๋์์ธ
- ๋ณต์ง/๋๋ด/์์ ๋ฑ
์ค์ ์กฐ์ธ: ์ด๋ฐ์ โ๊ณ ๊ฐ์ด ๋์ ๋ฒ๋ ์ ๋ณด(์
์ฐฐ/๊ณต๋งค/์ง์์ฌ์
)โ ์์ฃผ๊ฐ ์ ์ง์จ์ด ๋์ต๋๋ค.
3) ์์ต ๋ชจ๋ธ(ํ์คํ์ผ๋ก ์ฌ๊ตฌ์ฑ)
3.1 ํฌ๋ชฝ์ โ๊ฐ๋ฐ๋นโ๊ฐ ์๋๋ผ โ์ธํ
/๊ฒ์ ํจํค์งโ
์ด๊ธฐ์ ํด๋ก๋๊ฐ ๋งํ ๊ตฌ์ถ๋น(30~50๋ง)๋ ๋ง์ถค๊ฐ๋ฐ ๋๋์ด๋ผ ๋นํ์ค์ ์ผ ์ ์์ โ ์คํธ๋ ํ๋จ๋๋ก โ๋ฎ์ ์ง์
์ฅ๋ฒฝโ์ด ๋ ์ ๋ฆฌ.
๊ตฌ์ถ๋น(์ธํ
๋น) ๊ถ์ฅ 3๋จ
- 3๋ง์ ๋ผ์ดํธ: ํฌํจํค์๋ ์๋ + ์ง์ญ/๊ธฐ๊ด 1๊ฐ ์ ๋
- 5๋ง์ ์คํ ๋ค๋: ํฌํจ/์ ์ธ ํค์๋ ํ์ฅ + ํํฐ 2~3๊ฐ ์กฐํฉ + โ์ด๊ธฐ ์์ ํ 1ํ ์กฐ์ โ ํฌํจ
- 10๋ง์ ํ๋ก: ์์ธ/๋ณต์กํ ์กฐ๊ฑด(OR/AND, ์ ์ธ ๋ค์, ๋ค์ค ์ฑ๋ ๋ถ๋ฐฐ ๋ฑ) ๋๋ โ์์
๋ชฉ๋ก ๋ํ ์ธํ
โ
ํฌ์ธํธ: โ์ธ๊ฒ ๋ณด์ด๊ฒ(์
๊ตฌ)โ + โ๋ณต์กํ ์ผ์ด์ค๋ง ๋น์ธ๊ฒ(์๊ฐ ๋ฐฉ์ด)โ.
3.2 ๋ฐ๋ณต ๋งค์ถ์ โ์ ๊ตฌ๋
โ์ธ๋ฐ, Stars๋ ํ๊ตญ ์ถ๊ธ/์ ์ฐ ๋ถํ์ค
- Stars๋ ๋ฌธ์์ ์ถ๊ธ/์ ํ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋๋ผ๋ ๊ตญ๊ฐ/ํ๊ฒฝ์ ๋ฐ๋ผ ์ ํ์ด ํ์ค์ ์ผ๋ก ์์ ์ ์์.
- ์คํธ๋ ๊ฒฝํ์ โํ๊ตญ์์ ํ๊ธํ๊ฐ ๋ถํ์คโ โ Stars๋ฅผ ํต์ฌ ๊ฒฐ์ ์ถ์ผ๋ก ์ก์ง ์๋๋ค.
4) ๊ฒฐ์ ๊ตฌ์กฐ(Stars ๋์ ) โ โํ
๋ ์๋ด + ๊ตญ๋ด ๊ฒฐ์ ๋งํฌโ
4.1 ๊ฐ๋ฅํ๊ฐ? โ ๊ฐ๋ฅ. ๋จ ์กฐ๊ฑด์ด ์์
์คํธ๋์ด ๋๋ ๋ถ๋ถ:
โ๋ด์์ ๊ฒฐ์ ๋งํฌ ์๋ด โ ๊ฒฐ์ โ ๊ฒฐ์ ์ฌ ์นํ
โ ์๋ ๊ตฌ๋
ํ์ฑโ
์ด๊ฒ ๋๋ ค๋ฉด ๊ฒฐ์ ๋งํฌ๊ฐ ๊ทธ๋ฅ URL์ด ์๋๋ผ, ์๋ฒ๊ฐ ์ฃผ๋ฌธ์ ์์ฑํด ๋ฐ๊ธํ ๊ฒฐ์ URL์ด์ด์ผ ํฉ๋๋ค.
4.2 ํ ์ค ๊ฒฐ์ ๊ธฐ์ค ๊ธฐ๋ณธ ํ๋ฆ(๊ฐ์ฅ ํ์ค์ )
- ์ ์ ๊ฐ ํ
๋ ๋ด์์ ํ๋ ์ ํ
- ์๋ฒ๊ฐ
orderId ์์ฑ + chat_id ๋งคํ ์ ์ฅ
- ์๋ฒ๊ฐ ๊ฒฐ์ ํ์ด์ง URL ์์ฑ(๊ฒฐ์ ์ฌ/PG)
- ๋ด์ด URL ๋ฒํผ ์ ๊ณต
- ์ ์ ๊ฒฐ์ ์๋ฃ
- ๊ฒฐ์ ์ฌ๊ฐ ์นํ
์ผ๋ก ๊ฒฐ์ ์ฑ๊ณต ์ด๋ฒคํธ๋ฅผ ์๋ฒ๋ก ์ ์ก
- ์๋ฒ๊ฐ ์นํ
๊ฒ์ฆ โ
orderId๋ก chat_id ์ฐพ์ โ ๊ตฌ๋
ํ์ฑ
- ๋ด์ด โ๊ตฌ๋
์์โ ์๋ด
์นํ
์ด ์์ผ๋ฉด?
- successUrl ๋ฆฌ๋ค์ด๋ ํธ + ๊ฒฐ์ ์กฐํ API๋ก โ๊ฒฐ์ ์๋ฃ ์ฌ๋ถโ ํ์ธ ํ ํ์ฑ
(์๋ํ ๊ฐ๋ฅ. ์นํ
์ด ๋ ํธํจ.)
5) ๊ตฌ๋
์ํ ์ค๊ณ(์คํธ๋ ๋ฐฉํฅ ๊ฐํ)
5.1 โํค์๋ 2ํธ๋ + ๋ฆฌ๋ฐ ๋ฎ๊ฒโ๊ฐ ์ ๋ต
๋ณต์กํด์ง๋ฉด CS์ ์ดํ์ด ํญ๋ฐํฉ๋๋ค.
ํค์๋ 2ํธ๋ ์ ์
- Include(ํฌํจ ํค์๋): ์ฐพ๊ณ ์ถ์ ๋จ์ด
- Exclude(์ ์ธ ํค์๋): ๋นผ๊ณ ์ถ์ ๋จ์ด
์ถ๊ฐ ์ต์
์ ์ต์ํ:
- ์ง์ญ or ๊ธฐ๊ด ์ค 1~2๊ฐ ์ ๋๋ง
5.2 ํ๋์ 2๊ฐ๋ง ์ถ์ฒ(์ด์/์ ํ์ ๊ฐํจ)
- ๋ผ์ดํธ(9,900์): ํฌํจ 3 / ์ ์ธ 3 / ์ง์ญor๊ธฐ๊ด 1๊ฐ
- ํ๋ก(19,900์): ํฌํจ 10 / ์ ์ธ 10 / ์ง์ญ+๊ธฐ๊ด ๋๋ ํํฐ 2๊ฐ / ์ฃผ๊ฐ์์ฝ ON/OFF
3๋จ(1/2/3๋ง์)๋ ๊ฐ๋ฅํ์ง๋ง, โ๋ฌด์ ํโ์ ์ด์ ์ง์ฅ์ด ๋๊ธฐ ์ฌ์์
์คํธ๋์ฒ๋ผ ๋ฎ์ ์ผํ๋ ํ๊ฒฝ์ด๋ฉด 2ํ๋์ด ๋ ๊ฐ๋ ฅํฉ๋๋ค.
6) โ๊ธฐ๊ฐ๊ถ(1/3/6๊ฐ์)โ๋ก ๊ฐ๋ฉด ์ด์์ด ์ฌ์์ง๋ค
์ ๊ธฐ ์๋๊ฒฐ์ (๋น๋งํค)๋ ๊ตฌํ/์ด์/๊ฒฐ์ ์คํจ ๋์์ด ๋์ด๋๊ณ CS๊ฐ ์ฆ๊ฐํฉ๋๋ค.
์คํธ๋ ์ํฉ(๋ฎ ๊ทผ๋ฌด, ๋ต๋ณ ๋๋ฆด ์ ์์)์์๋ ๊ธฐ๊ฐ๊ถ์ด ํจ์ฌ ํ์ค์ ์
๋๋ค.
6.1 ๊ธฐ๊ฐ๊ถ ๋ฐฉ์
- 1๊ฐ์ / 3๊ฐ์ / 6๊ฐ์ ์ํ์ ๊ฒฐ์ ํ๋ฉด
expires_at๋ฅผ ๊ทธ๋งํผ ์ฐ์ฅ
- โ๋ฏธ๋ฆฌ ๊ฒฐ์ = ์๋ ์ฐ์ฅโ์ด ์์ฐ์ค๋ฝ๊ฒ ์ฑ๋ฆฝ
6.2 ๋ง๋ฃ ์๋ฆผ(์๋)
- D-7 / D-3 / D-0์ ๋ถ๋๋ฌ์ด ์ฐ์ฅ ์๋ด
- ๊ท์ฐฎ์ผ๋ฉด 3๊ฐ์/6๊ฐ์๋ก ์ ๋
7) ํ
๋ ๊ทธ๋จ ์จ๋ณด๋ฉ(์ค์น/๊ฐ์ด๋ ์ต์ํ)
์คํธ๋ ๋ชฉํ: ๊ณ ๊ฐ์ด โ๋ฐ๋ผ์ค๊ฒ ํ๋ ๊ฐ์ด๋โ๋ฅผ ์ต์ํ.
7.1 ์ต์ ํ๋ก์ฐ(๊ณ ๊ฐ ํ๋ ์ต์)
- ํฌ๋ชฝ ๊ตฌ๋งค(์ธํ
๋น)
- ์๋ ๋ฉ์์ง๋ก โ๋ด ๋งํฌโ ์ ๊ณต
-
ํ
๋ ๋ด:
-
(1) ๋ฒํฐ์ปฌ ์ ํ
- (2) ํฌํจ/์ ์ธ ํค์๋ ์
๋ ฅ
- (3) ํ
์คํธ ์๋ฆผ 1ํ
- (4) ๊ฒฐ์ ๋ฒํผ(๊ธฐ๊ฐ๊ถ ์ ํ)
- ๊ฒฐ์ ์๋ฃ โ ์๋ ํ์ฑ โ โ๊ตฌ๋
์์โ ๋ฉ์์ง
8) ๊ธฐ์ ์ค๊ณ ํต์ฌ: โ์ด๋ํฐ ํ์คํ + ๊ณตํต ์์งโ
์คํธ๋์ด ๋งํ โAPI ์น์ธโ์ฐ๋โํ๋กํ ์ฝ ๋ง์ถคโํ
์คํธโ๋ผ์ด๋ธโ๋ฅผ
์ญ์๋ฒ ๋ฐ๋ณตํ๋ ค๋ฉด ์ด ๋ถ๋ถ์ด ๊ฒฐ์ ์ ์
๋๋ค.
8.1 NormalizedNotice(์ ๊ทํ ๊ณต๊ณ ๊ฐ์ฒด) ์ต์ ์คํค๋ง
API๋ง๋ค ์๋ต์ด ๋ฌ๋ผ๋, ๋ด๋ถ๋ ์ด ํฌ๋งท์ผ๋ก ๊ฐ์ ํฉ๋๋ค.
source : ์์ค๋ช
(์: LH_LEASE)
source_id : ์๋ณธ ๊ณ ์ ํค
title
published_at
region (์์ผ๋ฉด null)
url
raw : ์๋ณธ JSON(ํต์งธ๋ก ์ ์ฅ)
์๋ฏธ
- API๊ฐ ๋ฐ๋์ด๋ โ ์ด๋ํฐ๋ง ์์
- ํํฐ/์ค๋ณต/๋ฐ์ก/๋ก๊ทธ/์์ฝ ๋ก์ง์ ๊ฑฐ์ ๊ทธ๋๋ก ์ ์ง
8.2 ๊ณตํต ์์ง ๊ธฐ๋ฅ(ํ ๋ฒ ๋ง๋ค๋ฉด ๋)
- ์์ง ์ค์ผ์ค๋ฌ(ํฌ๋ก /์์ปค)
- ์ ๊ทํ(์ด๋ํฐ)
- ํํฐ(Include/Exclude/์ง์ญ/๊ธฐ๊ด)
- ์ค๋ณต ์ ๊ฑฐ(
source + source_id ๋๋ ํด์)
- ๋ฐ์ก(ํ
๋ ๋ฉ์์ง)
- ๋ก๊ทธ/์์
/DB ๊ธฐ๋ก
- ์ํ ๋ชจ๋ํฐ๋ง(๊ณ ์ฅ ๊ฐ์ง)
9) ์ด์ ์์ ์ฑ: โ๊ณ ์ฅ ๊ฐ์งโ๋ ์ด๊ธฐ์ ๋ฃ์ด์ผ ํ๋ค
์ญ์๋ฒ ๋ฐ๋ณตํ๋ฉด ๋ฐ๋์ ํฐ์ง๋ ๊ฒ๋ค:
- ์๋ต ์ง์ฐ/์คํจ
- ๋ ์ง ํฌ๋งท ๋ณ๊ฒฝ
- ํ๋๋ช
๋ณ๊ฒฝ
- ํน์ ์์ค๋ง 0๊ฑด ์ง์
์ต์ ๊ฐ๋(์ถ์ฒ)
- 24์๊ฐ ์์ง๋ 0์ด๋ฉด ๊ฒฝ๊ณ
- ์๋ฌ Nํ ์ฐ์์ด๋ฉด ๊ฒฝ๊ณ
- ํน์ ์์ค๋ง ์ฃฝ์ผ๋ฉด ์๋ OFF(๋๋ ์์ ์ค๋จ)
- ๊ด๋ฆฌ์์๊ฒ๋ง ์๋ฆผ(์คํธ๋ ํ
๋ ๋ก)
10) ํ์ง ํ
์คํธ: โ๋ช ์ฃผโ๊ฐ ์๋๋ผ 3~7์ผ์ด๋ฉด ์ถฉ๋ถ
์คํธ๋๋ ๋์ํ์
จ๋ฏ,
์ฑํจ๋ โ๊ธด ๊ธฐ๊ฐโ์ด ์๋๋ผ ์งง์ ์ค์ฌ์ฉ์์ ๋ฐ๋ก ๊ฐ๋ฆฝ๋๋ค.
3~7์ผ ํ
์คํธ๋ก ํ์ธํ ๊ฒ(ํต์ฌ 4๊ฐ)
- ํ๋ฃจ ํ๊ท ์๋ฆผ ์(์คํธ ์ฌ๋ถ)
- ์ค๋ณต/์์ ๊ณต๊ณ ๋น์จ
- ์ ์ธ ํค์๋๊ฐ ํ์ํ ๋น๋
- ์ง์ญ/๊ธฐ๊ด ํํฐ๊ฐ ํ์ํ ๋น๋
ํ
์คํธ ๋ฐฉ์
- ๋ฒํฐ์ปฌ 1~2๊ฐ๋ง ์ ํ(LH + ์จ๋น๋ or ์ค์๋ฒค์ฒ24)
- โํ์ค ํค์๋ ์ธํธโ + โ์คํธ ์ ๋ฐ ์ธํธโ ๋ ๊ฐ์ง๋ก ๋๋ ค๋ณด๊ธฐ
11) ๊ฐ๊ฒฉ ์ธ์(1~3๋ง์์ด ๋น์ธ๊ฒ ๋๊ปด์ง๊น?)
์ ๋ฆฌํ๋ฉด:
- B2B(์
์ฐฐ/์ง์/๊ณต๋งค): ์ 1~3๋ง์์ ๋์ฒด๋ก โ์ธ๋ค/๋ณดํ๋ฃโ๋ก ์ธ์๋ ๊ฐ๋ฅ์ฑ์ด ํผ
- B2C(์ก์ ๋ณด ์๋ฆผ): 1~3๋ง์์ ๋น์ธ๊ฒ ๋๊ปด์ง ์ ์์
์คํธ๋ ํ๊ฒ์ B2B ์ฑ๊ฒฉ์ด ๊ฐํ๋, ๊ฐ๊ฒฉ ์์ฒด๋ณด๋ค โ์ ํ๋/์ค๋ณต์ ๊ฑฐ/ํํฐ ํธ์โ๊ฐ ๊ฐ์น ํฌ์ธํธ์
๋๋ค.
12) ์ ์ฒด ๋ก๋๋งต(์ถ์ฒ ์คํ ์์)
Phase 1: MVP ๊ณ ์ (๊ฐ์ฅ ์ค์)
- ๊ธฐ๊ฐ๊ถ ๊ฒฐ์ + ์๋ ํ์ฑ(์นํ
)
- ๊ตฌ๋
์ํ/๋ง๋ฃ ์๋ฆผ(D-7/D-3/D-0)
- ๋ฒํฐ์ปฌ 1๊ฐ ์์ฑ(LH ๋๋ ์จ๋น๋ ๋๋ ์ค์๋ฒค์ฒ24)
- 3~7์ผ ํ์ง ํ
์คํธ ํ ํํฐ/๋ฉ์์ง ํ์
Phase 2: ๋ฒํฐ์ปฌ 3๊ฐ๊น์ง ํ์ฅ
- ์ด๋ํฐ๋ง ์ถ๊ฐํ๋ฉฐ ํจํด ๊ณ ์
- ํฌ๋ชฝ ์ํ ํ
ํ๋ฆฟ๋ ๋ณต๋ถ ์์ค์ผ๋ก ๊ณ ์
Phase 3: ํฌ๋ชฝ ๋๋ ๋ฑ๋ก(20~30๊ฐ)
- โ์ํ ์โ๊ฐ ๊ณง ๋
ธ์ถ/์ ์
์์ฐ
- ์ค์ ์ด์์ ๊ณตํต ์์ง์์ ํต์
13) ์คํธ๋ ์ํฉ์์์ ํ์ค ํ๊ฐ(์๋ ๊ทธ๋๋ก)
- ์คํ ๊ฐ๋ฅ์ฑ: ๋์
(Stars ์ด์๋ฅผ ๋นผ๊ณ ํ ์ค/๊ตญ๋ด ๊ฒฐ์ ๋ก ๋ฐ๊พธ๋ฉด ๋ ์ฌ์์ง)
- ํ์ค์ฑ: ์ถฉ๋ถํ ํ์ค์
๋จ, ์จ๋ณด๋ฉ๊ณผ ํํฐ ์ ์ฑ
์ ๋จ์ํํด์ผ CS๊ฐ ์ ํฐ์ง
- ์์
๋๋น ํจ์จ: ๋งค์ฐ ์ข์
๊ณตํต ์์ง 1๋ฒ + ์ด๋ํฐ ๋ฐ๋ณต ๊ตฌ์กฐ๊ฐ โํ์ฅ ๋๋น ๋น์ฉโ์ ๊ณ์ ๋ฎ์ถค
14) ๋ค์ ๋จ๊ณ๋ก โ๋ฐ๋ก ์งํโํ ์ฒดํฌ๋ฆฌ์คํธ
์ค๋ ํ์ ํด์ผ ํ๋ 4๊ฐ์ง(๋ผ๋ ๊ณ ์ ์ฉ)
- NormalizedNotice ์คํค๋ง(7ํ๋)
- ํํฐ ์ ์ฑ
(Include/Exclude + ์ง์ญ/๊ธฐ๊ด ์ต์
1~2๊ฐ)
- ํ๋(2ํ๋) + ๊ธฐ๊ฐ๊ถ(1/3/6๊ฐ์)
- ๋ฉ์์ง ํ
ํ๋ฆฟ(์ ๋ชฉ/ํต์ฌ/๋งํฌ/ํ๊ทธ)
์ด๋ฒ ์ฃผ ์ค์ ์ก์
(๊ฐ์ฅ ํจ์จ)
- ๋ฒํฐ์ปฌ 1๊ฐ ์ฐ๊ฒฐ
- ํค์๋ ์ง์ ์ธํ
ํ 3~7์ผ ์์ ํ
์คํธ
- ์๋ฆผ ํ์ง/์๋ ํ์ธ ํ ํ๋/๋ฆฌ๋ฐ ์ต์ข
ํ์
์ข์ต๋๋ค. ์๋๋ ์ ๊ฐ ์์์ ๋ง๋ โ์ฒ์~๋ ์ค๊ณ ๋ฌธ์โ์, ์ ๋ฏธ๋์ด ๋ฌธ์์ ์ฅ์ ์ ํก์ํ๊ณ ์ ๊ฐ ๋ณด์ํด์ผ ํ๋ค๊ณ ์ง์ 6๊ฐ์ง(๊ฒฐ์ ๊ฒ์ฆ/์ค๋ณต/์ฐ์ฅ/ํ
ํ๋ฆฟ/UI/์ด๋ํฐ ๊ณต์ฅํ)๋ฅผ โ์ถ๊ฐยท์์ ํด์ผ ํ ๋ด์ฉ๋งโ ๊น๋ํ ๋ฐ์ํ ์
๋ฐ์ดํธ ํจ์น๋ณธ์
๋๋ค.
(์ฆ, ๊ธฐ์กด ๋ฌธ์์ ๊ทธ๋๋ก ๋ง๋ถ์ฌ์ โ์ต์ข
์คํ ์ค๊ณโ๊ฐ ๋๋๋ก ๊ตฌ์ฑ)
A) MVP ๊ณ ์ ์คํ ์
๋ฐ์ดํธ (๋ฃ์ ๊ฒ vs ๋ฒ๋ฆด ๊ฒ)
A-1. ๋ฐ๋์ ํฌํจ(์
๋ฐ์ดํธ ํฌํจ๋ถ โ
)
1) ๊ฒฐ์ /๊ตฌ๋
(๊ธฐ๊ฐ๊ถ) โ โ์๋ ์น์ธโ์ ์์ ํ๊ฒ ๋ง๋๋ 3์ข
์ธํธ
- โ
์นํ
์์ ์๋ํฌ์ธํธ
-
โ
Idempotency(์ค๋ณต ์์ ๋ฐฉ์ง)
-
๊ฐ์ order_id ์ด๋ฒคํธ๊ฐ 2๋ฒ ์๋ 1๋ฒ๋ง ๋ฐ์๋๊ฒ
- ๊ตฌํ:
payments.order_id UNIQUE + status ์ฒดํฌ
-
โ
๊ธ์ก/ํ๋ ๊ฒ์ฆ(ํ์)
-
์นํ
/๋ฆฌ๋ค์ด๋ ํธ๋ก ์จ amount, plan_code๊ฐ ์๋ฒ๊ฐ ๋ง๋ ์ฃผ๋ฌธ๊ณผ ์ผ์นํ๋์ง ํ์ธ
-
โ
์ฐ์ฅ ๋ก์ง ๊ท์น ๊ณ ์ (ํ์)
-
expires_at๊ฐ ๋ฏธ๋๋ฉด: expires_at += ๊ธฐ๊ฐ
expires_at๊ฐ ๊ณผ๊ฑฐ/NULL๋ฉด: now += ๊ธฐ๊ฐ
- ์ด ๊ท์น์ ๊ณ ์ ํด์ผ โ๋ฏธ๋ฆฌ ๊ฒฐ์ = ์ฐ์ฅโ์ด ์์ฐ์ค๋ฝ๊ณ ๋ถ๋ง์ด ์์
๊ฒฐ์ ๋ โStars ์ ์ธ + ๊ตญ๋ด PG(ํ ์ค ๋ฑ) + ๊ธฐ๊ฐ๊ถ(1/3/6๊ฐ์)โ์ ๊ธฐ๋ณธ ์ฑํ
2) ์๋ฆผ ํ์ง์ ํต์ฌ 4์ข
(์คํธ๋ ์ด์ ํ๊ฒฝ ํ์)
- โ
์ค๋ณต ๋ฐฉ์ง:
source + source_id ์ ๋ํฌํค ๊ธฐ๋ฐ
- โ
Exclude ํค์๋: ํ๋๋ผ๋ ๋งค์นญ๋๋ฉด ํ๋ฝ
- โ
Include ํค์๋: OR ๋งค์นญ
- โ
ํ
์คํธ ์๋ฆผ 1ํ: ๊ณ ๊ฐ์ด โ์ด๊ฒ ๋ง๋์งโ ์ฆ์ ํ์ธ
3) ์ด์ ๊ฐ๋(๊ณ ์ฅ ๊ฐ์ง) ์ต์ ์ธํธ
- โ
24์๊ฐ ์์ง๋ 0์ด๋ฉด ๊ด๋ฆฌ์ ์๋ฆผ
- โ
์ฐ์ ์๋ฌ Nํ๋ฉด ๊ด๋ฆฌ์ ์๋ฆผ
- โ
์์ค๋ณ ์ฅ์ ์ ํด๋น ์์ค ์๋ OFF(๋๋ ์์ ์ค๋จ ํ๋๊ทธ)
A-2. ์ ๋ ๋ฒ๋ฆด ๊ฒ(์ด๊ธฐ ๊ธ์ง ์ ์ง)
- โ ์น ๋์๋ณด๋(ํค์๋ ๊ด๋ฆฌ ์น UI)
- โ AI ์์ฝ/NLP
- โ ์๋ ์ ๊ธฐ๊ฒฐ์ (๋น๋งํค) โ ๊ธฐ๊ฐ๊ถ+๋ง๋ฃ์๋ฆผ+์ฌ๊ฒฐ์ ๋ก ๋์ฒด
- โ ๋ค์ค ์ฑ๋(์นดํก/๋ฉ์ผ ๋ฑ) โ ํ
๋ ๊ทธ๋จ๋ง
B) ๋ฐ์ดํฐ ๋ชจ๋ธ(์คํค๋ง) ์
๋ฐ์ดํธ โ โJSON 1์นธโ์ผ๋ก ๋จ์ํ
๊ธฐ์กด 3ํ
์ด๋ธ ๋ชจ๋ธ์ ์ ์งํ๋, ํค์๋/ํํฐ๋ ์ปฌ๋ผ ์ฌ๋ฌ ๊ฐ๋ก ๋๋ฆฌ์ง ๋ง๊ณ filters_json 1์นธ์ ํต์งธ๋ก ์ ์ฅํฉ๋๋ค. (ํ์ฅ/๋ฒํฐ์ปฌ ์ถ๊ฐ๊ฐ ์ฌ์)
B-1. users (์ต์)
chat_id (PK)
plan_type (LIGHT/PRO ๋ฑ)
expires_at (๊ตฌ๋
๋ง๋ฃ)
-
โ
filters_json
-
include_keywords: []
- exclude_keywords: []
- region: ""
- agency: ""
- (์ถํ ํ์ฅ ๊ฐ๋ฅ)
B-2. notices (์ค๋ณต ์ฒดํฌ + ๊ธฐ๋ก)
hash_id (PK, ๋ด๋ถ ํด์)
source
source_id (์๋ณธ ๊ณ ์ ํค)
title
url
published_at
created_at
B-3. payments (๊ฒฐ์ ์์ 3์ข
ํฌํจ)
order_id (UNIQUE)
chat_id
amount
plan_code (M1/M3/M6 ๋ฑ)
status (PENDING/PAID/CANCELED)
paid_at
- โ
(์ ํ)
raw_json (์นํ
์๋ฌธ ์ ์ฅํ๋ฉด ๋ถ์ ๋์์ด ์ฌ์)
C) ์ด๋ํฐ ๊ณต์ฅํ(217๊ฐ ๋ก๋๋งต ์ ์ฉ) โ โNormalizedNoticeโ ๊ณ ์
API๋ณ ์๋ต์ด ๋ฌ๋ผ๋ ๋ด๋ถ๋ ๋ฌด์กฐ๊ฑด ์ด ์คํค๋ง๋ก ํต์ผ:
C-1. NormalizedNotice ์ต์ ํ๋(๊ณ ์ )
source
source_id
title
published_at
region (์์ผ๋ฉด null)
url
raw (์๋ณธ JSON)
C-2. ์ด๋ํฐ ์ถ๊ฐ ๊ณ ์ ์ฒดํฌ๋ฆฌ์คํธ(๋งค๋ฒ ๋์ผ)
- API ์๋ต ์ํ 1~3๊ฐ ํ๋ณด
- NormalizedNotice๋ก ๋งคํ
source_id๊ฐ โ์ง์ง ๊ณ ์ โ์ธ์ง ํ์ธ(์์ /์ฌ๊ฒ์ ํจํด ์ฒดํฌ)
- 24~48์๊ฐ ์์ ํ
์คํธ
- ์์ค ON + ํฌ๋ชฝ ์ํ ํ
ํ๋ฆฟ ๋ณต๋ถ ๋ฑ๋ก(์ด๋ฆ๋ง ๋ณ๊ฒฝ)
โ217๊ฐ = ์ด์(๋ก๋๋งต)โ์ ์ ์งํ๋, Tier1/Tier2 10~30๊ฐ๋ง ๋จผ์ ๊ฐ ํ์ค์
D) ๋ฉ์์ง ํ
ํ๋ฆฟ ํ์ค(UI/UX) ์
๋ฐ์ดํธ โ โ2์ค ์ถ๊ฐโ๋ก ์์ฑ
์ด๋ฏธ ์ ๋ฏธ๋์ด ํฌ๋งท์ด ์ข์ต๋๋ค. ์ฌ๊ธฐ์ ์ ๊ฐ ๊ถ์ฅํ 2์ค์ ์ถ๊ฐํด ๋ชจ๋ ๋ฒํฐ์ปฌ ๊ณตํต ํ์ค์ผ๋ก ๊ณ ์ ํฉ๋๋ค.
D-1. ๊ณต๊ณ ์๋ฆผ(ํ์ค 1๊ฑด)
- ๐ข
[์์ค๋ช
] ์๋ก์ด ์์
- ๐ ์ ๋ชฉ:
- ๐
๊ฒ์์ผ:
- ๐ ์ง์ญ:
- ๐ ๋งค์นญ ํค์๋: #ํค์๋โฆ
- ๐ ๊ณต๊ณ ์๋ฌธ ๋ณด๊ธฐ
- ๐ณ ๊ตฌ๋
๋ง๋ฃ๊น์ง D-xx์ผ
- โ
๐ท๏ธ ์์ค/๋ถ๋ฅ ํ๊ทธ:
๐ท๏ธ ์์ค: LH_์๋์ ํ
- โ
โ๏ธ ์ค์ /์ฐ์ฅ ์๋ด:
โ๏ธ ์ค์ /์ฐ์ฅ: /manage ๋๋ ๋งํฌ ๋ฒํผ
D-2. ๋ง๋ฃ ์๋ฆผ(3์ข
)
- D-7: โ7์ผ ๋จ์ + 1/3/6๊ฐ์ ์ฐ์ฅ ๋ฒํผโ
- D-3: โ3์ผ ๋จ์ + ์ฐ์ฅ ๋ฒํผโ
- D-0: โ๋ง๋ฃ๋จ + ๊ฒฐ์ ํ ์ฆ์ ๋ณต๊ตฌโ
D-3. ๊ฒฐ์ ์๋ฃ ์๋ฆผ
- ๊ฒฐ์ ํ์ธ ์๋ฃ
- ๊ตฌ๋
๋ง๋ฃ์ผ(YYYY-MM-DD)
- ์ค์ /ํค์๋ ํ์ธ ๋ฒํผ(/manage)
E) ๊ฒฐ์ ๋ฐฉ์ ์ต์ข
ํฉ์(Stars ์ ์ธ ๋ฒ์ ) โ โ๊ธฐ๊ฐ๊ถโ ์ค์ฌ
E-1. ๊ฒฐ์ UX(์คํธ๋ ์ด์ ํ๊ฒฝ ์ต์ )
- ํ
๋ ๊ทธ๋จ์ ์๋ด/๋ฒํผ/์ํ ํ์ธ ์ค์ฌ
- ๊ฒฐ์ ๋ ๊ตญ๋ด PG(ํ ์ค ๋ฑ) ๊ฒฐ์ ๋งํฌ๋ก ์ด๋
- ๊ฒฐ์ ์ฑ๊ณต โ ์นํ
์ผ๋ก ์๋ ์น์ธ โ ๊ตฌ๋
ํ์ฑ
E-2. ๊ธฐ๊ฐ๊ถ ์ํ(๊ถ์ฅ)
- 1๊ฐ์ / 3๊ฐ์ / 6๊ฐ์
- โ๋ฏธ๋ฆฌ ๊ฒฐ์ = ์ฐ์ฅโ์ ์ฐ์ฅ ๋ก์ง ๊ท์น์ผ๋ก ํด๊ฒฐ(์์ Cํญ๋ชฉ)
F) ๊ฐ๊ฒฉ ์ ๋ต(์ ๋ฏธ๋์ด ๋ฌธ๊ตฌ + ์ต์ข
ํฉ์)
F-1. ํฌ๋ชฝ(์
๊ตฌ): โ์ ๊ฐ ์ธํ
๋นโ๋ก ๊ฒฐ์ ์ ๋น ๋ฅด๊ฒ
- 3๋ง์ / 5๋ง์ / 10๋ง์
- ์ฑ๊ฒฉ: ๊ฐ๋ฐ๋น๊ฐ ์๋๋ผ ์ธํ
๋ํ + ์ด๊ธฐ ์์ ํ(ํํฐ 1ํ ์กฐ์ )
F-2. ๊ตฌ๋
(ํ์): 2ํ๋ + ๊ธฐ๊ฐ๊ถ
- ๋ผ์ดํธ(์: ์ 9,900์ ์์ค)
- ํ๋ก(์: ์ 19,900์ ์์ค)
-
- 3/6๊ฐ์์ โ๊ท์ฐฎ์ ํํผ ์ต์
โ์ผ๋ก ์ ํ๋ฅ ์ ๋์
G) ํ์ง ํ
์คํธ(์คํธ๋ 1์ธ ๊ฒ์ฆ) โ โ3~7์ผ์ด๋ฉด ์ถฉ๋ถโ
- ๋ฒํฐ์ปฌ 1~2๊ฐ๋ง ์ ์ (LH + ์จ๋น๋ or ์ค์๋ฒค์ฒ24)
- ํ์ค ํค์๋ ์ธํธ + ์คํธ ์ ๋ฐ ์ธํธ 2์ข
-
์ฒดํฌ 4๊ฐ:
-
ํ๋ฃจ ์๋ฆผ ์
- ์ค๋ณต/์์ ๋น์จ
- Exclude ํ์ ๋น๋
- ์ง์ญ/๊ธฐ๊ด ํ์ ๋น๋
์ด ๊ฒฐ๊ณผ๋ก ๋ฆฌ๋ฐ/ํ๋/๋ฌธ๊ตฌ๊ฐ ํ์ ๋ฉ๋๋ค.
H) ์คํ ๋ก๋๋งต(7์ผ ๋ฐฐํฌ ๊ฐ๋ฅ ์กฐ๊ฑด ๋ช
์)
์ ๋ฏธ๋์ด์ โ7์ผ ์ฑ๋ฆฐ์งโ๋ ์น ๋์๋ณด๋/์๋์ ๊ธฐ๊ฒฐ์ /๋ค์ฑ๋์ ๋ฒ๋ฆฌ๊ณ
MVP ๊ณ ์ ์คํ๋ง ํ๋ฉด ํ์ค์ ์
๋๋ค.
Day 1~2
- DB 3ํ
์ด๋ธ
- ๊ฒฐ์ ์ฃผ๋ฌธ ์์ฑ + ๊ฒฐ์ URL ๋ฐ๊ธ
- ์นํ
์์ + (์ค๋ณต๋ฐฉ์ง/๊ธ์ก๊ฒ์ฆ/์ฐ์ฅ๋ก์ง)๊น์ง ์๋ฃ
Day 3~4
- ๋ฒํฐ์ปฌ 1๊ฐ ์ด๋ํฐ ์์ฑ + NormalizedNotice ํ์
- ๋ฐ์ก/์ค๋ณต/ํํฐ ์ ์ฉ
Day 5~6
- ๋ณธ์ธ ๊ณ์ ์ผ๋ก 48์๊ฐ ์ค์์ ํ
์คํธ
- ํํฐ 1ํ ์กฐ์ ์ ์ฑ
ํ์
Day 7
- ํฌ๋ชฝ ์ํ ๋ฑ๋ก(๋ณต๋ถ ํ
ํ๋ฆฟ)
- ์ฒซ ๊ณ ๊ฐ์ฉ ์จ๋ณด๋ฉ ๋ฉ์์ง ํ์
์ต์ข
์ ๋ฆฌ(์คํธ๋์ด โ์ถ๊ฐ๋ก ๋ฌธ์์ ๋ถ์ผ ํต์ฌ ํ ์ฅโ)
- ๊ตญ๋ด PG + ๊ธฐ๊ฐ๊ถ + ์นํ
์๋์น์ธ์ ํ์ค์ ์ด๋ฉฐ, Stars ๋ฆฌ์คํฌ๋ฅผ ์ ๊ฑฐํ๋ค.
- MVP ํ์๋ โ๊ฒฐ์ ์์ 3์ข
(์ค๋ณต๋ฐฉ์ง/๊ธ์ก๊ฒ์ฆ/์ฐ์ฅ๊ท์น)โ๊น์ง ํฌํจํด์ผ ํ๋ค.
- ํค์๋๋ โ2ํธ๋ + ๋ฎ์ ๋ฆฌ๋ฐโ์ผ๋ก ๊ณ ์ ํด CS๋ฅผ ์ค์ธ๋ค.
- ์ด๋ํฐ๋ NormalizedNotice๋ก ๊ณต์ฅํํด์ 10~30๊ฐ๋ง ๋จผ์ ํ์ฅํ๋ค.
- ๋ฉ์์ง ํ
ํ๋ฆฟ์ ํ์ค 1์ข
(์์ค ํ๊ทธ + ์ค์ /์ฐ์ฅ ๋งํฌ ํฌํจ)์ผ๋ก ๋ชจ๋ ๋ฒํฐ์ปฌ์ ํต์ผํ๋ค.
- 3~7์ผ ์ค์์ ํ
์คํธ๋ก โ๊ฐ๊ฒฉ/๋ฆฌ๋ฐ/ํํฐ ์ ์ฑ
โ์ ํ์ ํ๋ค.
์ํ์๋ฉด, ๋ค์ ๋จ๊ณ๋ก โ/manage(์ค์ ํ์ธ) + /renew(์ฐ์ฅ) + /stop(ํด์ง)โ ๊ฐ์ ๋ด ๋ช
๋ น์ด ์ต์ ์ธํธ์, ๊ทธ์ ๋ง๋ ๋ฒํผ UI ํ๋ฆ(์ ํํ ํ
์คํธ)๊น์ง ๋ฐ๋ก ๊ณ ์ ํด๋๋ฆฌ๊ฒ ์ต๋๋ค.