2023 Winter Techeer SW Bootcamp(2023.12.26 ~ 2024.02.03)์์ 6์ฃผ๊ฐ ์งํํ ํ๋ก์ ํธ 'TAIROT - AI ํ๋ก ์ฌ๋ฆฌ ์๋ด ์๋น์ค'๋ฅผ ์๊ฐํ๋ ๊ธ์ ๋๋ค.
TAIROT์ AI์ TAROT์ ๊ฒฐํฉํ ํฉ์ฑ์ด๋ก, ChatGPT๋ฅผ ํ์ฉํด ์ฌ์ฉ์ ๊ณ ๋ฏผ ๊ธฐ๋ฐ์ ํ๋ก ์นด๋ ํด์์ ์ ๊ณตํ๊ณ ๊ธ์ ์ ์ธ ์กฐ์ธ์ ์ ์ํ๋ AI ํ๋ก ์ฌ๋ฆฌ ์๋ด ์๋น์ค์ ๋๋ค.
ํ๋ก๋ ๋จผ ๊ณผ๊ฑฐ๋ถํฐ ํ์ฌ๊น์ง ๊พธ์คํ ์ธ๊ธฐ๊ฐ ๋ง์ ์ ์ฑ์ ์ค ํ๋๋ก, ๋ฏธ๋์ ๋ํ ๋ถํ์ค์ฑ์ด๋ ๋ค์ํ ๊ณ ๋ฏผ์ผ๋ก๋ถํฐ ์ข์ ํด๋ต์ ์ฐพ๊ธฐ ์ํ๋ ์ฌ๋๋ค์๊ฒ ์ฌ์ ํ ๋ง์ ์์๋ฅผ ๋ณด์ด๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ๋ก ์๋ด์ ๋ฐ๊ธฐ ์ํด์๋ ์ง์ ๊ฐ๊ฒ์ ๋ฐฉ๋ฌธํด์ผ ํ๋ ๋ค์ ์๊ณ ๋ก์ด ๋ฐฉ๋ฒ์ด๋, ํ๋ก ์ ํ๋ธ ์์์ ํตํด ์ ํ์ ์ธ ์ํฉ์์ ์งํํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ฒ๊ฑฐ๋ก์์ ๊ทน๋ณตํ์ฌ ์ฌ์ฉ์์ ์ ๊ทผ์ฑ๊ณผ ํธ๋ฆฌ์ฑ์ ๋์ด๊ณ , AI ํ๋ก ๋ง์คํฐ์ ๋น๋๋ฉด์ผ๋ก ์๋ด์ ์งํํจ์ผ๋ก์จ ์ฌ์ฉ์๊ฐ ๋ถ๋ด๊ฐ์ ๋๊ณ ๋ณด๋ค ์์งํ๊ฒ ๊ณ ๋ฏผ์ ๋๋ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉฐ ์ด๋ฒ TAIROT ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๊ณ ์งํํ๊ฒ ๋์์ต๋๋ค.
๋๋ฉ, ๋ก๊ทธ์ธ, ํ์๊ฐ์
์๋ด ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ ํ์ธํ ์ ์๋ ๋ง์ดํ์ด์ง ๊ธฐ๋ฅ์ ์ํด ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
์ด์ธ ์ ํ
TAIROT์ '์ค๋์ ์ด์ธ, ์ฐ์ ์ด, ์ฐ์ ์ด, ์ฌ๋ฌผ์ด, ์๋ง์ด' ์ด 5๊ฐ์ ์ด์ธ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๊ฐ์ ์ด์ธ ๋ณ๋ก ์๋ด์ ์งํํด ์ค ํ๋ก ๋ง์คํฐ๊ฐ ์กด์ฌํฉ๋๋ค.
ํ๋ก ๊ฐ์ด๋๋ผ์ธ ์ ๊ณต, ๊ณ ๋ฏผ ์์ฑ
์ด์ธ๋ฅผ ์ ํํ๊ณ ๋๋ฉด ํ๋ก ๋ง์คํฐ๊ฐ 'ํ๋ก ์๋ด ์ฃผ์์ฌํญ ๋ฐ ์งํ ๋ฐฉ๋ฒ'์ ์ค๋ช
ํด์ค๋๋ค. ํ๋ก ๋ง์คํฐ์ ์ค๋ช
์ ์ ์ฝ๊ณ ๋ ํ ๊ณ ๋ฏผ์ ์์ฑํฉ๋๋ค.
์นด๋ ์ ํ, ํด์ ๊ฒฐ๊ณผ
์ด์ธ๋ณ๋ก ์ ํ ๊ฐ๋ฅํ ์นด๋์ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ์ค์ ํ์ต๋๋ค. ์ค๋์ ์ด์ธ๋ 1์ฅ, ์ฐ์ ์ด๊ณผ ์ฐ์ ์ด์ 5์ฅ, ์ฌ๋ฌผ์ด๊ณผ ์๋ง์ด์ 3์ฅ์ ์นด๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์นด๋๋ฅผ ๋ชจ๋ ์ ํํ๊ณ ๋๋ฉด ์๋์ผ๋ก ๋ค์ ํ์ด์ง๋ก ๋์ด๊ฐ๊ณ ์ฌ์ฉ์ ๊ณ ๋ฏผ์ ๊ธฐ๋ฐํ ์นด๋๋ณ ํด์ ๋ฐ ์ข ํฉ ํด์์ ์ ๊ณตํฉ๋๋ค.
ChatGPT๋ฅผ ์ฌ์ฉํ์ฌ ํด์์ ์ ๊ณตํ๋ ๊ณผ์ ์์, ์ฌ์ฉ์์๊ฒ ํ๋ก ๋ง์คํฐ์ ์ค์๊ฐ์ผ๋ก ๋ํํ๋ ๋ฏํ ๊ฒฝํ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ๋์ฑ ๋ชฐ์ ํ ์ ์๋ ํ๊ฒฝ์ ์กฐ์ฑํ๊ณ ์ถ์์ต๋๋ค.
๋ฐ๋ผ์ OpenAI์์ ์ ๊ณตํ๋ ์คํธ๋ฆฌ๋ฐ ์ต์ ๊ณผ ์์ผ ํต์ ์ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ํ ๊ธ์์ฉ ํ ์คํธ๋ฅผ ์ถ๋ ฅํ๊ณ , TTS(Text To Speech)๋ฅผ ๋ฒํผ์ ํ ๋ฌธ์ฅ์ฉ ์์ ์ ์ฅ ํ ์์ผ ํต์ ์ผ๋ก ํ๋ก ํธ๋จ์ ์ ๋ฌํ์ฌ ํ ์คํธ๊ฐ ์ถ๋ ฅ๋๋ ๋์์ ์์ฑ๋ ์ถ๋ ฅ๋๋๋ก ๊ตฌํํ์ต๋๋ค.
๊ฒฐ๊ณผ ๊ณต์
๋ด๊ฐ ๋ฝ์ ์นด๋์ ์ข
ํฉ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๋๋ง์ ๊ฒฐ๊ณผ ์นด๋๊ฐ ์์ฑ๋๊ณ ๋ง์ดํ์ด์ง์ ์๋์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. '๋งํฌ ๊ณต์ ํ๊ธฐ' ๋ฒํผ์ ํตํด ๊ฒฐ๊ณผ ์์ธ ํ์ด์ง ๋งํฌ๋ฅผ ์นด์นด์คํก์ผ๋ก ๊ณต์ ํ ์ ์์ต๋๋ค.
๋ง์ดํ์ด์ง ๋ฆฌ์คํธ, ๊ฒฐ๊ณผ ์กฐํ
๋ง์ดํ์ด์ง ๋ฆฌ์คํธ์์ ๋์ ํ๋ก ์๋ด ๋ด์ญ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ชฉ๋ก์ ์นด๋ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ๊ณ ๊ฒฐ๊ณผ ์์ธ ํ์ด์ง๋ฅผ ํตํด ๋น์ ๋์ ๊ณ ๋ฏผ, ๋ด๊ฐ ๋ฝ์ ์นด๋, ์นด๋๋ณ ํด์, ์ข
ํฉ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
DEMO (Sound ON!)
Infra๋ AWS ์๋น์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ๊ณ , ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค์ธ EC2๋ฅผ ํตํด ํธ์คํ ์ ์งํํ์ต๋๋ค.
CI/CD๋ GitHub ์นํ ๊ณผ Jenkins๋ฅผ ํ์ฉํด ๊ตฌ์ฑํ์ต๋๋ค. Jenkins๋ฅผ ํตํ ์ง์์ ์ธ ๋ฐฐํฌ์ Docker Compose๋ฅผ ํ์ฉํ ์ฌ๋ฌ ์ปจํ ์ด๋์ ํจ์จ์ ๊ด๋ฆฌ๋ฅผ ํตํด ์๋น์ค ๋ฐฐํฌ์ ๋คํธ์ํฌ ์ค์ ์ ๊ฐ์ํ๋ ๋ฌผ๋ก ๋ก์ปฌ๊ณผ ํ๋ก๋์ ํ๊ฒฝ์ ์ผ๊ด์ฑ์ ์ ์งํ์ต๋๋ค.
Frontend๋ HMR(Hot Module Replacement)์ ์ด์ฉํ์ฌ ์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ Vite์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ React๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
Backend๋ ๊ฐ๋ฐ์ ์์ ๋์ ์ ๊ทผ์ฑ์ด ๋์ Node.js๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฝ์ ํ๋ก ์นด๋์ ๋ํ ํด์์ GPT์ ์์ฒญํ๊ณ , ๊ทธ์ ๋ํ ๋ต๋ณ์ ์ค์๊ฐ์ผ๋ก ๋ฐ๊ณ ์ ๋ฌํ๋ ๊ณผ์ ์์ Socket.IO๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
Web Server๋ NGINX๋ฅผ ์ฌ์ฉํ์ต๋๋ค. Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ ์๋ฒ๋ก ๊ธฐ๋ฅํ๋ฉฐ ์น ํธ๋ํฝ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , SSL/TLS ์ํธํ๋ฅผ ํตํด ๋ณด์์ ๊ฐํํ์ต๋๋ค.
Metric Monitoring์ Grafana, Prometheus, ๊ทธ๋ฆฌ๊ณ cAdvisor๋ฅผ ์กฐํฉํ์ฌ ์์คํ ์ ๊ตฌ์ถํ์ต๋๋ค. ์๋ฒ์ ์ด์ ์งํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ๊ณ Slack๊ณผ ์ฐ๋ํ ์ค์๊ฐ ์๋ฆผ์ ํตํด ์๋ฌ ๋์ ์ฒ๋ฆฌ ์๋๋ฅผ ํฌ๊ฒ ํฅ์์์ผฐ์ต๋๋ค.
Log Monitoring์ ELK Stack(ElasticSearch, Logstash, Kibana + Filebeat)์ ์ฌ์ฉํ์ต๋๋ค. ๋ก๊ทธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์์ง, ์ฒ๋ฆฌ ๋ฐ ๋ถ์ํ์ฌ ๋ฌธ์ ๋ฐ์ ์ ์ ์ํ ์ง๋จ ๋ฐ ๊ทผ๋ณธ ์์ธ ๋ถ์์ ๊ฐ๋ฅํ๊ฒ ํ์ต๋๋ค. ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง๊ณผ ๋๋ถ์ด ์์คํ
์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ๊ฐํํ๊ณ , ์ ๋ฐ์ ์ธ ์์คํ
๊ด๋ฆฌ์ ์ด์์ ํจ์จ์ฑ์ ๋์์ต๋๋ค.
2023 ํ ์ปค ๋๊ณ ์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ ์ํํธ์จ์ด ๋ถํธ์บ ํ(2023.12.26 - 2024.2.3)์ ์ฐธ์ฌํด 6์ฃผ ๋์ ํ์๋ค๊ณผ ํ๋ฃจ์ ์ฝ 5์๊ฐ์ฉ ์๋ฉดํ๋ฉฐ End-to-end ํ๋ก์ ํธ ๊ฐ๋ฐ ๊ณผ์ ์ ๋ชฐ์ ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ต์ข ๋ฐํํ์์ ์ ์ฒด 14ํ ์ค ๊ณต๋ 2์๋ผ๋ ์ ์ข ์ ๋ฏธ๋ฅผ ๊ฑฐ๋ ์ ์์์ต๋๋ค.
๋ถํธ์บ ํ์ ์ง์ํ๊ธฐ ์ , ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ทจ์ ์ค๋น๋ฅผ ํ๋ฉฐ ์ค๋ฌด ๊ฒฝํ์ด ๋งค์ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์ ๊น ๊ฐํผ๋ฅผ ์ก์ง ๋ชปํ๋ ์๊ธฐ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐจ์ ์ด ๋ถํธ์บ ํ๋ฅผ ์๊ฒ ๋์๊ณ ๊ฐ์ ํจ๊ณผ ์ ์คํจ์ด ์ปธ๋ ๋งํผ ์ต์ ์ ๋คํด ๊ณผ์ ์ ๋ น์๋ค ์ ์์์ต๋๋ค.
๊ทธ๋์ ๋จ์ํ CRUD API ๊ตฌํ๋ง ๊ฒฝํํด๋ดค๋ค๋ฉด, ์ด๋ฒ ๋ถํธ์บ ํ๋ฅผ ํตํด์๋ ์ธํ๋ผ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ถํ๊ณ , ์๋ ๋ฐฐํฌ ๊ณผ์ ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋ฉฐ, ์น ์๋ฒ์ ๋ณด์์ ์ด๋ป๊ฒ ์ ์ฉํ๋์ง ๋ฑ์ ์ง, ๊ฐ์ ์ ์ผ๋ก ๋ณด๊ณ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ ์ฉํ๋ ๊ณผ์ ์์ ์๋กญ๊ฒ ๋ฐฐ์ฐ๊ณ ์๊ฒ ๋ ๋ด์ฉ์ ํ์๋ค๊ณผ ๊ณต์ ํ๋ ์๊ฐ์ ๊ฐ์ง๋ฉฐ, ๊ฒ์ํด์ ์ฐพ์ ๋ด์ฉ์ ์ฝ๋์ ๋ฐ๋ก ์ ์ฉํ๋ ๊ฒ์ ๊ธ๊ธํ๋ ์ ๋ฅผ ๋๊ตฐ๊ฐ์๊ฒ ์ค๋ช ํ๊ธฐ ์ํด ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๊ณ ๋ ๋ง์ ์๋ฃ๋ฅผ ์ฐพ์๋ณธ ๋ค ๋ฌธ์ํํ์ฌ ๋งํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๊ฒ ํด์ฃผ์์ต๋๋ค.
ํ ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๊ณ ๊ฐ๋ฐํ์ฌ ๋ฐฐํฌํ๋ ์ ๊ณผ์ ์ ๊ฒฝํํ๋ฉฐ ์ ์ฒด์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์๊ฒ ๋์๊ณ ๊ทธ๋์ ๋ง์ฐํ ๋ถ์กฑํ๋ค๊ณ ์๊ฐํด์๋ ์ ๋ค์ ๋ช ํํ ์ง์ํ๊ฒ ๋์์ต๋๋ค. ์ด๋ฅผํ ๋ฉด ์๋ฒ ๊ด๋ จ ๊ฐ๋ ๋ฐ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํค๋ง ์ค๊ณ ๋ฐฉ๋ฒ ๋ฑ์ ๋ํ ์ง์๊ณผ ๊ฒฝํ์ด ๋ง์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ด๋ฌํ ๊นจ๋ฌ์์ ์ ๋ก ํ์ฌ๊ธ ์๋ก์ด ์ฑ์ฅ ๋๋ ฅ์ ์ป๊ฒ ํ๊ณ ์ ๊ฐ ๊ฑท๊ณ ์ ํ๋ ๊ธธ์ ํ์ ์ ๊ฐ๊ฒ ํด์ฃผ์์ต๋๋ค.
Team F! 6์ฃผ ๋์ ๋๋ฌด ๊ณ ์ ๋ง์๊ณ ์ข์ ์ฌ๋๋ค๊ณผ ์ฌ๋ฐ๊ณ ์น์ดํ๊ฒ ํ๋ก์ ํธ ํ ์ ์์ด์ ๋๋ฌด ๋ป๊น๊ณ ๊ฐ์ฌํ์ต๋๋ค!! ์ฐ๋ฆฌ ์ข๋ง ๋ ํ๋ณตํ๊ณ ,,ใ
ใ
๋ค์ ๋ ํ์ฐจ๊ฒ ๋ฌ๋ ค๋ณด์์~!~! ํํ๐
Website ย https://tairot.online (์๋น์ค ์ด์ ์ค์ง)
GitHub ย https://github.com/2023-winter-techeer-sw-bootcamp-TeamF
Medium ย https://medium.com/@jswing5267/development-of-tarot-psychological-counseling-site-using-gpt
์ ์ ๋ง ์ํ์ จ๋ค์,, 2๋ฑ ์ถํ๋๋ ค์๐ฏ