Skip to content
@4onmedicine

4onmedicine

4์˜จ ์•ฝ ์–ด๋•Œ?

๐Ÿ’Š ์˜์•ฝํ’ˆ ๊ฐ„ํŽธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค, 4์˜จ ์•ฝ ์–ด๋•Œ? ๐Ÿ’Š

Untitled

์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค

์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ: https://4onmedicine.kro.kr

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ 12๊ธฐ ํ•ด์ปคํ†ค

๐Ÿ”Žย Introduction(์†Œ๊ฐœ)


Untitled 1

๊ธฐํš ๋ฐฐ๊ฒฝ

  1. ์ผ๋ฐ˜์ธ์ด ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์‰ฝ์ง€ ์•Š๊ณ  ๊ณผ์ •์ด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

  2. ์ฒ˜๋ฐฉ์ „์— ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†๊ฑฐ๋‚˜, ์žˆ๋”๋ผ๋„ ๋ˆ„๋ฝ๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ํ•œ๋ฒˆ์— ๊ฑด๊ฐ• ์ •๋ณด๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋Š” ํš๋“์ฒ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ํŠน์ง•

  1. ์ผ๋ฐ˜์ธ์ด ์˜์•ฝํ’ˆ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰, ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์ฒ˜๋ฐฉ์ „์„ ์—…๋กœ๋“œํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋ถ„์„์„ ํ†ตํ•ด ์ฒ˜๋ฐฉ์ „์— ์žˆ๋Š” ์˜์•ฝํ’ˆ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  3. gpt Api๋ฅผ ํ†ตํ•ด ์ „๋ฐ˜์ ์ธ ๊ฑด๊ฐ• ๊ด€๋ จ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ฅ๏ธย ํŽ˜์ด์ง€(page)


1) ๋ฉ”์ธํŽ˜์ด์ง€(MainPage)

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 15 50

์›น์‚ฌ์ดํŠธ์— ์ ‘์†์‹œ ์ฒ˜์Œ ๋ณด์ด๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋ณธ ํŽ˜์ด์ง€์—์„œ ์˜์•ฝํ’ˆ์„ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์ฒ˜๋ฐฉ์ „์„ ์—…๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์šฐ์ธก ํ•˜๋‹จ ์ฑ„ํŒ… ๋ฒ„ํŠผ์„ ์ž…๋ ฅํ•˜์—ฌ gpt์™€ ๋Œ€ํ™”ํ•˜๋ฉฐ, ๊ฑด๊ฐ•์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

2) ์ฑ„ํŒ…ํŽ˜์ด์ง€(ChattingPage)

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 17 44 %E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 19 22

์›น์‚ฌ์ดํŠธ ์šฐ์ธก ํ•˜๋‹จ ์ฑ„ํŒ… ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ณด์ด๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋ณธ ํŽ˜์ด์ง€์˜ ํ•˜๋‹จ ์ธํ’‹์— ๊ฑด๊ฐ•์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๋ฉด gpt๊ฐ€ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3) ์˜์•ฝํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€(MedicinePage)

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 20 54

๋ฉ”์ธํŽ˜์ด์ง€์—์„œ ์˜์•ฝํ’ˆ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ด ํด๋ฆญํ•˜๋ฉด ๋ณด์ด๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ํ•œ ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€์™€ ํšจ๋Šฅ, ์‚ฌ์šฉ๋ฒ•, ์ฃผ์˜์‚ฌํ•ญ, ์ƒํ˜ธ์ž‘์šฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4) ์ฒ˜๋ฐฉ์ „ ์—…๋กœ๋“œํŽ˜์ด์ง€(PrescriptionPage)

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 22 32

์‚ฌ์ดํŠธ ์ƒ๋‹จ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ”์—์„œ ์ฒ˜๋ฐฉ์ „ ๊ฒ€์ƒ‰์„ ํด๋ฆญํ•˜๋ฉด ๋ณด์ด๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ์ฒ˜๋ฐฉ์ „ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์ฒ˜๋ฐฉ์ „์— ์ž‘์„ฑ๋œ ์˜์•ฝํ’ˆ์˜ ๋ณดํ—˜์ฝ”๋“œ๋ฅผ ์ถ”์ถœํ•ด์—ฌ ์˜์•ฝํ’ˆ ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ๋ชจ(Demo)

1) ๊ฒ€์ƒ‰์ฐฝ์„ ํ†ตํ•œ ์˜์•ฝํ’ˆ ๊ฒ€์ƒ‰

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 25 58

์นดํ…Œ๊ณ ๋ฆฌ์—์„œ โ€˜์•ฝโ€™์„ ์„ ํƒํ•˜๊ณ  ์˜์•ฝํ’ˆ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 27 59

๊ฒ€์ƒ‰ํ•œ ์˜์•ฝํ’ˆ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด ํ•ด๋‹น ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2) ์ฒ˜๋ฐฉ์ „์„ ํ†ตํ•œ ์˜์•ฝํ’ˆ ๊ฒ€์ƒ‰

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 29 24 %E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 32 57

์ฒ˜๋ฐฉ์ „ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€์—์„œ ์šฐ์ธก ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋ณดํ—˜์ฝ”๋“œ๊ฐ€ ์ ํžŒ ์ฒ˜๋ฐฉ์ „์„ ์ดฌ์˜ ํ›„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ๋ฐ๋ชจ์—์„œ๋Š” โ€˜ํƒ€์„ธ๋†€8์‹œ๊ฐ„์ด์•Œ์„œ๋ฐฉ์ •โ€™๊ณผ โ€˜ํƒ€์ด๋ ˆ๋†€8์‹œ๊ฐ„์ด์•Œ์„œ๋ฐฉ์ •โ€™์ด ์ ํžŒ ์ฒ˜๋ฐฉ์ „์„ ์—…๋กœ๋“œํ•˜์˜€์Šต๋‹ˆ๋‹ค.

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 34 18

์ฒ˜๋ฐฉ์ „์— ๋‚˜์™€์žˆ๋Š” ์˜์•ฝํ’ˆ์ธ โ€˜ํƒ€์„ธ๋†€8์‹œ๊ฐ„์ด์•Œ์„œ๋ฐฉ์ •โ€™๊ณผ โ€˜ํƒ€์ด๋ ˆ๋†€8์‹œ๊ฐ„์ด์•Œ์„œ๋ฐฉ์ •โ€™์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜๋ฐฉ์ „์— ๋Œ€ํ•œ ์˜์•ฝํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€๋Š” ์Šฌ๋ผ์ด๋“œ๋กœ ๊ตฌํ˜„๋˜์–ด ์Šฌ๋ผ์ด๋“œ๋ฅผ ๋„˜๊ฒจ ์ฒ˜๋ฐฉ์ „์— ์ž‘์„ฑ๋œ ๋ชจ๋“  ์˜์•ฝํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3) ์ฑ„ํŒ…

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 37 53 %E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 38 20

๋ชจ๋“  ํŽ˜์ด์ง€์˜ ์šฐ์ธก ํ•˜๋‹จ์— ์žˆ๋Š” ์ฑ„ํŒ… ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ , ๋‹ค์Œ ์ฑ„ํŒ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 38 55

์ฑ„ํŒ… ํŽ˜์ด์ง€ ํ•˜๋‹จ ์ธํ’‹์— ๊ฑด๊ฐ•๊ณผ ๊ด€๋ จ๋œ ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ณ  ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๋ณธ ๋ฐ๋ชจ์—์„œ โ€˜๋ชฉ๊ฐ๊ธฐ์— ์ข‹์€ ์•ฝ์„ ์ถ”์ฒœํ•ด์ค˜'๋ผ๋Š” ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ gpt๊ฐ€ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“œ ์•„ํ‚คํ…์ณ(Architecture)

Untitled 2

๐Ÿ’กย ๊ธฐ์ˆ  ์Šคํƒ(Tech Stack)

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-08-06_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9 42 57
  • ํ”„๋ก ํŠธ ํŒŒํŠธ(Front part): react
  • ๋ฐฑ์—”๋“œ ํŒŒํŠธ(Backend part): Spring Boot, Flask
  • ๋ฐฐํฌ(Deployment): GoogleCloud, Amazon AWS, Docker, Nginx, Github Actions
  • ์ด ์™ธ(Other): Swagger

๐Ÿ“Œย ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ

๐Ÿ“‚ย ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ


1) ํ”„๋ก ํŠธ ๋””๋ ‰ํ† ๋ฆฌ(frontend directory)

front/
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ favicon.ico
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ””โ”€โ”€ robots.txt
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”œโ”€โ”€ logo.png
โ”‚   โ”‚   โ””โ”€โ”€ styles.css
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ Header.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ Footer.tsx
โ”‚   โ”‚   โ””โ”€โ”€ SearchBar.tsx
โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ Home.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ SearchResults.tsx
โ”‚   โ”‚   โ””โ”€โ”€ Prescription.tsx
โ”‚   โ”œโ”€โ”€ App.tsx
โ”‚   โ”œโ”€โ”€ index.tsx
โ”‚   โ””โ”€โ”€ routes.tsx
โ”œโ”€โ”€ .env
โ”œโ”€โ”€ .eslintrc.cjs
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ package-lock.json
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ vite.config.js

2) ๋ฐฑ์—”๋“œ ๋””๋ ‰ํ† ๋ฆฌ(backend directory)

.
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ Dockerfile-nginx
โ”œโ”€โ”€ build
โ”œโ”€โ”€ build.gradle
โ”œโ”€โ”€ gradle
โ”œโ”€โ”€ gradlew
โ”œโ”€โ”€ gradlew.bat
โ”œโ”€โ”€ nginx
โ”‚ย ย  โ””โ”€โ”€ conf.d
โ”‚ย ย      โ””โ”€โ”€ nginx.conf
โ”œโ”€โ”€ settings.gradle
โ””โ”€โ”€ src
    โ”œโ”€โ”€ main
    โ”‚ย ย  โ”œโ”€โ”€ java
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ com
    โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ medicine
    โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€ backend
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€ BackendApplication.java
    โ”‚ย ย  โ”‚ย ย              โ””โ”€โ”€ medicine
    โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ config
    โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ CorsMvcConfig.java
    โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ SwaggerConfig.java
    โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ controller
    โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ FlaskController.java
    โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ MedicineController.java
    โ”‚ย ย  โ”‚ย ย                  โ””โ”€โ”€ dto
    โ”‚ย ย  โ”‚ย ย                      โ”œโ”€โ”€ ChatRequest.java
    โ”‚ย ย  โ”‚ย ย                      โ”œโ”€โ”€ ImgMedicineDetail.java
    โ”‚ย ย  โ”‚ย ย                      โ”œโ”€โ”€ ImgPayload.java
    โ”‚ย ย  โ”‚ย ย                      โ”œโ”€โ”€ MedicineDetail.java
    โ”‚ย ย  โ”‚ย ย                      โ””โ”€โ”€ MedicineInfo.java
    โ”‚ย ย  โ””โ”€โ”€ resources
    โ”‚ย ย      โ””โ”€โ”€ application.properties
    โ””โ”€โ”€ test
        โ””โ”€โ”€ java
            โ””โ”€โ”€ com
                โ””โ”€โ”€ medicine
                    โ””โ”€โ”€ backend
                        โ””โ”€โ”€ BackendApplicationTests.java

๐Ÿง‘๐Ÿปโ€๐Ÿ’ปย ํŒ€์›(Team Member)

https://github.com/HANTAEDONG https://github.com/huzan2 https://github.com/cjh-19 https://github.com/LEEJH1029 https://github.com/jangwonjun
Frontend Developer Frontend Developer Backend Developer, CI/CD Backend Developer Backend Developer

Pinned Loading

  1. backend backend Public

    ๐Ÿ’Š ์˜์•ฝํ’ˆ ๊ฐ„ํŽธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค, 4์˜จ ์•ฝ ์–ด๋•Œ? BE(Spring) ๐Ÿ’Š

    Java 2

  2. backend2 backend2 Public

    ๐Ÿ’Š ์˜์•ฝํ’ˆ ๊ฐ„ํŽธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค, 4์˜จ ์•ฝ ์–ด๋•Œ? BE(Flask) ๐Ÿ’Š

    Python 1

  3. front front Public

    ๐Ÿ’Š ์˜์•ฝํ’ˆ ๊ฐ„ํŽธ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค, 4์˜จ ์•ฝ ์–ด๋•Œ? FE ๐Ÿ’Š

    JavaScript

Repositories

Showing 4 of 4 repositories

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ