Skip to content

Gimini-3/paas-paas-server

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

159 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ  ์˜จ๊ฐ€: ์˜จ ์„ธ์ƒ ๊ฐ€์กฑ

Notion Page

๐Ÿ“‹ ๋ชฉ์ฐจ


๐Ÿ“– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์–ธ์–ด์™€ ๋ฌธํ™”์˜ ์ฐจ์ด๋Š” ๋•Œ๋กœ๋Š” ์ •๋ณด์˜ ๋ฒฝ์ด ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๋‹ค๋ฌธํ™” ๊ฐ€์ •์˜ ๊ฒฝ์šฐ, ํ•„์š”ํ•œ ํ–‰์ • ์ ˆ์ฐจ๋‚˜ ๋ณต์ง€ ์ •๋ณด๋ฅผ ์ฐพ๋”๋ผ๋„ ๋‚ฏ์„  ์–ธ์–ด์™€ ๋ณต์žกํ•œ ๋ฌธ์„œ ํ˜•์‹ ๋•Œ๋ฌธ์— ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์ƒํ™ฉ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฌธํ™” ๊ฐ€์ •์„ ์œ„ํ•œ AI ์ •๋ณด ์ง€์› ํ”Œ๋žซํผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๊ตญ์–ด๋กœ ์งˆ๋ฌธํ•˜๋ฉด AI๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฒˆ์—ญยท์ดํ•ดํ•˜๊ณ , ์ •๋ถ€ ๋ฐ ๊ณต๊ณต ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •ํ™•ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ณต๋ฌธ์„œ๋‚˜ ๊ฐ€์ •ํ†ต์‹ ๋ฌธ, ์•ˆ๋‚ด๋ฌธ ๋“ฑ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ํ•œ๊ตญ์–ด ๋ฌธ์„œ์™€ ์ด๋ฏธ์ง€๋ฅผ AI๊ฐ€ ์ธ์‹ํ•ด ์‰ฝ๊ณ  ์นœ์ ˆํ•œ ์–ธ์–ด๋กœ ํ•ด์„ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฌธํ™” ๊ฐ€์ •์ด ํ•œ๊ตญ ์‚ฌํšŒ์—์„œ ์–ธ์–ด์˜ ์žฅ๋ฒฝ ์—†์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ , ์Šค์Šค๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํž˜์„ ๊ฐ€์ง€๋Š” ๊ฒƒ. ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿค– AI ์ฑ„ํŒ…: ์Œ์„ฑ/ํ…์ŠคํŠธ ๋‹ค๊ตญ์–ด ์งˆ์˜์‘๋‹ต์œผ๋กœ 20+ ๊ณต๊ณต๊ธฐ๊ด€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ถœ์ฒ˜ ๊ธฐ๋ฐ˜ ๋‹ต๋ณ€ ์ œ๊ณต
  • ๐Ÿ“„ ๋ฌธ์„œ ์š”์•ฝ: ๊ณต๋ฌธ์„œยท๊ฐ€์ •ํ†ต์‹ ๋ฌธ์„ OCR๋กœ ์ฝ๊ณ  ๊ฐœ์š”/ํ•  ์ผ/์ผ์ •/์ฃผ์˜์‚ฌํ•ญ์„ ์ž๋™ ์ •๋ฆฌ
  • ๐ŸŒ ๋‹ค๊ตญ์–ด ์ง€์›: ์„ ํ˜ธ ์–ธ์–ด ์„ค์ • ์‹œ ๋ชจ๋“  UI์™€ AI ์‘๋‹ต์ด ์ž๋™ ๋ฒˆ์—ญ๋˜์–ด ์ œ๊ณต
  • ๐Ÿ” ์ง€๋Šฅํ˜• ๊ฒ€์ƒ‰: Gemini ์˜๋„ ๋ถ„์„๊ณผ Vertex AI Search๋กœ ์ •ํ™•ํ•œ ์ •๋ณด ํƒ์ƒ‰

โš™๏ธ ๊ธฐ์ˆ  ์Šคํƒ

๋ถ„๋ฅ˜ ๊ธฐ์ˆ  ์Šคํƒ
Backend Framework Java Spring Boot Spring WebFlux Spring Security JWT
Infrastructure Kubernetes Docker Nginx
DevOps NCP SourceCommit NCP SourceBuild NCP SourceDeploy NCP SourcePipeline
Database & Storage MySQL Redis Google Firestore Naver Object Storage
AI Vertex AI Search Google Gemini AI OpenAI
Open API Naver CLOVA OCR Naver CSR Naver Papago
Development Tools IntelliJ IDEA Swagger Notion GitHub

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

MSA

image
Kubernetes ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ MSA. Ingress โ†’ Gateway โ†’ Services ๊ตฌ์กฐ.


  • ๋„คํŠธ์›Œํ‚น/๋ผ์šฐํŒ…: Ingress โ†’ Gateway โ†’ ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค
  • ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ: MySQL, Redis, Firestore (PV/PVC ์˜์† ๊ด€๋ฆฌ)
  • ๋ฐฐํฌ: NCP SourceCommit โ†’ SourceBuild โ†’ SourceDeploy โ†’ SourcePipeline
  • ๊ฐ ๋ชจ๋“ˆ ๋…๋ฆฝ ๋นŒ๋“œ/๋ฐฐํฌ/๋กค๋ฐฑ ์ง€์›

CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋ฐ ํ˜•์ƒ ๊ด€๋ฆฌ

image

  • SourceCommit : Git ๊ธฐ๋ฐ˜ ํ˜•์ƒ ๊ด€๋ฆฌ๋กœ ์ฝ”๋“œ ๋ฒ„์ „ ๋ฐ ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌ
  • SourceBuild : ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  Container Registry์— ์ €์žฅ
  • SourceDeploy : Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž๋™ ๋ฐฐํฌํ•˜๋ฉฐ, Rolling Update๋กœ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์‹คํ˜„
  • SourcePipeline : ์œ„ ๊ณผ์ •๋“ค์„ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์—ฐ๊ฒฐํ•ด ์ปค๋ฐ‹๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ์ž๋™ํ™”

์ฑ„ํŒ…

image

  1. ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ฑ„ํŒ… ์„œ๋ฒ„๋กœ ์š”์ฒญ ์ „๋‹ฌ
  2. ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ Clova STT๋กœ ํ…์ŠคํŠธ ๋ณ€ํ™˜
  3. Papago๋กœ ์‚ฌ์šฉ์ž ์–ธ์–ด โ†’ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ
  4. Gemini๊ฐ€ ์งˆ๋ฌธ ์˜๋„ ํŒŒ์•… ๋ฐ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ ์ถ”์ถœ
  5. Vertex AI Search๋กœ ๊ด€๋ จ ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰
  6. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ ํ”„๋กฌํ”„ํŠธ๋ฅผ Gemini์— ์ „๋‹ฌํ•ด ๋‹ต๋ณ€ ์ƒ์„ฑ
  7. Papago๋กœ ํ•œ๊ตญ์–ด โ†’ ์‚ฌ์šฉ์ž ์–ธ์–ด ๋ฒˆ์—ญ
  8. ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ Firestore์— ์ €์žฅ
  9. ์ตœ์ข… ์‘๋‹ต์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ

๋ฌธ์„œ ์‹œ์Šคํ…œ

์“ฐ๊ธฐ

image

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์„œ ์š”์•ฝ์„ ์š”์ฒญํ•˜๋ฉด, ์š”์ฒญ์€ ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„(Spring Cloud Gateway)๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ
  2. ์š”์ฒญ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค์— ์˜ํ•ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ๋˜์–ด ๊ฐ€์šฉํ•œ ๋ฌธ์„œ ์‹œ์Šคํ…œ ํŒŒ๋“œ๋กœ ์ „๋‹ฌ
  3. ๋ฌธ์„œ ์‹œ์Šคํ…œ์€ ์—…๋กœ๋“œ๋œ ๋ฌธ์„œ๋ฅผ Object Storage์— ์ €์žฅํ•˜๊ณ , ์ €์žฅ๋œ ๊ฒฝ๋กœ๋ฅผ ์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜
  4. ๋ฌธ์„œ ์ €์žฅ ์™„๋ฃŒ ํ›„ ์š”์•ฝ ์ž‘์—…(Job)์„ Redis์— ๋ฐœํ–‰
  5. Consumer Job์ด Redis์—์„œ ์ž‘์—…์„ ๊ตฌ๋…ํ•˜๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์š”์•ฝ ์ˆ˜ํ–‰
  6. ๋ฌธ์„œ๊ฐ€ ์ด๋ฏธ์ง€ ํ˜•ํƒœ์ผ ๊ฒฝ์šฐ OCR์„ ํ†ตํ•ด ํ…์ŠคํŠธ ์ถ”์ถœ
  7. ์ถ”์ถœ๋œ ํ…์ŠคํŠธ๋ฅผ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์„ ์ ์šฉํ•ด OpenAI API๋กœ ์ „๋‹ฌ, ๊ตฌ์กฐํ™”๋œ ์š”์•ฝ ์ƒ์„ฑ
  8. ์ƒ์„ฑ๋œ ์š”์•ฝ ๊ฒฐ๊ณผ๋ฅผ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ
  9. ์‚ฌ์šฉ์ž๋Š” ๋งˆ์ดํŽ˜์ด์ง€๋‚˜ ๋ฌธ์„œ ๋ชฉ๋ก์„ ํ†ตํ•ด ์š”์•ฝ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒ

์ฝ๊ธฐ

image

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์„œ ์š”์•ฝ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•˜๋ฉด, ์š”์ฒญ์€ ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ฌธ์„œ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ
  2. ๋ฌธ์„œ ์‹œ์Šคํ…œ์€ Redis ์บ์‹œ๋ฅผ ์šฐ์„  ์กฐํšŒํ•˜์—ฌ ์š”์•ฝ ๋ฐ์ดํ„ฐ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
  3. ์บ์‹œ ํžˆํŠธ(Cache Hit) ์‹œ Redis์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰์‹œ ๋ฐ˜ํ™˜
  4. ์บ์‹œ ๋ฏธ์Šค(Cache Miss) ์‹œ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์š”์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ
  5. ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต ํ˜•์‹์œผ๋กœ ๊ฐ€๊ณต
  6. ๋™์‹œ์— Redis ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ (Cache Update)ํ•˜์—ฌ ์ดํ›„ ์š”์ฒญ์— ๋Œ€๋น„
  7. ์ตœ์ข… ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜

๊ฒŒ์ดํŠธ์›จ์ด

image

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ์š”์ฒญ์€ ๊ฒŒ์ดํŠธ์›จ์ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ฉค๋ฒ„ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ
  2. ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์Šคํ…œ์€ ๋กœ๊ทธ์ธ ์š”์ฒญ ์ •๋ณด๋ฅผ ๋ฉค๋ฒ„ ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ
  3. ๋ฉค๋ฒ„ ์‹œ์Šคํ…œ์€ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํšŒ์› ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜์—ฌ ์‚ฌ์šฉ์ž ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
  4. ์กฐํšŒ๋œ ํšŒ์› ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ฆ ์ˆ˜ํ–‰
  5. ๋ฉค๋ฒ„ ์‹œ์Šคํ…œ์ด ๊ฒ€์ฆ ์™„๋ฃŒ ํ›„ JWT ํ† ํฐ ๋ฐœ๊ธ‰
  6. ๋ฐœ๊ธ‰๋œ ํ† ํฐ์ด ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ
  7. ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์Šคํ…œ์€ ํ† ํฐ์„ ์ €์žฅํ•˜๊ณ  ์ดํ›„ ์ธ์ฆ ์š”์ฒญ์— ํ™œ์šฉ
  8. ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์Šคํ…œ์€ ํ† ํฐ ์‘๋‹ต์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜
  9. ์‚ฌ์šฉ์ž๋Š” ํ† ํฐ์„ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋˜๋Š” ์„ธ์…˜์— ์ €์žฅ
  10. ์ดํ›„ API ํ˜ธ์ถœ ์‹œ ํ† ํฐ์„ ํ•จ๊ป˜ ์ „์†กํ•˜์—ฌ ์ธ์ฆ ์š”์ฒญ ์ˆ˜ํ–‰
  11. ๊ฒŒ์ดํŠธ์›จ์ด ์‹œ์Šคํ…œ์€ ์š”์ฒญ ์‹œ ํ† ํฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
  12. ์ธ์ฆ ์™„๋ฃŒ ํ›„ ์š”์ฒญ์€ ์ฑ„ํŒ… ์‹œ์Šคํ…œ ๋“ฑ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋˜์–ด ๊ธฐ๋Šฅ ์ˆ˜ํ–‰

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ ํŒ€

๊น€๊ธฐ๋ฏผ ์ •์ฐฌ๋ฏผ
@gimin0226 @chanmin-00
์ˆญ์‹ค๋Œ€ํ•™๊ต ์†Œํ”„ํŠธ์›จ์–ดํ•™๋ถ€ ์ˆญ์‹ค๋Œ€ํ•™๊ต ์†Œํ”„ํŠธ์›จ์–ดํ•™๋ถ€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 48.5%
  • HTML 24.0%
  • JavaScript 22.4%
  • CSS 5.0%
  • Dockerfile 0.1%