Skip to content

Latest commit

ย 

History

History
868 lines (598 loc) ยท 23.4 KB

File metadata and controls

868 lines (598 loc) ยท 23.4 KB

MediHub

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ์ œ1์กฐ1ํ•ญ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

๋ฐ•์ƒํ˜„

์—ฐ๊ฑด์ฐฝ

์œค์ง€์˜

์ž„๊ด‘ํƒ

์ž„์„œ์—ฐ

์ž„์ฑ„๋ฅœ


๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Backend



Frontend


Database


์™ธ๋ถ€ API

CI/CD


Tool


๐Ÿ“œ ๋ชฉ์ฐจ

  1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”
  2. ์ฃผ์š” ๊ธฐ๋Šฅ
  3. ๊ธฐ๋Œ€ ํšจ๊ณผ
  4. ํ”„๋กœ์ ํŠธ ์„ค๊ณ„ ๋ฌธ์„œ
  5. ๋ฐฑ์—”๋“œ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
  6. ํ”„๋ก ํŠธ์—”๋“œ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•
  7. ์‹œ์Šคํ…œ ํ†ตํ•ฉ


1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

MediHub

MediHub๋Š” ๋ณ‘์› ๋‚ด ์˜๋ฃŒ์ง„๊ณผ ์˜๋ฃŒ ๊ด€๊ณ„์ž๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ํ˜‘์—…ํ•˜๊ณ  ์ง€์‹ ๊ณต์œ  ๋ฐ ์ถ•์ ์„ ํ†ตํ•ด ์˜๋ฃŒ ์„œ๋น„์Šค์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ง€์‹ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(KMS)์ž…๋‹ˆ๋‹ค.

๋ณ‘์›์˜ ์˜๋ฃŒ ์ˆ˜์ค€์€ ๊ฐœ๊ฐœ์ธ์˜ ์ง€์‹๊ณผ ๋‹ค์ˆ˜ ์˜๋ฃŒ์ง„์˜ ํ˜‘์—…์œผ๋กœ ๊ฒฐ์ •๋˜๋ฏ€๋กœ ์ง€์‹์˜ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ์™€ ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ณ‘์› ๋‚ด์—์„œ ์ง€์‹์€ ์•”๋ฌต์  ์ง€์‹์—์„œ ๋ช…์‹œ์  ์ง€์‹์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜๋ฃŒ์ง„๊ณผ ์ง์›๋“ค์ด ๊ฐ์ž ๋ณด์œ ํ•œ ์—…๋ฌด ๊ฒฝํ—˜, ์ง„๋ฃŒ ์ง€์นจ(CP), ์˜๋ฃŒ ๋…ผ๋ฌธ ๋“ฑ์„ ์กฐ์ง์ ์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์ถ•์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด MediHub๋Š” ๋ณ‘์› ๋‚ด ์ •๋ณด์˜ ์ผ์›ํ™”๋ฅผ ์ถ”์ง„ํ•˜๊ณ  ์‹ค์‹œ๊ฐ„ ์ •๋ณด ๊ณต์œ ์™€ ํ˜‘์—…์„ ์ด‰์ง„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


2. ์ฃผ์š” ๊ธฐ๋Šฅ

์˜๋ฃŒ์ง„ ๋ฐ ๋ณ‘์› ์ง์›๋“ค์ด ์˜๋ฃŒ ์ผ€์ด์Šค, CP ๋“ฑ ๋ถ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ์—”์ง„์„ ํ†ตํ•ด ํ•œ ๊ณณ์—์„œ ํ†ตํ•ฉ์ โ€ขํšจ์œจ์ ์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ž์‹ ์˜ ์˜๊ฒฌ์„ ์ž์œ ๋กญ๊ฒŒ ๊ฐœ์ง„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์‹œํŒ๊ณผ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ์€ ์ง์› ๊ฐ„ ํ˜‘์—…๊ณผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ง€์›ํ•˜์—ฌ ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.

1. ์ง€์‹ ๊ด€๋ฆฌ

  • CP(Clinical Pathway): ๋ณ‘์› ๋‚ด ์น˜๋ฃŒ ๋งค๋‰ด์–ผ ๋ฌธ์„œ(CP)๋ฅผ ๋ณ‘์› ๋‚ด ๊ด€๊ณ„์ž๋“ค์ด ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ˆ˜์ •์„ ๊ฑด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต
  • Case Sharing(์˜๋ฃŒ ์ผ€์ด์Šค ๊ณต์œ ): ํฌ๊ท€๋ณ‘ ์น˜๋ฃŒ ๋“ฑ ๋‹ค์–‘ํ•œ ์˜๋ฃŒ ์‚ฌ๋ก€ ๊ณต์œ  ๋ฐ ๋…ผ์˜๋ฅผ ํ†ตํ•œ ์˜๋ฃŒ ์‚ฌ๊ณ  ์˜ˆ๋ฐฉ ๋ฐ ์น˜๋ฃŒ ์„ฑ๊ณผ ๊ฐœ์„ 
  • ChatGPT + PubMed(๋…ผ๋ฌธ): ์ตœ์‹  ๋…ผ๋ฌธ๊ณผ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์˜๋ฃŒ์ง„์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  • Medical Life(๋ถ€์„œ ๊ฒŒ์‹œํŒ): ๋ถ€์„œ๋ณ„ ๊ฒŒ์‹œํŒ์„ ํ†ตํ•ด ๊ฐ ๋ถ€์„œ์˜ ์ „๋ฌธ์„ฑ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ณด ๊ณต์œ  ๋ฐ ํšจ์œจ์ ์ธ ์—…๋ฌด ์ฒ˜๋ฆฌ ์ง€์›. ๋‹ค์–‘ํ•œ ์ง๊ตฐ ๊ฐ„์˜ ์ •๋ณด ๊ต๋ฅ˜๋ฅผ ํ†ตํ•ด ์ง€์‹์˜ ์ง€์†์ ์ธ ์ถ•์ ๊ณผ ํ™•์žฅ ์ด‰์ง„

2. ์ •๋ณด ๊ฒ€์ƒ‰ ๋ฐ ์ ‘๊ทผ

  • Elasticsearch: ๋Œ€๋Ÿ‰์˜ ์˜๋ฃŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ ์†ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  • Newsapi: ์ตœ์‹  ์˜๋ฃŒ ๋‰ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๊ณ„์ž๋“ค์ด ์ •๋ณด์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›

3. ํ˜‘์—… ๋ฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

  • ์ต๋ช… ๊ฒŒ์‹œํŒ(Anonymous Board) ๋ณ‘์› ๋‚ด ๋ชจ๋“  ๊ด€๊ณ„์ž๊ฐ€ ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์ด๋‚˜ ์งˆ๋ฌธ์„ ์ž์œ ๋กญ๊ฒŒ ๊ฐœ์ง„ํ•˜๊ณ  ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ์ œ๊ณต
  • MediTalk(๋ฉ”์‹ ์ €): ์‘๊ธ‰ ์ƒํ™ฉ์ด๋‚˜ ์‹ ์†ํ•œ ์˜์‚ฌ ๊ฒฐ์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ง์› ๊ฐ„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹ ์ € ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์•Œ๋ฆผ: ํŒ”๋กœ์šฐ ํ•œ ์˜๋ฃŒ์ง„์ด ์ƒˆ๋กœ์šด CP๋‚˜ Case Sharing ๋“ฑ์„ ์ž‘์„ฑํ–ˆ์„ ๋•Œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜์—ฌ ์ตœ์‹  ์ •๋ณด๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ํ˜‘์—…์„ ์ด‰์ง„

4. ์‚ฌ์šฉ์ž ์ง€์› ๋ฐ ์ž๋™ํ™”

  • ChatBot: ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์ •๋ณด ๊ฒ€์ƒ‰์˜ ํŽธ์˜์„ฑ ํ–ฅ์ƒ

3. ๊ธฐ๋Œ€ ํšจ๊ณผ

  • ์˜๋ฃŒ ์„œ๋น„์Šค ํ’ˆ์งˆ ํ–ฅ์ƒ: ์—…๋ฌด ํšจ์œจ์„ฑโ€ข์ƒ์‚ฐ์„ฑโ€ข๋Œ€์‘ ๋Šฅ๋ ฅ ํ–ฅ์ƒ ๋“ฑ์„ ํ†ตํ•œ ์„ฑ๊ณผ ๋„์ถœ ๋ฐ ์˜๋ฃŒ ํ™˜๊ฒฝ์˜ ๋ฐœ์ „์— ๊ธ์ •์ ์ธ ํšจ๊ณผ ๊ธฐ๋Œ€
  • ํ™˜์ž์˜ ๋งŒ์กฑ๋„ ์ œ๊ณ : ์ตœ์‹  ์—ฐ๊ตฌ ๊ฒฐ๊ณผ์™€ ์น˜๋ฃŒ ๋ฐฉ๋ฒ•์„ ์‹ ์†ํ•˜๊ฒŒ ๊ณต์œ ํ•จ์œผ๋กœ์จ ์ˆ˜์ค€ ๋†’์€ ์˜๋ฃŒ ์„œ๋น„์Šค ์ œ๊ณตํ•˜์—ฌ ํ™˜์ž์˜ ๋งŒ์กฑ๋„ ์ œ๊ณ 
  • ์ง€์‹์˜ ์ง€์†์ ์ธ ์ถ•์ ๊ณผ ํ™•์žฅ: ๋ณ‘์› ๋‚ด ๊ด€๊ณ„์ž๋“ค์˜ ์ง€์‹ ๊ณต์œ ์„ฑ๊ณผ ํ™œ์šฉ์„ฑ์„ ๊ฐ•ํ™”ํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์˜ ์ œ๊ณ ์™€ ์˜์‚ฌ ๊ฒฐ์ • ์ˆ˜์ค€์˜ ์ฆ์ง„
  • ๋ณ‘์› ๋‚ด ํ˜‘์—… ๋ฌธํ™” ํ™•์‚ฐ

4. ํ”„๋กœ์ ํŠธ ์„ค๊ณ„ ๋ฌธ์„œ

4-1. ํ”„๋กœ์ ํŠธ ๊ธฐํš์„œ

ํ”„๋กœ์ ํŠธ ๊ธฐํš์„œ

4-2. WBS

WBS

4-3. DDD ์„ค๊ณ„

DDD

4-4. ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ

์š”๊ตฌ์‚ฌํ•ญ๋ช…์„ธ์„œ

4-5. Database ์„ค๊ณ„

ERD

MongoDB Schema

chat.messages Collection

// chatMessageSchema.js

const mongoose = require('mongoose');

// ์ฒจ๋ถ€ํŒŒ์ผ(Attachment) ์„œ๋ธŒ๋ฌธ์„œ ์Šคํ‚ค๋งˆ ์ •์˜
const attachmentSchema = new mongoose.Schema({
  originName: { type: String, required: false }, // ์›๋ณธ ํŒŒ์ผ ์ด๋ฆ„
  url: { type: String, required: false }        // S3 URL
});

// ChatMessage ์Šคํ‚ค๋งˆ ์ •์˜
const chatMessageSchema = new mongoose.Schema({
  chatroomSeq: { type: Number, required: true },       // ์ฑ„ํŒ…๋ฐฉ ์‹๋ณ„์ž
  senderUserSeq: { type: Number, required: true },     // ๋ฐœ์‹ ์ž ์‚ฌ์šฉ์ž ์‹๋ณ„์ž
  type: { type: String, required: true },              // ๋ฉ”์‹œ์ง€ ํƒ€์ž… (์˜ˆ: text, file, image)
  message: { type: String, required: false },          // ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ
  createdAt: { type: Date, default: Date.now },        // ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ์‹œ๊ฐ„ (๊ธฐ๋ณธ๊ฐ’ ํ˜„์žฌ ์‹œ๊ฐ„)
  isDeleted: { type: Boolean, default: false },        // ๋ฉ”์‹œ์ง€ ์‚ญ์ œ ์—ฌ๋ถ€
  attachment: { type: attachmentSchema, required: false } // ์ฒจ๋ถ€ํŒŒ์ผ ์„œ๋ธŒ๋ฌธ์„œ
});

// ๋ณตํ•ฉ ์ธ๋ฑ์Šค ์„ค์ • (chatroomSeq, createdAt, isDeleted ๊ธฐ์ค€์œผ๋กœ ์ฟผ๋ฆฌ ์ตœ์ ํ™”)
chatMessageSchema.index(
  { chatroomSeq: 1, createdAt: 1, isDeleted: 1 },
  { name: "chatroom_createdAt_isDeleted_idx" }
);

// ๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ
module.exports = mongoose.model('ChatMessage', chatMessageSchema);

4-6. ํ™”๋ฉด ์„ค๊ณ„์„œ

ํ™”๋ฉด ์„ค๊ณ„์„œ (Figma)

4-7. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

systemArchitecture


5. ๋ฐฑ์—”๋“œ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•

5-1. ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์–‘์„œ

๊ตฌ์„ฑ์š”์†Œ ์‚ฌ์–‘
CloudFront(Frontend) Vue.js, Vite
EKS t3.large(2 vCPU, 8GB RAM), Nginx, Spring Boot
RDS db.t3.medium(2 vCPU, 4GB RAM), MariaDB, MongoDB, redis
S3 5GB ํ‘œ์ค€ ์Šคํ† ๋ฆฌ์ง€, ์ด 2๊ฐœ์˜ ๋ฒ„ํ‚ท(ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ, ์—…๋กœ๋“œ ํŒŒ์ผ)

5-2. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์„œ

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์„œ (Sheet)


6. ํ”„๋ก ํŠธ์—”๋“œ ์„ค๊ณ„ ๋ฐ ๊ตฌ์ถ•

6-1. ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

6-1-1. User (์‚ฌ์šฉ์ž)

๋‚ด ์ •๋ณด ์ˆ˜์ •

๋‚ด์ •๋ณด์ˆ˜์ •

ํŒ”๋กœ์šฐ

ํŒ”๋กœ์šฐ

๋‚˜์˜ Case Sharing

MyCaseSharing

๋‚˜์˜ Medical Life

MyMedicalLife

๋‚˜์˜ ์ต๋ช…๊ฒŒ์‹œํŒ

MyAnonymousBoard }

๋‚˜์˜ CP

MyCP

๋‚˜์˜ ๋…ผ๋ฌธ

MyJournal


6-1-2. Admin (๊ด€๋ฆฌ์ž)

๋กœ๊ทธ์ธ

Login

ํšŒ์› ์กฐํšŒ ๋ฐ ํšŒ์› ๋“ฑ๋ก

ํšŒ์›์กฐํšŒ๋ฐ๋“ฑ๋ก

๋ถ€์„œ ๋“ฑ๋ก

๋ถ€์„œ๋“ฑ๋ก

ํŒŒํŠธ ๊ด€๋ฆฌ

ํŒŒํŠธ๊ด€๋ฆฌ

์ง๊ธ‰๊ด€๋ฆฌ

์ง๊ธ‰๊ด€๋ฆฌ

ํšŒ์› ์ •๋ณด ์ˆ˜์ •

ํšŒ์›์ •๋ณด์ˆ˜์ •

๋น„๋ฐ€๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”

๋น„๋ฐ€๋ฒˆํ˜ธ์ดˆ๊ธฐํ™”


6-1-3. Case Sharing (์ผ€์ด์Šค ๊ณต์œ )

์ผ€์ด์Šค ๊ณต์œ  ์ž‘์„ฑ ๋ฐ ์กฐํšŒ

์ผ€์ด์Šค๊ณต์œ ์ž‘์„ฑ๋ฐ์กฐํšŒ

์ผ€์ด์Šค ๊ณต์œ  ์ƒˆ ๋ฒ„์ „ ์ž‘์„ฑ

์ผ€์ด์Šค๊ณต์œ ์ƒˆ๋ฒ„์ „์ž‘์„ฑ

์ผ€์ด์Šค ๊ณต์œ  ๋Œ“๊ธ€ ์ž‘์„ฑ

์ผ€์ด์Šค๊ณต์œ ๋Œ“๊ธ€์ž‘์„ฑ

์ผ€์ด์Šค ๊ณต์œ  ๋Œ“๊ธ€ ์ˆ˜์ •

์ผ€์ด์Šค๊ณต์œ ๋Œ“๊ธ€์ˆ˜์ •

์ผ€์ด์Šค ๊ณต์œ  ์•Œ๋ฆผ ๋Œ“๊ธ€ ์กฐํšŒ

์ผ€์ด์Šค๊ณต์œ ์•Œ๋ฆผ


6-1-4. CP (ํ‘œ์ค€ ์ง„๋ฃŒ ์ง€์นจ)

CP ๋ชฉ๋ก ์กฐํšŒ

CPList

CP ์กฐํšŒ (๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ์‚ฌ์šฉ)

CPListByCategory

CP ์ƒ์„ธ ์กฐํšŒ

CPDetail

CP ๋ถ๋งˆํฌ ๋ชฉ๋ก

CPBookmark


CP ์˜๊ฒฌ ๋งˆ์ปค ํ‘œ์‹œ

CPOpinion

CP ์˜๊ฒฌ ์ƒ์„ฑ

CP์˜๊ฒฌ์ƒ์„ฑ

CP ์˜๊ฒฌ ๋ชฉ๋ก ์กฐํšŒ

CP ์˜๊ฒฌ ๋ชฉ๋ก ์กฐํšŒ

CP ์˜๊ฒฌ ์ƒ์„ธ ์กฐํšŒ

CP ์˜๊ฒฌ ์ƒ์„ธ ์กฐํšŒ

CP ์˜๊ฒฌ ์ˆ˜์ •

CP์˜๊ฒฌ์ˆ˜์ •

CP ์˜๊ฒฌ ์‚ญ์ œ

CP์˜๊ฒฌ์‚ญ์ œ

CP ์˜๊ฒฌ ํˆฌํ‘œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ

CP ์˜๊ฒฌ ํˆฌํ‘œ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ

๋ถ๋งˆํฌ (CP ์ƒ์„ธ๊ธฐ๋ณด ๋‚ด๋ถ€)

CP๋ถ๋งˆํฌ

CP ๋‹ค์šด๋กœ๋“œ

CP ๋‹ค์šด๋กœ๋“œ


CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ

CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜์ •

CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ์‚ญ์ œ

CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์ˆ˜์ •

CP ๊ฒ€์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ์ดํ„ฐ ์‚ญ์ œ


6-1-5. ๋…ผ๋ฌธ

๋…ผ๋ฌธ

Journal


6-1-6. Elasticsearch (์—˜๋ผ์Šคํ‹ฑ์„œ์น˜)

์ถ”์ฒœ ๊ฒ€์ƒ‰์–ด

์ถ”์ฒœ๊ฒ€์ƒ‰์–ด

ํ†ตํ•ฉ ๊ฒ€์ƒ‰

ํ†ตํ•ฉ๊ฒ€์ƒ‰

Case Sharing ๊ฒ€์ƒ‰

์ผ€์ด์Šค๊ณต์œ 

Medical Life ๊ฒ€์ƒ‰

๋ฉ”๋””์ปฌ๋ผ์ดํ”„

Anonymous Board ๊ฒ€์ƒ‰

์ต๋ช…๊ฒŒ์‹œํŒ


6-1-7. Chatbot (์ฑ—๋ด‡)

์ฑ—๋ด‡

Chatbot


6-1-8. MediTalk (์ฑ„ํŒ…)

์กฐ์ง๋„ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰

Organization

1:1 ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ

๋‹จ์ฒด ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ

Chatroom

์ฑ„ํŒ…๋ฐฉ ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰

ChatroomList

์ฑ„ํŒ…๋ฐฉ ์ด๋ฆ„ ์ˆ˜์ •, ๋Œ€ํ™”์ƒ๋Œ€ ์ถ”๊ฐ€

OneToOneChatroom

๋ฉ”์‹œ์ง€ ๋ฐ ์ฒจ๋ถ€ํŒŒ์ผ ์ „์†ก

ChatMessage

๋ฉ”์‹œ์ง€ ์‚ญ์ œ

DeleteMessage

์ฑ„ํŒ…๋ฐฉ ๋‚˜๊ฐ€๊ธฐ

LeaveChatroom

ํŒŒ์ผํ•จ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰

FileBox


6-1-9. MedicalLife (๋ถ€์„œ๋ณ„ ๊ฒŒ์‹œํŒ)

Medical Life

MedicalLife

Medical Life ๋Œ“๊ธ€

MedicalLifeComment


6-1-10. Anonymous Board (์ต๋ช… ์ž์œ  ๊ฒŒ์‹œํŒ)

์ „์ฒด ์กฐํšŒ

์ „์ฒด์กฐํšŒ

์ƒ์„ธ์กฐํšŒ-1

์ƒ์„ธ์กฐํšŒ1

์ƒ์„ธ์กฐํšŒ-2

์ƒ์„ธ์กฐํšŒ2

๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ

๊ฒŒ์‹œ๊ธ€์ž‘์„ฑ

๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •

๊ฒŒ์‹œ๊ธ€์ˆ˜์ •

๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ

๊ฒŒ์‹œ๊ธ€์‚ญ์ œ

๋Œ“๊ธ€ ์ž‘์„ฑ

๋Œ“๊ธ€์ž‘์„ฑ

๋Œ“๊ธ€ ์ˆ˜์ •

๋Œ“๊ธ€์ˆ˜์ •

๋Œ“๊ธ€ ์‚ญ์ œ

๋Œ“๊ธ€์‚ญ์ œ

๊ฒ€์ƒ‰

๊ฒ€์ƒ‰

์ข‹์•„์š”, ๋ถ๋งˆํฌ -1

์ข‹์•„์š”๋ถ๋งˆํฌ1

์ข‹์•„์š”, ๋ถ๋งˆํฌ -2

์ข‹์•„์š”๋ถ๋งˆํฌ2

Hot Contents

HotContents


7. ์‹œ์Šคํ…œ ํ†ตํ•ฉ

7-1. CI/CD ๊ณ„ํš์„œ

CICDBackend CICDFront

7-2. CI/CD ๊ฒฐ๊ณผ์„œ

7-2-1. Backend CI/CD ๊ฒฐ๊ณผ์„œ

BackendCI BackendCD

7-2-2. Frontend CI/CD ๊ฒฐ๊ณผ์„œ

FrontendCI FrontendCD

7-3. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์„œ

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์„œ