Skip to content

๐ŸŽฌ ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ์— ๋งž์ถฐ ์˜ํ™”๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค [์šฐ์ฃผ๋ผ์ดํฌ] ์ž…๋‹ˆ๋‹ค.

Notifications You must be signed in to change notification settings

BackEndSchoolPlus3th/jupiter-back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์šฐ์ฃผ๋ผ์ดํฌ๐ŸŒŒ

ํ”„๋กœ์ ํŠธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

image

๋ฐฐํฌ๋งํฌ : ๋งํฌ
๋…ธ์…˜ํŽ˜์ด์ง€ : ๋งํฌ
์‹œ์—ฐ ์˜์ƒ : ๋งํฌ


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

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

์ฐธ๊ณ  ์‚ฌ์ดํŠธ(์™“์ฑ ํ”ผ๋””์•„): ๋งํฌ

ํ”„๋กœ์ ํŠธ ๋ชฉ์ 

  1. ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜๋ฅผ ์ด์šฉํ•œ ๊ฒ€์ƒ‰ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค ๊ฐœ๋ฐœ
  2. Open API๋ฅผ ์ด์šฉํ•œ ์ฑ—๋ด‡ ๋ฐ ๋‹ค์–‘ํ•œ ์˜ํ™” ๋ฐ์ดํ„ฐ ๋ˆ„์ 
  3. JWT๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๋ฐฐ๊ฒฝ

ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋œ ์ด์œ ์™€ ํ˜„์žฌ ๋ฌธ์ œ์ 

  1. ์Ÿ์•„์ง€๋Š” ์ปจํ…์ธ  ์ค‘ ๋‚ด๊ฐ€ ์ข‹์•„ํ•  ๋งŒํ•œ, ๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ์ฝ˜ํ…์ธ ๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ค์›€.
  2. ์˜ํ™”์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•„์š”์„ฑ์„ ๋А๋‚Œ.
  3. ์ทจํ–ฅ์— ๋งž๋Š” ๋‹ค๋ฅธ ๋งค์ฒด์˜ ์ฝ˜ํ…์ธ ๋„ ์ถ”์ฒœ ๋ฐ›๊ณ  ์‹ถ์Œ.

ํ”„๋กœ์ ํŠธ ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์—…๋ฌด ๋ถ„๋‹ด

์†์„œ์—ฐ(ํŒ€์žฅ) ๊น€์†Œ์˜ ๊น€๊ทœ์ผ ๋ฐฉ๋Œ€ํ˜ ์ตœ์ œ์ธ
ํšŒ์› ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ์„œ๋ฒ„ ๋ฐฐํฌ ์˜ํ™” ์‹œ๋ฆฌ์ฆˆ ์ถ”์ฒœ ์˜ํ™” ๋ฆฌ๋ทฐ, ์ƒ์„ธ ์ฑ„ํŒ…, ์ฑ—๋ด‡ ์˜ํ™” ๊ฒ€์ƒ‰

๊ธฐ์ˆ ์Šคํƒ

BackEnd

  • Spring Boot 3.3.1, JAVA 23, JPA, Spring Security, JWT
  • MySQL8.0, MongoDB 8.0.4
  • Elasticsearch, logstash, kibana

FrontEnd

  • React
  • vite
  • Tailwind

Infra

  • AWS EC2
  • Naver Cloud Platform
  • terraform
  • vercel
  • Github Action
  • Docker

Tool

  • Intellij, Github, Visual Studio Code

์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ

๋ฐฐํฌ ์•„ํ‚คํ…์ฒ˜

แ„‹แ…ตแ†ซแ„‘แ…ณแ„…แ…ก:แ„‡แ…ขแ„‘แ…ฉ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ

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

ํšŒ์›

  • ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ,ํšŒ์›๊ฐ€์ž…
    • JWT, Spring Security๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ ๊ตฌํ˜„

์ถ”์ฒœ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์žฅ๋ฅด์— ๋”ฐ๋ผ ์˜ํ™” ์ถ”์ฒœ
    • Elasticsearch index์™€ ๊ฒ€์ƒ‰๋ฌธ ์„ค๊ณ„

๊ฒ€์ƒ‰

  • ์˜ํ™” ์ œ๋ชฉ, ๊ฐ๋…์„ ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰
    • nori, ์—”๊ทธ๋žจ ๋ถ„์„๊ธฐ ์ ์šฉ

์˜ํ™” ์ƒ์„ธ

  • ์˜ํ™” ์ƒ์„ธ ์ •๋ณด, ๋ฆฌ๋ทฐ ์ž‘์„ฑ
    • ํšŒ์›๋งŒ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„
    • ๋™์˜์ƒ ๋งํฌ๋ฅผ ํ†ตํ•ด ์˜ˆ๊ณ ํŽธ ์กฐํšŒ ๊ฐ€๋Šฅ

์ฑ—๋ด‡

  • ์˜ํ™” ์žฅ๋ฅด ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ผ ์˜ํ™” ์ถ”์ฒœ
    • OpenAI ํ™œ์šฉ

์˜์‚ฌ ๊ฒฐ์ • ์‚ฌํ•ญ

  1. MongoDB ์‚ฌ์šฉ์˜ ์ ํ•ฉ์„ฑ ์ด์Šˆ ๋ฐœ์ƒ ๊ณผ์ •

    • ํ”„๋กœ์ ํŠธ ๊ธฐํš ์ค‘ DB ์„ ํƒ ๊ณผ์ •์—์„œ ์ด์Šˆ ๋ฐœ์ƒ
    • ํŒ€์› ๋ชจ๋‘ NoSQL ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•˜์—ฌ ์ด์Šˆ ๋ฐœ์ƒ

    ํ•™์Šต ๋‚ด์šฉ

    • NoSQL์˜ ์ข…๋ฅ˜ ๋ฐ ์žฅ๋‹จ์  ( ๋ฌธ์„œ ์ง€ํ–ฅ, key-value store, column-fammily store, ๊ทธ๋ž˜ํ”„ )
    • ์Šคํ”„๋ง - MongoDB ์—ฐ๊ฒฐ ์„ค์ • ๋ฐ ์‚ฌ์šฉ

    ์„ ํƒ ์ด์œ 

    • userId๋ฅผ ํ†ตํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ด์ „ ๋Œ€ํ™”๋ฅผ ์ œ๊ณต
    • ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์ด์šฉ์ž๊ฐ€ ๋‹ค์ˆ˜๊ฐ€ ๋  ๊ฒฝ์šฐ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋˜์–ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด NoSQL์„ ์‚ฌ์šฉ
    • NoSQL ์ค‘ MongoDB(userId ์ธ๋ฑ์Šค)์™€ Redis(userId key)๋ฅผ ๊ณ ๋ฏผ
    • ๊ตฌํ˜„ ๊ธฐ๋Šฅ์ค‘ ์ฑ—๋ด‡๊ณผ์˜ ํ†ต์‹ ๊ณผ์ •์—์„œ TMDB API์—์„œ ๊ฐ€์ ธ์˜จ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ธ๋ฉ”๋ชจ๋ฆฌ ํ˜•ํƒœ๋กœ Redis๋Š” ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด DB๊ฐ€ ์‚ญ์ œ๋˜๊ธฐ ๋•Œ๋ฌธ์— MongoDB๋ฅผ ์„ ํƒ
  2. Session vs Cookie ์„ ํƒ ์ด์œ 

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

About

๐ŸŽฌ ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ์— ๋งž์ถฐ ์˜ํ™”๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค [์šฐ์ฃผ๋ผ์ดํฌ] ์ž…๋‹ˆ๋‹ค.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5