์๊ฐ | ChatGPT API ๊ธฐ๋ฐ ์ฌ์ฉ์ ๋ง์ถคํ ๋ฉ๋ด ๋ฐ ๋ ์ํผ ์ถ์ฒ ์๋น์ค |
์ฃผ์ | chatpot.site |
์งํ๊ธฐ๊ฐ | 2023.05 ~ 2023.06 |
๋ฆฌํฉํ ๋ง | 2024.07 ~ (์งํ ์ค) |
ํ์ | Frontend ํฉ์ฌ์ - ํ๋ก์ ํธ ํ๊ณ |
Backend ์ ํ๋ |
- ๋ฉ์ธํ์ด์ง
์๋น์ค ์์ Navigator, typeit์ ํ์ฉํ ๋ฉ๋ด ๋๋ค ์ถ๋ ฅ๋ชจ๋ฐ์ผ ์ค์น ๊ฐ์ด๋์ ์๋น์ค ์ ๋ณด
- ์์ฌ๋ฃ ์ ํ
- ์ต์ ์ ํ
- ์ถ์ฒ ๊ฒฐ๊ณผ
์ถ์ฒ ๋ฉ๋ด์ ๋ํ ๊ฐ๋จํ ์๊ฐ์ ์์ฌ๋ฃ, ์กฐ๋ฆฌ๋ฒ๋ ์ํผ ๋ค์ด๋ก๋, ๋์ผํ ์ต์ ์ ๋ค๋ฅธ ๋ฉ๋ด ์ถ์ฒ
2023/06/26 (์ฌ์ ,FE)
- ๋ชจ๋ฐ์ผ ๊ฐ์ด๋
- ์๋น์ค ์ ๋ณด (ํฌ๋ ๋ง)
- ๊ทธ ์ธ ํฐํธ ์ฌ์ด์ฆ ์กฐ์ ๋ฑ
- ์์์ ์ผ๋ก Display:none ์ง์ ํด์ค ์์๋ค ํ์ธ ํ, ๋ณต๊ตฌ
- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ต์ ์ ํ๋์ง ์๋ ๋ฌธ์
- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ ํํ ์์ฌ๋ฃ ์ ๊ฑฐ๋์ง ์๋ ๋ฌธ์
- ์ฝ๋ ์ ๋ฆฌ ๋ฐ ๋ฆฌํฉํฐ๋ง
2023/06/19 (ํ๋,BE)
- AWS Route53, ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ด์ฉํ https ๋ฐฐํฌ
- ๋๋ฉ์ธ ๊ตฌ๋งค ํ ์ ์ฉ
- ๋ฒ๊ทธ ํ์ธ ๋ฐ ์ค๋ฅ ์์
2023/06/18 (ํ๋,BE)
- AWS EC2, pm2๋ฅผ ์ด์ฉํ ์์ ๋ฒ์ ๋ฐฐํฌ
- ํ์ฌ ๊ตฌํ๋ ๋ชจ๋ ๊ธฐ๋ฅ ํ ์คํธ
- ๋ฒ๊ทธ ํ์ธ ๋ฐ ์ค๋ฅ ์์
- ๋๋ฉ์ธ ๊ตฌ๋งค ํ http๋ฅผ https๋ก ๋ฐฐํฌ ์ ์ฉ
2023/06/16 (์ฌ์ ,FE)
- React-transition-group ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
- ํ์ด์ง ๊ฐ ์ ํ ์ ๋๋ฉ์ด์
- ํ๋น์ฝ ๋ฐ ํ์ด์ง๋ช ์ง์
- ๋ ์ํผ ์ ์ฅ ๊ธฐ๋ฅ
2023/06/15 (์ฌ์ ,FE)
- ๋ ์ํผ ๊ฒฐ๊ณผ ํ์ด์ง Alert ๋ฐ ์ฌ์ถ์ฒ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ฉ์ธ ํ์ด์ง ์ ๋๋ฉ์ด์ (TypeIt)
- ์นํฐํธ ์ ์ฉ
- ํ์ด์ง ์ ํ ์ ๋๋ฉ์ด์
- ๋ ์ํผ ์ ์ฅ ๊ธฐ๋ฅ
2023/06/14 (์ฌ์ ,FE)
- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ต์ ์ ํ์ Hover ์ ๊ฑฐ
- ํผ ์ ์ก ํ ์ ๋ ฅ๋ ์ด๊ธฐํ
- ์ฌ๋ ๋๋ง ์ด์ ํด๊ฒฐ
- ์์ธ์ ์ข ๋ ์์๋ด์ผ ํ ๋ฏ ํจ
- ์์ฌ๋ฃ ์ ํ ๋จ๊ณ์์์ ์ ์ ๋ฒํผ ์ญ์
- ์ต์ ์ ํํ์ง ์์์ ๊ฒฝ์ฐ Null๊ฐ ๋์ '์๋ฌด' ๋ ์ํผ๋ฅผ ์ถ์ฒํด๋ฌ๋ผ๊ณ ์์ฒญ
- ์ต์ ํ์ด์ง ๋ฆฌ์คํธ ๋ณ๊ฒฝ
- ๋ ์ํผ ๊ฒฐ๊ณผ ํ๋ฉด ๋ฒํผ ์ฌ๊ตฌ์ฑ
- Alert1. ์ฌ๋ฐ๋ฅด์ง ์์ ๋ต๋ณ์ ๋ฐ์์์ ๋ (์ค๋ฆฌ ๋ฌธ์ ๋ฑ) ํด๋น ๋ฉ์์ง์ ์ ๋ฌธ(State.receiveData.messages[this.length-1].context)์ ์ถ๋ ฅ (->์ฌ์ ํํ๋ฉด์ผ๋ก)
- Alert2. ํ์ด์ง ์๋ก๊ณ ์นจ ๋ฑ์ผ๋ก ๋ ์ํผ ๊ด๋ จ ์ํ ๊ฐ์ด ์ด๊ธฐํ๋ ๊ฒฝ์ฐ (->์ฌ์ ํํ๋ฉด์ผ๋ก)
- ํ์ด์ง ์ ํ ์ ๋๋ฉ์ด์
- ๋ฉ์ธ ํ์ด์ง
- ๋ ์ํผ ๊ฒฐ๊ณผ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ
2023/06/14 (ํ๋,BE)
- ๋ค๋ฅธ ๋ ์ํผ ์ถ์ฒ ๊ธฐ๋ฅ ๊ตฌํ
- ์์ฌ๋ฃ, ์ต์ , ์ถ์ฒ๋ฐ์ ๋ ์ํผ๋ฅผ ๊ธฐ์ตํ๊ณ ๋ค๋ฅธ ๋ ์ํผ๋ฅผ ์ถ์ฒ๋ฐ๋๋ก ๊ตฌํ
- ๋ ์ํผ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ฌ ์ถ์ฒ๋ฐ์ ๋ ์ํผ html ํ์ด์ง๋ฅผ ๊ทธ๋๋ก ์บก์ฒํด์ ์ ์ฅํ ์ ์๋ ๊ธฐ๋ฅ
2023/06/13 ํ์๋ก
- ๋ ์ํผ ๊ฒฐ๊ณผ ํ์ด์ง
- ๊ณต์ ๋ฒํผ > ์ฒ์์ผ๋ก
- ์ฑ๋ด > ๋ฐฐ๋
- ์ต์
ํ์ด์ง
- ํ์ / ์ค์ / ์ผ์ / ์์ / ๋์ ํธ
- ๊ฐํธ์ / ๋น์ฉ์ด ์ ๋ ดํ / ๋งค์ฝคํ / ๋น์ค๋ ๋ ๋จน๊ธฐ ์ข์
- ๋น๊ฑด์ / ๋ฝํ ํ๋ฆฌ / ํํฐ์์ / ์ค์ด๋นผ์ค
- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ต์ ์ ํ ์ Hover ์ ๊ฑฐ
- ๋ชจ๋ฐ์ผ ์ ์ ์ PWA ์๋ฆผ ์ ๋จ๋ ๋ฌธ์
- ๋ ๋๋ง์ด์ (HTML ๋ฐ์ธ๋ฉ ํ, ํน์ ์์ ์๋ง ๋ ๋๋งํ ์ง)
- ํน์ ์ํฉ์์ Parsing์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์๋ ๋ฌธ์
- ์์ฌ๋ฃ ์ง์ ์์ฑ + ์ต์ ๋ฏธ์ ํ ์ ๋ฐ์
- ํ ์คํธ ์ผ์ด์ค ๋ฐ๊ฒฌ๋๋๋๋ก ์ถ๊ฐ ์์
- ์์ ์ต์
๊น์ง ์ ๋ถ ์
๋ ฅํด์ผ ์ ์ ๊ฐ๋ฅํ๊ฒ ํ ์ง
- ์ ํ์๋ฃ ์ ๊น์ง ๋ฒํผ ๋นํ์ฑํ? (๋ถํฌ๋ช ๋ ์กฐ์ ๋ฑ)
- ๋ฉ์ธ ํ์ด์ง (๋น๋์ค, TypeIt, ์์๋ฒํผ)
- 3D ์ธํฐ๋์ ์ผ๋ก ๊ตฌํํ๋ ๊ฒ๋ ๊ตฌ์ ์ค
- ๋ ์ํผ ๊ฒฐ๊ณผ ํ์ด์ง (๋ฒํผ ๋ณ๊ฒฝ, ํ์ด์ง ๋ฆฌ๋์์ธ)
- ์ต์ ํ์ด์ง (๋ฆฌ์คํธ ๋ณ๊ฒฝ)
- ํ์ด์ง ์ ํ ์ ๋๋ฉ์ด์
- ํฐํธ ์ ์ฉ
- ๋ฆฌ์กํธ ์ฑ๋ฅ๊ฐ์ / ํ๋กํ์ผ๋ง
2023/06/13 (ํ๋,BE)
- pm2๋ฅผ ํตํด ํฐ๋ฏธ๋ ์ข ๋ฃ ์์๋ ์๋ฒ ์๋
- React๋ก Get Mapping์ ๊ฒฝ๋ก ์ค๋ฅ ์์
- IP์ฃผ์ ๋๋ฉ์ธ์ผ๋ก ๋ณ๊ฒฝ
- ์นดํ24๋ฅผ ํตํด ๊ตฌํ ์์
- ๊ฐ์ ์ฌ๋ฃ์ ์ต์ ์ผ๋ก ๋ค๋ฅธ ๋ ์ํผ ์ถ์ฒ ๊ธฐ๋ฅ ๊ตฌํ
2023/06/12 (ํ๋,BE)
- AWS EC2 ์ธ์คํด์ค๋ฅผ ์ด์ฉํ ๋ฐฐํฌ
- EC2 ์ธ์คํด์ค์ chatGPT API ํ๊ฒฝ๋ณ์ ์ ์ฉ
- IP์ฃผ์ ๋๋ฉ์ธ์ผ๋ก ๋ณ๊ฒฝ
- ํฐ๋ฏธ๋ ์ข ๋ฃ ์์๋ ์๋ฒ๊ฐ ์ ์ง๋๋๋ก pm2๋ฅผ ์ด์ฉํ ์๋ฒ ๊ธฐ๋ ๊ตฌํ
2023/06/09 (2) (์ฌ์ ,FE)
- ์์ฌ๋ฃ ์ ํํ์ง ์์ ์ํ์์ ์ ์ ๋ฒํผ ํด๋ฆญ ์ ์์ธ ์ฒ๋ฆฌ ๊ตฌํ
- ์์ฌ๋ฃ / ์ต์ ์ด๊ธฐํ ๋ฒํผ ๊ตฌํ
- ์์ฌ๋ฃ ๋ฆฌ์คํธ์ ๋ฐ ์์ด์ฝ ์ถ๊ฐ
- Hover, Active ๋ฑ ์ํ์ ๋ฐ๋ฅธ CSS ๋ณํ ๊ตฌํ
- ๋ฉ์ธ ํ์ด์ง
- ๋น๋์ค ์ถ๊ฐ
- TypeIt ์ถ๊ฐ
- /selectIngredients ์ด๋ ๋ฒํผ ์ถ๊ฐ
- ํ์ด์ง ๊ฐ ์ ํ ์ ๋๋ฉ์ด์ ๊ตฌํ
2023/06/09 (์ฌ์ ,FE)
- Instruction ๋ณ ํ์ด์ง ๋ถํ
- ํ์ด์ง๋ณ ์ปดํฌ๋ํธ, ์ํ ๋ฐ์ธ๋ฉ ์ฌ๊ตฌ์ฑ
- Navbar ๋ก๊ณ ์์น ๋ณ๊ฒฝ : ์น / ๋ชจ๋ฐ์ผ ํ๋ฉด์์ ์์น ๋ค๋ฆ
- (develop only)BuildTIme ์์น ๋ณ๊ฒฝ
- ์ ์ ๋ฒํผ ์์ธ์ฒ๋ฆฌ
- ๋ด๊ธด ์์ฌ๋ฃ๊ฐ ์์ ์ ๋ฒํผ ๋นํ์ฑํํ๊ธฐ
- ์์ฌ๋ฃ ๋ฒํผ ํ์ฑํ CSS ๊ตฌํ
- ํ์ด์ง ์ ํ ์ ๋๋ฉ์ด์ ๊ตฌํ
- ํฐํธ, ์์ด์ฝ
- App.js ์ฝ๋ ์ ๋ฆฌ
2023/06/06 (์ฌ์ ,FE)
- / ํ์ด์ง ์ฌ๊ตฌ์ฑ
- App.js ๋ด / ํ์ด์ง ๋ถํ (SelectPage, OptionPage)
- Testpage์์ ์ํํ๋ ์ค์์ดํ / ํํ์ด์ง ์คํฌ๋กค ๊ธฐ๋ฅ ์ฌ์ฉ ์ ์ ๋ณด๋ฅ
- ์ฌ์ ๋ onClick ํตํ ์ํ๊ฐ ๊ฐฑ์ ์ ์ฌ๋ ๋๋ง๋์ด ์์น๊ฐ ์ด๊ธฐํ๋จ
- ๋ฐ๋ผ์ ๋ทฐํฌํธ ํฌ๊ธฐ์ ๋ง๋ ํ์ด์ง๋ฅผ ์ฃผ์ ๊ธฐ๋ฅ ํ๋์ฉ ์ฌ์ฉํ๊ฒ ๊ตฌ์ฑ ์ค์ ์์
2023/06/05 (ํ๋,BE)
- chatGPT ์ง๋ฌธ ์์
- (์๋ฌ) parsingํ๊ธฐ ์ข๊ฒ ๋ต๋ณ์ด ์ค๊ฒ ์ง๋ฌธํ๋๋ฐ ๋ต๋ณ์ด ์ํ๋๋๋ก ์ค์ง ์์.
- ์ญํ ๋ถ์ฌ ๋ ์จ๋์ ๋ต๋ณ ์์๊ฐ undefined๋ก ์ธ์๋์ ์ํ๋ ๋ต๋ณ์ด ๋์์ค์ง ์์์์.
- ์ญํ ๋ถ์ฌ ๋ฟ ์๋๋ผ ์ต์ข ์ ์ผ๋ก ์์ฌ๋ฃ์ ์ต์ ์ ๋ฐ์์ ์ง๋ฌธํ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ต๋ณํ๋๋ก ์ง๋ฌธ ์์ .
- ์๋ฆฌ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์, ํ์ค ์๊ฐ 4๊ฐ์ ๋ณ์๋ก ๋๋์ด React๋ก ์ ์ก
- (์๋ฌ) parsingํ๊ธฐ ์ข๊ฒ ๋ต๋ณ์ด ์ค๊ฒ ์ง๋ฌธํ๋๋ฐ ๋ต๋ณ์ด ์ํ๋๋๋ก ์ค์ง ์์.
- chatGPT ํ๋ผ๋ฏธํฐ ์กฐ์ ์ ํตํ ๋ต๋ณ ์๋ฌ ๊ฐ์
2023/06/05 (์ฌ์ ,FE)
- /recipe ํ์ด์ง ๋ ์ด์์ ๋ฐ ์ปดํฌ๋ํธ ์ฌ๊ตฌ์ฑ
- GPT API ๋ต๋ณ ๋ฐ์ธ๋ฉ ๋ฐ ์์ฒญ๋ฉํธ ๋ณด์ (Issues ํ์ธ๋ฐ๋๋๋ค)
- / ํ์ด์ง ๋ ์ด์์ ๋ฐ ์ปดํฌ๋ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ (1)
- ์์ฌ๋ฃ๋ฒํผ ํด๋ฆญ ์ ํ์ฑํ CSS ๊ตฌํ + ์์ฌ๋ฃ๋ณ ์์ด์ฝ ์ฝ์ ์์
- /recipe ํ๋จ ๋ฒํผ (์ ์ฅ, ๊ณต์ , ๋ฆฌ๋ก๋) CSS ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ (2)
- ์ฑ๋ด ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํ
2023/06/04 (2) (์ฌ์ ,FE)
- /test ํํ์ด์ง ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๊ตฌํ
- lottie-react ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
- GET์ผ๋ก ๋ฐ์์จ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ์ฌ, /recipe์ ์ถ๋ ฅ ๊ตฌํ ์ค
- ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๊ฒ ์ด์ธ์๋ ๋ฐ์ธ๋ฉ ๊ณผ์ ์์ ๋ฌธ์ ๋ฐ์ํ์ฌ ํด๊ฒฐ ์ค
- /recipe ์ค์ ๋ฐ์ดํฐ ๋ฐ์์์ง๋ฉด ๋ฐ์ธ๋ฉ ๋ง๋ฌด๋ฆฌ + ๋ฒํผ ๊ธฐ๋ฅ ๊ตฌํ
- /recipe ํ์ด์ง ๋ ์ด์์ ๋ฐ ์ปดํฌ๋ํธ ์ฌ๊ตฌ์ฑ
- / ํ์ด์ง ๋ ์ด์์ ๋ฐ ์ปดํฌ๋ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ
- ๋ณ๊ฒฝ ํ ์์ฌ๋ฃ ์ ํ ์ ํ์ฑํ CSS ๊ตฌํ + ์์ฌ๋ฃ๋ณ ์์ด์ฝ ์ฝ์ ์์
2023/06/04 (์ฌ์ ,FE)
- /test ํํ์ด์ง ์คํฌ๋กค ์ ๋๋ฉ์ด์ ๊ตฌํ
- /recipe ํ์ด์ง ๋ ์ด์์ ์ฌ๊ตฌ์ฑ ์ค
- ๊ทธ์ ๋ฐ๋ฅธ App.js ์ปดํฌ๋ํธ ๊ตฌ์กฐ๋ ๋ฐ๊ฟ ์์
- GET์ผ๋ก ๋ฐ์์จ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ์ฌ, /recipe์ ์ถ๋ ฅ ๊ตฌํ ์์
- ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์
- ์ค๋ฅ1. response ๋ณ์์ ๋ด๊ธฐ์ง ์์
- ์ค๋ฅ2. Parsing ๊ณผ์ ์์, GPT๊ฐ ๊ท์น์ ์งํค์ง ์์ null๋ก ๋ด๊ธฐ๊ฒ ๋จ
- /recipe ์ค์ ๋ฐ์ดํฐ ๋ฐ์์์ง๋ฉด ๋ฐ์ธ๋ฉ ๋ง๋ฌด๋ฆฌ + ๋ฒํผ ๊ธฐ๋ฅ ๊ตฌํ
- / ํ์ด์ง ๋ ์ด์์ ๋ฐ ์ปดํฌ๋ํธ ๊ตฌ์กฐ ๋ณ๊ฒฝ
- ๋ณ๊ฒฝ ํ ์์ฌ๋ฃ ์ ํ ์ ํ์ฑํ CSS ๊ตฌํ + ์์ฌ๋ฃ๋ณ ์์ด์ฝ ์ฝ์ ์์
2023/06/04 (ํ๋,BE)
-
์ ๊ท ํํ์์ ์ด์ฉํด chatGPT์๊ฒ ๋ฐ์ ์ถ์ฒ ๋ ์ํผ๋ฅผ parsing
-
React๋ก ์ถ์ฒ๋ฐ์ ๋ ์ํผ parsing ๊ฒฐ๊ณผ๋ฅผ ์ ์ก
- (์๋ฌ) axios๋ฅผ ์ด์ฉํด ํต์ ํ๋๋ฐ res.send๋ก ๋ณด๋ธ ๊ฐ์ React์์ ์ ๋๋ก ๋ฐ์์ค์ง ๋ชปํจ.
- axios.get()์ผ๋ก ํ๋ฒ ๋ ๋ฐ์์ค๋ ๊ฒ์ด ์๋๋ผ post ์์ฒญ ํ then์ ์ด์ฉํด ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์ค๋๋ก ์์
- React์์ json ํํ๋ก ๋ณํํ์ง ์๊ณ res.json์ ์ด์ฉํด ์๋ฒ์์ json ํํ๋ก ์ ์ก
- (์๋ฌ) axios๋ฅผ ์ด์ฉํด ํต์ ํ๋๋ฐ res.send๋ก ๋ณด๋ธ ๊ฐ์ React์์ ์ ๋๋ก ๋ฐ์์ค์ง ๋ชปํจ.
-
POST ์์ฒญ๋ฐ์ ์์ฌ๋ฃ, ์ต์ ๊ฐ์ด null ์ผ๋ ์์ธ ์ฒ๋ฆฌ
-
-
๊ตฌํ ์ค์ธ ๋ด์ฉ
- ์ข ๋ ์ ํํ chatGPT ๋ต๋ณ์ ์ํ ์ญํ ๋ถ์ฌ ๋ฉ์์ง, ํ๋ผ๋ฏธํฐ ์์
- ๊ตฌํ ์์
- aws, heroku ๋ฑ์ ์ด์ฉํ ์๋ฒ ๋ฐฐํฌ
- ๋ฐฐํฌ ํ ํ ์คํธ ๋ฐ ๋ฒ๊ทธ ์์
2023/06/03 (์ฌ์ ,FE)
- MakeRequest
- Post / Get ๊ตฌํ
- Get ์์ฒญ ์๋ฃ ์ ๊น์ง ๋ก๋ฉ ์ถ๋ ฅ ๋ก์ง ๊ตฌํ
- ๋ฐ์ดํฐ ์ ์์ ์ผ๋ก ๋๊ฒจ๋ฐ์ผ๋ฉด ํ์ด์ง ์ด๋
- GPT API์์ ์์ฒญ๋ฐ์์จ ์ค์ ๋ฐ์ดํฐ ์ถ๋ ฅ ํ ์คํธ
- /recipe ๋ ์ด์์ ๋ฆฌํฉํ ๋ง ..
2023/06/02 (์ฌ์ ,FE)
- ํ๋ก์ ํธ readme์ ๊ฐ๋ฐ๋ก๊ทธ ์์ ์์ฑ ๋ฐ ๊ธฐ์กด ๋ก๊ทธ ๋ฐฑ์
- NavBar ํ๋กํ ์์ด์ฝ Hover animation
2023/05/25 (ํ๋,BE)
- ๊ตฌํ ์ค์ธ ๋ด์ฉ
- chatGPT ๋ต๋ณ์ match, split์ ์ด์ฉํด ์๋ฆฌ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์๋ก ๊ตฌ๋ถ
- (์๋ฌ) ๋ต๋ณ์ด ์ํ๋ ๋๋ก ๋์์ค์ง ์์.
- ์ ํํ ๋ต๋ณ์ ์ํด temperature, top_p ๋ฑ chatGPT ํ๋ผ๋ฏธํฐ ์กฐ์
- ์ญํ ๋ถ์ฌ ๋ฐ user ๋ฉ์์ง๋ฅผ ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์
- (์๋ฌ) ๋ต๋ณ์ด ์ํ๋ ๋๋ก ๋์์ค์ง ์์.
- parsingํ ๋ ์ํผ ์ถ์ฒ ์ ๋ณด๋ฅผ res.send๋ฅผ ์ด์ฉํด React๋ก ์ ์ก
- chatGPT ๋ต๋ณ์ match, split์ ์ด์ฉํด ์๋ฆฌ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์๋ก ๊ตฌ๋ถ
2023/05/24 (์ฌ์ ,FE)
- /recipe ํ์ด์ง ๋ ์ด์์
- bootstrap-grid๋ฅผ ํตํด ๋ ์ด์์๊ณผ ๋ฒํผ ๊ตฌํ
- ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์๋ Single Row๋ก ํธํ
- Get ์์ฒญ ํตํ GPT API ๋ต๋ณ ๋ฐ์์ค๊ธฐ
- ๋ฐ์์จ ๋ฐ์ดํฐ { ๋ฉ๋ด๋ช / ์๊ฐ / ์์ฌ๋ฃ / ๋ ์ํผ } ํํ๋ก Parsing
- Get ์์ฒญ ์ฑ๊ณต ์ ๊น์ง ์ถ๋ ฅํ Loading ํ๋ฉด ๊ตฌํ ๋ฐ ๊ตฌ์กฐ ์ ๋ฆฝ
- React-query?
- "์ ์"๋ฒํผ ํด๋ฆญ ์ Loading ํ๋ฉด์ "/" ํ์ด์ง์์ ์ถ๋ ฅ ํ Get ์ฑ๊ณต ์ "/Recipe" ํ์ด์ง๋ก ์ด๋ํ ๊ฒ์ธ์ง, ์ด๋ ํ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง
2023/05/23 (ํ๋,BE)
- ์ด์ฉ์๊ฐ ์ ํํ ์ต์ , ์์ฌ๋ฃ๋ฅผ POST ์์ฒญ์ผ๋ก ๋ฐ์์ request ๊ฐ๋ค ์ ์ฅ
- ๋ฐ์์จ request ๊ฐ๋ค์ ์ด์ฉํด ์ญํ ์ด ๋ถ์ฌ๋ chatGPT์๊ฒ ๋ ์ํผ ์ถ์ฒ ์์ฒญ
- chatGPT๊ฐ ๋ต๋ณํด์ค ๋ ์ํผ๋ฅผ ์๋ฒ์ ์ ์ฅ
- ๊ตฌํ ์ค์ธ ๋ด์ฉ
- chatGPT๊ฐ ๋ต๋ณํด์ค ๋ ์ํผ๋ฅผ ์๋ฆฌ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์๋ก parsing
- ์ข ๋ ์ ํํ chatGPT ๋ต๋ณ์ ์ํ ์ญํ ๋ถ์ฌ ๋ฉ์์ง ์์
- ๊ตฌํ ์์
- React์์ POST ์์ฒญ์ ๋ํ chatGPT ๋ต๋ณ์ด ์ ๋ฐ์์ง๋์ง ํ์ธ
- ๋ต๋ณ์ด ๋ฐ์์ง ์ํ๋ก recipe ํ์ด์ง๋ก ๋ผ์ฐํ ๋๋์ง ํ์ธ
2023/05/23 (์ฌ์ ,FE)
- ํผ ์
๋ ฅ ์ด์ ํด๊ฒฐ
- (์๋ฌ) onChange๋ฅผ ํตํด ์ ๋ ฅ๋ฐ์ ๊ฐ์ State์ ์ ์ฅํ๋ ค ํ์ผ๋ ์ฝ๋ฐฑํจ์ ์ฌ์ฉ๊ณผ์ ์์ ํ ๊ธ์ ์ ๋ ฅํ ๋๋ง๋ค ํฌ์ปค์ค๊ฐ ํ๋ฆฌ๋ ๋ฌธ์ ๋ฐ์
- (ํด๊ฒฐ) React-hook-form ๋ชจ๋์ ํตํ ์ด์ ํด๊ฒฐ
- ์์ผ๋ก ๊ตฌํํ chatBot ํ์ด์ง๋ ๋ก๊ทธ์ธ ๋ฑ ๋ง์ ๊ณณ์์ ํผ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ผ๋ก ๋ณด์ด๊ธฐ ๋๋ฌธ์, ๊ตฌํ๊ณผ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์์
- ์ง์ ์ ๋ ฅํ ์์ฌ๋ฃ / ์ต์ ์ ํ๋ฉด ์ถ๋ ฅ์ State ๋ด๋ถ Reducer๋ฅผ ํตํด ๊ตฌํํ์์
- "์ ์"๋ฒํผ ํด๋ฆญ ํ ํ์ด์ง ์ ํ (-> /recipe)
- /recipe ํ์ด์ง ๋ ์ด์์ ๊ตฌํ
2023/05/21 (์ฌ์ ,FE)
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ
- ๊ธฐ์กด App.js์ ๋ชฐ๋ ค ์๋ ์ปดํฌ๋ํธ๋ค์ ๊ฐ๋ณ ํ์ผ๋ก ๋ถํ ํ์์
- App.js์ ๋ชจ๋ ์ปดํฌ๋ํธ๋ฅผ Import ์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์, ๋ณ๋์ Components ํ์ผ์ ์ปดํฌ๋ํธ๋ฅผ Importํ ํ ํด๋น ํ์ผ์์ ๋ถ๋ฌ์ค๋ ์์ผ๋ก ๋ฆฌํฉํ ๋งํ์์.
- (์์)
import { optionList, selectedList, makeRequest} from './componets.js'
- ์ปดํฌ๋ํธ ๋ณ ์คํ์ผ ์ ์ฉ (Styled-components)
- ๊ธฐ์กด app.js์ ํด๋์ค ํ์์ผ๋ก ๋ถ๋ฅ๋์ด ์๋ ์คํ์ผ์ ๊ฐ๋ณ ์ปดํฌ๋ํธ ํ์ผ ๋ด๋ถ์์ Styled-components๋ฅผ ํตํด ์ง์ ํ๋๋ก ๋ฆฌํฉํ ๋งํ์์.
- ํผ ์ ๋ ฅ ์ด์ ํด๊ฒฐ ๋ฐ ์ ๋ ฅํ ๋ด์ฉ ํ๋ฉด ์ถ๋ ฅ ๊ตฌํ
2023/05/20 (ํ๋,BE)
- POST ์์ฒญ ๊ตฌํ
app.use(express.json()); app.use(express.urlencoded({ extended: true }));
- chatGPT ์ญํ ๋ถ์ฌ
- ์ธ๊ณ ์ต๊ณ ์ ์๋ฆฌ์ฌ์ด๊ณ , ์๋ฆฌ ๊ด๋ จ ์ง์์ด ํ๋ถํด ์ด๋ค ์์ฌ๋ฃ์ ์ต์ ์ด๋ ๋๋ตํด์ค ์ ์์.
- ์ถ์ฒ์ ํ๋์ ์๋ฆฌ๋ง ์ถ์ฒํด ์ค.
- ๋ต๋ณ ์์๋ ์๋ฆฌ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์ ํํ๋ก ๋ต๋ณํด์ค.
- Temperature(๋ฌด์์์ฑ, ์์ ๋)๋ฅผ ๋ฎ์ถฐ ๋ต๋ณ์์ ์ผ์ด๋๋ ๋ฒ๊ทธ ์ ์ด
- ๊ตฌํ ์ค์ธ ๋ด์ฉ
- chatGPT์ ๋ต๋ณ์ javascript ๋ณ์๋ก parsing
- parsing๋ ๊ฐ๋ค์ React๋ก ์ ์ก
- ๊ตฌํ ์์
- ์์ฒญ๋ฐ์ POST์ ๋ํ response ๊ฐ์ React์ ์ ์ ์ก๋๋์ง ํ์ธ.
- res.send๋ก ์ ์๋ณด๋ด์ง๋ค๋ฉด json ํํ๋ก ๋ณํ ํ ์ ์ก.
2023/05/20 (์ฌ์ ,FE)
- State ๋ฐ์ธ๋ฉ
- ์์ฌ๋ฃ ๋ฐ ์ต์ ํด๋ฆญ ์ State์ ๊ฐ์ ์ ์ฅํ๊ณ , ์ ํ๋ ๋ฆฌ์คํธ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๊ฒ ํ์์
- Ajax ์์ฒญ
- Axios๋ฅผ ํตํด "์ ์"๋ฒํผ ํด๋ฆญ ์ ์ ๋ ฅํด๋์ ์์ฌ๋ฃ์ ์ต์ ์ ๊ฐ์ฒด ํํ๋ก ์๋ฒ์ ์ ์ก๋ ์ ์๊ฒ ๊ตฌํํ์์
- ์์ฌ๋ฃ๋ ingredients Key์, ์ต์ ์ options Key์ ์ ์ฅ๋์ด ์ ์ก
- ๋ฆฌ์คํธ์ ์๋ ์์ฌ๋ฃ ๋ฐ ์ต์
์ง์ ์์ฑํ์ฌ ์ถ๊ฐ
- (์๋ฌ) Input ํผ์ ์์ฑํ ๊ฐ์ State์ ์ ์ฅํ๋ ๊ณผ์ ์์ ํ ๊ธ์ ์ ๋ ฅํ ๋๋ง๋ค ์์ํฌ์ปค์ฑ๋๋ ํ์์ด ๋ฐ์. ์ถ๊ฐ(+) ๋ฒํผ๊ณผ ๋ฐ์ธ๋ฉํ๊ธฐ ์ํด์ ๊ผญ State์ ์ ์ฅํด์ผ ๋๋๋ฐ ..
- ํผ ์ ๋ ฅ ์ด์ ํด๊ฒฐ
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ์ ๊ฐ๋ณ ์คํ์ผ๋ง
2023/05/18 (ํ๋,BE)
- Node.js ์๋ฒ์ chatGPT API ์ฐ๋
- cors ์์ธ ์ฒ๋ฆฌ
var cors = require('cors'); app.use(cors());
- API_KEY ํ๊ฒฝ๋ณ์ ์ฒ๋ฆฌ
- ๊ตฌํ ์์
- React์์ ๋ฐ์์จ ์์ฌ๋ฃ, ์ต์ ์ chatGPT์๊ฒ ์ ์ก
- chatGPT์ ๋ ์ํผ ์ถ์ฒ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฆ, ์์ฌ๋ฃ, ๋ ์ํผ ์์๋ก Parsing
- parsing๋ ์ ๋ณด๋ฅผ React๋ก ์ ์ก
2023/05/16 (ํ๋,BE)
- Express ์น ์๋ฒ ์์ฑ
- React๋ก ๋ง๋ HTML์ Node.js๋ก ์ ์ก
- Node.js ์๋ฒ์ React ์ฐ๋
- ๊ตฌํ ์์
- chatGPT API ์ฐ๋
- React์ Node.js ์ฌ์ด์ ๋ฐ์ดํฐ ์์ฒญ
2023/05/15 (์ฌ์ ,FE)
- ์ ๋ฐ์ ์ธ ๋ ์ด์์ ๊ตฌํ
- ์ ํ๋ ์์ฌ๋ฃ ๋ฆฌ์คํธ ์ถ๋ ฅ (SelectedList)
- ์ต์ ์ ํ (OptionList / SelectedOption)
- Styled-components ๋ฆฌํฉํฐ๋ง
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ฌ์ฉํ์ง ๋ชปํ๋๋ฐ, ๋ฌธ์ ๋ฐ๊ฒฌ ํ ํด๊ฒฐํ์์
- (ํด๊ฒฐ) ๊ธฐ์กด์ ์ค์น๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ๋ฌธ์ ๋ก, ๋ฒ์ ์ ํด์ฃผ์์
- (์ฝ๋)
npm install styled-components@latest
- State ๋ฐ์ธ๋ฉ
- ์์ฌ๋ฃ ๋ฐ ์ต์ ์ ํ ์ SelectedList์ State ๊ฐ์ผ๋ก ์ถ๊ฐ, ํ๋ฉด์ ์ถ๋ ฅ๊น์ง
2023/05/07 (์ฌ์ ,FE)
- Route, Redux, Bootstrap ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
- ์์ฌ๋ฃ ์ ํ (SelectList) ๊ตฌํ
-
์์ฌ๋ฃ ์ ํ (SelectList) ๊ตฌํ
- ๋ฒํผ ํ์ฑํ ์ CSS ๋ณ๊ฒฝ, SelectedList์ State ๊ฐ ์ ์ก ๊ตฌํ
- (์๋ฌ 1) ํด๋ฆญ ์ ๋ณ๊ฒฝ๋๋ State ๊ฐ์ ์ผํญ์ฐ์ฐ์๋ฅผ ํตํด Boolean ํ์ ์ผ๋ก ์ ์ดํ์๋๋ฐ, ์ฝ์ ๋๋ฒ๊น ์ ํ ์ฐจ๋ก ๋๋ ์ด ๋ฐ์
- (ํด๊ฒฐ 1) ๋ฆฌ์กํธ ๋์ ๊ตฌ์กฐ ์ ๋ ๋๋ง ์ฐ์ ์์์ ์ํด ๋ฐ์ํ๋ ๋ฌธ์ ์์ผ๋ฉฐ, useEffect ํ ์ ํตํด ์ปดํฌ๋ํธ์ ๋ผ์ดํ์ฌ์ดํด์ ์กฐ์ ํจ์ผ๋ก์จ ๋ฌธ์ ํด๊ฒฐ
- ์ ํ๋ ์์ฌ๋ฃ (SelectedList) ๊ตฌํ
- ์์ฌ๋ฃ ์ ํ ์ SelectedList State๋ก Push
- SelectedList์์ ์ ๊ฑฐ(-) ํด๋ฆญ ์, ํด๋น ์ด๋ฆ์ ๊ฐ์ง Element ์ ๊ฑฐ