Skip to content
dlrkdms125 edited this page Oct 25, 2024 · 14 revisions

์ง€์‹ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ_Enadu




๐Ÿ“š Enadu ์‚ฌ์ดํŠธ ๋ฐ”๋กœ๊ฐ€๊ธฐ


๐Ÿ“ŒEnadu Website

https://www.enadu.kro.kr


๐ŸŽจ Enadu ์„œ๋น„์Šค ์†Œ๊ฐœ


ํ”„๋กœ์ ํŠธ ๋ฐฐ๊ฒฝ

  • ์ฒด๊ณ„์ ์ธ ์ง€์‹ ๊ด€๋ฆฌ ์„œ๋น„์Šค
  • Wiki + QnA + Blog 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•œ ๊ฐœ๋ฐœ์ž ์ง€์‹ ๊ณต์œ  ํ”Œ๋žซํผ
    ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์™€ ์˜ค๋ฅ˜์— ์ง๋ฉด ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ ๊ฐœ๋ฐœ์ž๋“ค์€ AI, ๋ธ”๋กœ๊ทธ ๋“ฑ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์ง€๋งŒ, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์กด์žฌํ•˜๊ณค ํ•œ๋‹ค.
    ์ด๋Ÿฌํ•œ ์ •๋ณด๋“ค์„ ํ•˜๋‚˜์˜ ์‚ฌ์ดํŠธ์—์„œ ๊ด€๋ฆฌ ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๊ณต์œ ํ•˜๋ฉฐ, ๊ณต์œ ๋œ ์ง€์‹๋“ค์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ์œ„ํ•ด Enadu ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜์˜€๋‹ค.

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

  • 1. WIKI
    ์œ ์ €๋“ค์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณ„ ์ •๋ณด, ์ตœ์‹  ๊ธฐ์ˆ ์— ๊ด€ํ•œ ์ง€์‹์„ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•˜๊ณ , ์ด๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • 2. QnA
    ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง๋ฉดํ•œ ๋ฌธ์ œ์™€ ์—๋Ÿฌ๋ฅผ ์งˆ๋ฌธํ•˜๊ณ , ๋‹ต๋ณ€์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • 3. ErrorArcive
    ๋‹จ์ˆœํžˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ํ•ด๊ฒฐ ๊ณผ์ •์„ ๋ธ”๋กœ๊ทธ ํ˜•ํƒœ๋กœ ์ •๋ฆฌํ•˜๊ณ , ๊ณต์œ ํ•œ๋‹ค.


ํ•ต์‹ฌ ๊ธฐ๋Šฅ

1. Search

<img width="617" alt="image" src="https://github.com/user-attachments/assets/fa399aaf-dbd0-4e43-8cf4-204a329442e1"> <br>
  • ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜๋Š” ์—ญ์ƒ‰์ธ ๋ฐฉ์‹์œผ๋กœ, ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์—ญ์ƒ‰์ธ ๋ฐฉ์‹์€ document๋“ค์ด indexing๋˜์–ด (text, documents)๋ž€ key, value ํ˜•ํƒœ๋กœ mapping ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค
    image
  • ๊ธฐ์กด์˜ db์—์„œ logstash๊ฐ€ 1๋ถ„๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  elastic search์— ์ €์žฅํ•œ๋‹ค

2. Chat

<img width="613" alt="image" src="https://github.com/user-attachments/assets/4e3eb6f1-795a-4bab-980a-4607a6e54f50"> <br>
  • Pub/Sub ๊ตฌ์กฐ
    • ์„œ๋ฒ„ ์ด์ค‘ํ™”๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ๋กœ ์ฑ„ํŒ…์— ์™ธ๋ถ€ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค
    • ๋ฐœํ–‰์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ธŒ๋กœ์ปค์— ๋ณด๋‚ด๋ฉด, ๋ธŒ๋กœ์ปค๊ฐ€ ์ด๋ฅผ ๊ตฌ๋…์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋น„๋™๊ธฐ ํŒจํ„ด์ธ Pub/Sub ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค
      image
  • STOMP ํ”„๋กœํ† ์ฝœ
    • ์›น์†Œ์ผ“ ์œ„์—์„œ pub/sub ์œ„์—์„œ ๋ชจ๋ธ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฌธ์ž ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง• ํ”„๋กœํ† ์ฝœ
      image
  • ์นดํ”„์นด
    • ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค์™€ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ ๋ชจ๋‘ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ , ์ด๊ฒƒ์„ consumer์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
    • ๊ณ ๊ฐ€์šฉ์„ฑ์˜ ์„ค๊ณ„๋ฅผ ๊ฐ€์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ๊ณ , ์žฅ์• ๊ฐ€ ์ƒ๊ฒผ์„๋•Œ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ํฌ์ธํŠธ๊ฐ€ ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•œ Kafka๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.

3. Aop


4. Batch

image

  • ์™ธ๋ถ€ api๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ Spring Batch๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๊ณ , ํ•ด๋‹น ์ž‘์—…์„ Kubernetes์˜ CronJob์„ ํ†ตํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ์„ค์ •ํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์Šคํ”„๋ง ๋ฐฐ์น˜๋Š” ์ž‘์—…ํ•  ๋•Œ ์ฒญํฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์ผ๊ฐ„ ๋žญํ‚น ๋ฐ ์ฃผ๊ฐ„ ๋žญํ‚น
    • AI ๋‹ต๋ณ€ ์‹œ์Šคํ…œ
    • ๋ฏธ๋‹ต๋ณ€ ์งˆ๋ฌธ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ