๋ฐ๋ ๋์ ์ธ๋๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ๋ ๊ฒฝ์ ๊ฐ ์ผ์์ ๊น์์ด ์๋ฆฌ ์ก๊ณ ์๋ค. ๊ตฌ๋ ๊ฒฝ์ (subscription economy)๋ ์๋น์๊ฐ ์ ๊ธฐ์ ์ผ๋ก ๋น์ฉ์ ์ง๊ธํ์ฌ ์ํ๋ ์ํ์ ๋ฐฐ์ก๋ฐ๊ฑฐ๋, ์ผ์ ๊ธฐ๊ฐ ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋ปํ๋ค.
ํ์ฌ ๊ตฌ๋ ๊ฒฝ์ ๋ 2020๋ 594์กฐ ์ ์ ๋ง์ ๋ํ๋ด๋ฉฐ ์๋น์ ์๋ก์ด ํจ๋ฌ๋ค์์ผ๋ก ์๋ฆฌ ์ก์๋ค. ํ์ง๋ง ์๋น์ค๋ฅผ ๊ตฌ๋งคํ๋ ๊ธฐ์กด์ ๋ฐฉ์์ด ์ต์ํ ์๋น์๋ค์ ์ฌ์ ํ ์ ํ์ ์ธ ์๋น์ค๋ง์ ์ด์ฉํ๊ฑฐ๋, ๋ค์ํ ๊ฒฐ์ฌ์ฒด๊ณ๋ก ํฉ์ด์ ธ ๊ตฌ๋ ์ค์ธ ์๋น์ค๋ก ์ธํด ๊ด๋ฆฌ์ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ ํ์ ์ ํ ๊ณ์ด์ฌ๋ค์ API๋ค์(๋ชฉ๋ก ์๋ ๊ธฐ์ ) ์ฌ์ฉํ์ฌ์ ํตํฉ์ ์ผ๋ก ๊ตฌ๋ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ํ๋ซํผ์ ๋ง๋ค๊ณ ์ ํ๋ค.\
ํด์ปคํค ํ๊ธฐ: ์ค์์ด ๊ธฐ์ ๋ธ๋ก๊ทธ
- ์ ํ๊ทธ๋ฃน API๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ข, ์นด๋ ๋ฑ๋กํ ๊ตฌ๋ ๊ฐํธํ.
- ์ ํ๊ทธ๋ฃน API๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ์ ๊ตฌ๋ ์๋น์ค ์๋ ์ถ์ถ.
- ์ฑ๋ด๊ณผ ๋ํ๋ฅผ ํตํ ์ฌ์ฉ์์ ์ทจํฅ ๋ถ์.
- ์ ์ ์ ๊ตฌ๋ ์๋น์ค ์ฌ์ฉํจํด ๋ถ์.
- ์คํฌ๋ฆฐ ํ์ ์กฐํ๋ฅผ ํตํด ์ด์ ๋ฌ๊ณผ์ ์ฌ์ฉ๋ฅ ์ ๋น๊ตํ ํต๊ณ ์ ๊ณต.
Module | Router |
---|---|
"dependencies": {
"dialogflow": "^0.14.1",
"dialogflow-fulfillment": "^0.6.1",
"actions-on-google": "^2.12.0"
}
NLP Model๋ก Google Dialogflow๋ฅผ ์ฌ์ฉํ๊ณ , Google Client Library๋ฅผ ์ฌ์ฉํด์ SOLscript์๋ฒ๋ฅผ proxy server๋ก ์ด์ฉ ๋ฐ, webhook์ ์ด์ฉํด fulfillment์ฒ๋ฆฌ๋ฅผ ํ์๋ค.
"dependencies": {
"aws-sdk": "^2.575.0",
"multer": "^1.4.2",
"multer-s3": "^2.9.0",
"mongoose": "^5.7.12"
}
Database๋ก MongoDB์ AWS์ S3๋ฅผ ์ฌ์ฉํ๋ค.
"dependencies": {
"request": "^2.88.0",
"request-promise": "^4.2.5"
}
Shinhan Bank, Shinhan Card API๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด request-promise(request dependency์ ์์กด์ )๋ฅผ ์ฌ์ฉํ๋ค.
Dialogflow
SOLscript๋ ์ฑ๋ด soly์์ ๋ํ๋ฅผ ํตํด ์ ์ ์ ์ทจํฅ์ ๋ถ์ํ ํ ์ ์ ์๊ฒ ๋ง์ถคํ ๊ตฌ๋ ์๋น์ค๋ฅผ ์ถ์ฒํด์ค๋ค. ์ทจํฅ ๋ถ์์ Price, Category, Feel ์ด 3๊ฐ์ง์ ๊ธฐ์ค์ผ๋ก ๋ถ์ํ๋ฉฐ, ์ ์ ๊ฐ ์ ํํ๋์ง ์์ ๋ต๋ณ์ ํ๋๋ผ๋ ์ฑ๋ด์ด ํด๋น ๋ฐํ์ Entity๋ฅผ ์ถ์ถํ์ฌ ์ค๋น๋ ํค์๋์ ๋งตํ์ํจ๋ค. ๋ํ ์ฌ์ฉ์์ ๊ตฌ๋ ์๋น์ค ํํฉ์ด๋, ์์ฃผ ์ฌ์ฉํ๋ ๊ตฌ๋ ์๋น์ค ํํฉ ๋ฑ์ ๋ํ ์ง๋ฌธ์ Database์ ๊ทผ ๋ฐ ๋ด๋ถ ๋ก์ง์ ํตํด ๋ต๋ณํ ์ ์๋ค. ์ฐธ๊ณ ์๋ฃ: Dialogflow Reference
์ ํ์ํ ๋ฐ ์นด๋ API๋ฅผ ์ฌ์ฉํด์ ์นด๋๋ฅผ ๋ฑ๋กํด์ ๊ฐํธํ๊ฒ ๊ตฌ๋ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ์๊ณ , ์ ์ ์ ์นด๋ ์ฌ์ฉ๋ด์ญ์ ์กฐํ ๋ฐ ํ์ฑํ์ฌ ์ฌ์ฉ์์ ๊ตฌ๋ ์๋น์ค ์ฌ์ฉํจํด์ ๋ถ์ํ ํ ์ ๊ณตํ์๋ค.
Agile
1. ํ์๊ณผ์ ๊ธฐ์ ์คํ์ ๋ง์ถ๋ค.
ํด์ปคํค์ด ์์๋๊ธฐ์ ํ์๋ค๊ณผ์ ๊ธฐ์ ์คํ์ ๋ง์ถ๊ณ , foldering์ด๋ code convention๊ณผ ๊ฐ์ ๋ถ๋ถ๋ค์ ๋ฏธ๋ฆฌ ์ ๊ฒํ์๋ค. ๊ทธ๋ก ์ธํด ํด์ปคํค ๋น์ผ git merge๋ก ์ธํ comflict๋ฅผ ์ต์ํํ ์ ์์๊ณ , ์
๋ฌด ๋ถ๋ฐฐ์ ์์ด์ ์ ๋์ ์ด์๋ค.
2. ๋ด๋ถ์ ํ๋ ฅ
๋น์ผ์ ๊ณต๊ฐ๋๋ api๋ก ์ธํด ์ค๊ณ์ ๋ํ ๋ถํ์ค์ฑ์ด ์์๋ค. ๋๋ฌธ์ ๋ชจ๋ ๋ถ๋ถ์ ์ค๊ณํ๊ธฐ๋ณด๋จ ํต์ฌ ๊ธฐ๋ฅ์ ์ฐ์ ์์๋ฅผ ๋๊ณ ํด์ปคํค ๋น์ผ์ ์ ์์ผํ๊ฒ ์ค๊ณ ๋ฐ ๊ฐ๋ฐ์ ์ด์ด๋๊ฐ๋ค. ์ด๋ก์ธํด ์์ํ์ง ๋ชปํ๋ ์๋ฌ๋ฅผ ๋ง๋๊ฒ ๋์์ ๋ ์ ๋์ ์ผ๋ก ์ค๊ณ๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ์ตํ๋ฉฐ ๊ฐ๋ฐํ ์ ์์๋ค.
3. ํผ๋๋ฐฑ
5 ~ 6์๊ฐ์ ํ๋ฒ์ฉ ์ฃผ๊ธฐ์ ์ผ๋ก ํผ๋๋ฐฑ์ ์ฃผ๊ณ ๋ฐ๋ ์๊ฐ์ ๊ฐ์ก๋ค. ํผ๋๋ฐฑ์ ํตํด ๋์์ธ๊ณผ์ ์ ์ถฉ์, ํด๋ผ์ด์ธํธ์์ ํต์ ์ ๊ดํ ๋ถ๋ถ์ ์ง์์ ์ผ๋ก ์ฒดํฌํ์๋ค. ์ง์์ ์ธ ํผ๋๋ฐฑ์ ํตํด ๊ฐ ํํธ๊ฐ์ ์งํ์ํฉ์ ํ์ธํ ์ ์์๊ณ , ์ด๋ฌํ ์๋์ง ํจ๊ณผ๋ ํ๋ก์ ํธ์ ๊ธฐ์ฌ๋์๋ค.
MainActivity | MyPageActivity | CardInfoActivity |
---|---|---|
CardActivity | CardRegisterActivity | ChatActivity |
---|---|---|
SubscriptCalenderFragment | SubscriptCalenderFragment | SubscriptManageFragment |
---|---|---|
AnalysisActivity | CategoryFragment | DetailedActivity | CategoryContentFragment |
---|---|---|---|