Skip to content

Codeterian/Back-end

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

311 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฅ• CodeTerian

๋ถ„๋ฅ˜ ๋‚ด์šฉ
์ฃผ์ œ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋น„์Šค
ํŒ€์› ๊ตฌ์„ฑ ๐Ÿ‘‘ ๊น€์ข…๊ทœ ์ด์œ ๋นˆ ๋ฐฑ์ง€์—ฐ
๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ 2024.09.24 ~ 2024.10.25
API ๋ช…์„ธ์„œ ๐Ÿ”— API ๋ช…์„ธ์„œ
ํ…Œ์ด๋ธ” ๋ช…์„ธ์„œ ๐Ÿ”— ํ…Œ์ด๋ธ” ๋ช…์„ธ์„œ

๐ŸŽซ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •ํ™•ํ•˜๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ํ‹ฐ์ผ“ ์˜ˆ๋งค ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” MSA๊ธฐ๋ฐ˜์˜ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค.

๐Ÿฅ… ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • MSA ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌ
  • Elasticsearch๋ฅผ ํ™œ์šฉํ•œ ๋น ๋ฅธ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ๋Œ€๊ธฐ์—ด ๊ตฌํ˜„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ ๊ณผ๋ถ€ํ™”๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์˜ˆ๋งค ๊ณผ์ •์˜ ์‘๋‹ต์„ฑ์„ ํ–ฅ์ƒ

๐Ÿšง ์ธํ”„๋ผ ์„ค๊ณ„๋„

แ„‹แ…ตแ†ซแ„‘แ…ณแ„…แ…ก

๐Ÿ“ ERD

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-10-23 แ„‹แ…ฉแ„’แ…ฎ 12 15 36

๐Ÿ”ง ์ฃผ์š” ๊ธฐ๋Šฅ

1. Elasticsearch๋ฅผ ํ†ตํ•œ ๊ณต์—ฐ ๊ฒ€์ƒ‰

  • ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ :
    • ์‚ฌ์šฉ์ž๋Š” ๊ฒ€์ƒ‰์ฐฝ์— ์›ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ณต์—ฐ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ :
    • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ๊ณต์—ฐ ์ œ๋ชฉ, ๊ณต์—ฐ ์„ค๋ช…, ๊ณต์—ฐ ์œ„์น˜์—์„œ ์œ ์‚ฌํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
    • ์ œ๋ชฉ ํ•„๋“œ๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌ๋ฐ›์•„, ์ œ๋ชฉ๊ณผ์˜ ์ผ์น˜ ์—ฌ๋ถ€๊ฐ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ :
    • ๊ธฐ๋ณธ ํŽ˜์ด์ง€ ์‚ฌ์ด์ฆŒ 10์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด, ํ•œ ํŽ˜์ด์ง€์— ์ตœ๋Œ€ 10๊ฐœ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž๋Š” ํŽ˜์ด์ง€๋ฅผ ์ „ํ™˜ํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ฃผ๋ฌธ -> ๊ฒฐ์ œ ์‹œ์Šคํ…œ

  • Kafka๋ฅผ ํ™œ์šฉํ•ด ๋น„๋™๊ธฐ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ
  • ์™ธ๋ถ€ ๊ฒฐ์ œ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ๊ฒฐ์ œ ํ…Œ์ŠคํŠธ

3.๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ

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

๐Ÿ’ป ์ ์šฉ ๊ธฐ์ˆ 

โ–ก Kafka

๋Œ€์šฉ๋Ÿ‰์˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์•ˆ์ •์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ๊ฐ„์˜ ๋น„๋™๊ธฐ ํ†ต์‹ ๊ณผ ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

โ–ก Redis

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

โ–ก Elasticsearch

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ณ , ๋กœ๊ทธ ๋ถ„์„ ๋ฐ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์— ์ตœ์ ํ™”๋œ ๊ฒ€์ƒ‰ ์—”์ง„์œผ๋กœ, ๊ณต์—ฐ ๊ฒ€์ƒ‰์„ ํ•˜๋Š”๋ฐ ์žˆ์–ด ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ๊ณผ ๊ณ ์„ฑ๋Šฅ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

โ–ก WebSocket

HTTP ํ†ต์‹ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ง€์†์ ์ธ ์š”์ฒญ/์‘๋‹ต ๋น„์šฉ์„ ์ค„์ด๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋Œ€๊ธฐ์—ด ์ˆœ์„œ ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ง€์†์ ์ธ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ, ๋Œ€๊ธฐ์—ด ์ƒํƒœ ๋ณ€ํ™”๋‚˜ ์•Œ๋ฆผ์„ ์ง€์—ฐ ์—†์ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • Backend Java Spring Boot Spring Security Spring JPA JWT Gradle Elasticsearch Kafka

  • DB postgresql redis

  • Architecture Microservices Architecture API Gateway Docker

  • Tools Github intellij IDE Postman Notion

  • Monitoring grafana prometheus

  • Test apachejmeter

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages