Skip to content

tmdcksdl/Team5_Project

Repository files navigation

๐Ÿ›๏ธ ๊นกํ†ต์‹œ์žฅ ์ด์ปค๋จธ์Šค

๊นกํ†ต์‹œ์žฅ ์ด์ปค๋จธ์Šค๋Š” ๋ถ€์‚ฐ ๊นกํ†ต์‹œ์žฅ์˜ ๋‹ค์–‘ํ•œ ๋นˆํ‹ฐ์ง€ ์˜๋ฅ˜๋ฅผ ์˜จ๋ผ์ธ์—์„œ๋„ ์ €๋ ดํ•˜๊ฒŒ ํŒ๋งคํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์ถ•ํ•œ ์ด์ปค๋จธ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.


๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ํ•ต์‹ฌ ๋ชฉํ‘œ

๐Ÿš€ ์บ์‹ฑ ์ตœ์ ํ™”

  • Redis ๊ธฐ๋ฐ˜ ์บ์‹ฑ์„ ์ ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ž์ฃผ ์š”์ฒญ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

โšก ์ฟผ๋ฆฌ ์ตœ์ ํ™”

  • ์ด์ปค๋จธ์Šค ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ์‚ฌ์šฉ์ž๋“ค์ด ์ž์ฃผ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ฟผ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•˜์—ฌ ์‘๋‹ต ์†๋„๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”„ ์šด์˜ ๋ฐ ๋ฐฐํฌ ํšจ์œจํ™”

  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋˜๋„๋ก ์„ค์ •ํ•ด ์šด์˜์˜ ํŽธ์˜์„ฑ์„ ๋†’์ด๊ณ , ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

KEY SUMMARY

๐Ÿš€ ์„ฑ๋Šฅ ๊ฐœ์„ : ์‹ค์‹œ๊ฐ„ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ๋ชฉ๋ก ์กฐํšŒ, Redis ๋„์ž…์œผ๋กœ ์•ฝ 93.75% ์„ฑ๋Šฅ ํ–ฅ์ƒ

โœ๏ธ ํ•œ์ค„ ์š”์•ฝ

  • Redis ๋„์ž…์œผ๋กœ ๊ธฐ์กด DB ์กฐํšŒ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋จ
    • DB์—์„œ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ ์‹œ ํ‰๊ท  320ms
    • Redis์—์„œ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ ์‹œ ํ‰๊ท  20ms
    • ์„ฑ๋Šฅ ์•ฝ 93.75% ํ–ฅ์ƒ, ์‘๋‹ต ์†๋„ ์•ฝ 13๋ฐฐ ํ–ฅ์ƒ

๐Ÿ” ๋„์ž… ๋ฐฐ๊ฒฝ

  • ์‚ฌ์šฉ์ž๋“ค์ด ๊ฒ€์ƒ‰ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์ˆœ์œ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•จ
  • ๊ธฐ์กด ๋ฐฉ์‹(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ์กฐํšŒ)์—์„œ๋Š” ๊ฒ€์ƒ‰์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งค๋ฒˆ DB์—์„œ ์กฐํšŒํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒ
  • Redis๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ €์žฅ ๋ฐ ์กฐํšŒํ•˜๋ฉด ํ›จ์”ฌ ๋น ๋ฅผ ๊ฒƒ์ด๋ผ ํŒ๋‹จ

๐Ÿ›  ๊ธฐ์ˆ ์  ์„ ํƒ์ง€

  • ๊ธฐ์กด DB ์กฐํšŒ ๋ฐฉ์‹
    • ์žฅ์ : ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€๊ฐ€ ์šฉ์ดํ•จ
    • ๋‹จ์ : ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์„ ๊ฒฝ์šฐ ๋ถ€ํ•˜๊ฐ€ ์ปค์ง€๊ณ  ์‘๋‹ต ์†๋„๊ฐ€ ๋Š๋ ค์ง
  • Redis ๊ธฐ๋ฐ˜ ์บ์‹ฑ ๋ฐฉ์‹ (์ฑ„ํƒ)
    • ์žฅ์ : ๊ฒ€์ƒ‰์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, DB ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ฐ€๋Šฅ
    • ๋‹จ์ : ์ถ”๊ฐ€์ ์ธ ์บ์‹ฑ ์ „๋žต์ด ํ•„์š”

๐Ÿš€ ์„ฑ๋Šฅ ๊ฐœ์„ : ๊ฐ€๊ฒฉ ๋ฒ”์œ„ ๋ณ„ ์ƒํ’ˆ ์กฐํšŒ, ์ฟผ๋ฆฌ ์ตœ์ ํ™”๋กœ ์•ฝ 2๋ฐฐ ํ–ฅ์ƒ

โœ๏ธ ํ•œ์ค„ ์š”์•ฝ

  • B+Tree ์ธ๋ฑ์Šค ์ ์šฉ์œผ๋กœ ๊ฐ€๊ฒฉ ๋ฒ”์œ„ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ์ตœ์ ํ™”, Slice ๊ฐ์ฒด ํ™œ์šฉ์œผ๋กœ ํŽ˜์ด์ง• ํšจ์œจ ๊ฐœ์„ 

๐Ÿ›  ๊ธฐ์ˆ ์  ์„ ํƒ์ง€

  • ๊ธฐ์กด QueryDSL ๋ฐฉ์‹
    • Full Scan ๋ฐœ์ƒ: ์กฐ๊ฑด ๊ฒ€์ƒ‰ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜
    • Count ์—ฐ์‚ฐ ๋ถ€๋‹ด: ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ํ•ญ์ƒ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ
  • ์ตœ์ ํ™” (B+Tree Index + Slice ํŽ˜์ด์ง• ์ ์šฉ)
    • B+Tree ์ธ๋ฑ์Šค ์ ์šฉ
      • ํŠธ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๋…ธ๋“œ ํƒ์ƒ‰ ๊ฐ์†Œ
      • ๊ฐ€๊ฒฉ ๋ฒ”์œ„ ๊ฒ€์ƒ‰ ์‹œ ๋น ๋ฅธ ํƒ์ƒ‰ ๊ฐ€๋Šฅ
    • Slice ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง• ์ ์šฉ
      • ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ count ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•„ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐฉ์ง€
      • ์ด์ „ ํŽ˜์ด์ง€ ์ •๋ณด๋งŒ ์œ ์ง€ํ•˜๋ฉด์„œ ๋‹ค์Œ ํŽ˜์ด์ง€ ํƒ์ƒ‰ ๊ฐ€๋Šฅ, ํŽ˜์ด์ง• ๋น„์šฉ ์ ˆ๊ฐ

๐Ÿš€ ์„œ๋ฒ„ ๋ฐฐํฌ: AWS๋ฅผ ํ™œ์šฉํ•œ ์„œ๋ฒ„ ๋ฐฐํฌ์™€ Github Actions CI/CD ๊ตฌ์ถ•

โœ๏ธ ํ•œ์ค„ ์š”์•ฝ

  • ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ž๋™ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ, AWS ์„œ๋ฒ„ ๋ฐฐํฌ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•

๐Ÿ›  ๊ธฐ์ˆ ์  ์„ ํƒ์ง€

  • ์ˆ˜๋™ ๋ฐฐํฌ (๊ธฐ์กด ๋ฐฉ์‹)
    • ๋นŒ๋“œ, ์—…๋กœ๋“œ, ๋ฐฐํฌ ๋“ฑ ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์ง„ํ–‰
    • ๋ฐฐํฌ ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ , ๋ฐฐํฌ ํ›„ ์ˆ˜๋™ ํ™•์ธ ํ•„์š”
    • ๋ฐฐํฌ ๋‹ด๋‹น์ž๊ฐ€ ํ•„์š”ํ•˜์—ฌ ํ˜‘์—… ํšจ์œจ์„ฑ์ด ๋‚ฎ์Œ
  • CI/CD ๊ตฌ์ถ• (๊ฐœ์„  ๋ฐฉ์‹)
    • ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

      ๐Ÿ“Œ CI (Continuous Integration, ์ง€์†์  ํ†ตํ•ฉ)

      1. develop ๋ฐ master ๋ธŒ๋žœ์น˜์— pull request์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰
        • ํ…Œ์ŠคํŠธ ์„ฑ๊ณต ์‹œ โ†’ ์ž๋™์œผ๋กœ merge๋ฅผ ์ˆ˜ํ–‰ (Github Settings)
        • ํ…Œ์ŠคํŠธ ์‹คํŒจ ์‹œ โ†’ ์ˆ˜๋™์œผ๋กœ๋„ mergeํ•  ์ˆ˜ ์—†๋„๋ก ์ œํ•œ (Github Settings)
      2. develop ๋ธŒ๋žœ์น˜์™€ master ๋ธŒ๋žœ์น˜์— push๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰
      3. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ PR ์ฝ”๋ฉ˜ํŠธ๋กœ ์ถœ๋ ฅ

      ๐Ÿ“Œ CD (Continuous Deployment, ์ง€์†์  ๋ฐฐํฌ)

      1. master ๋ธŒ๋žœ์น˜์—์„œ ๋นŒ๋“œ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ž๋™ ๋ฐฐํฌ
        • jar ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ AWS Elastic Beanstalk์— ๋ฐฐํฌ
      2. GitHub Actions ํ”Œ๋žซํผ ์ด์šฉ
        • GitHub์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ๊ฐ„ํŽธํ•œ ์„ค์ • ๊ฐ€๋Šฅ
        • ํ™•์žฅ์„ฑ ๋›ฐ์–ด๋‚˜ ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ ์ง€์›
      3. ์ฝ”๋“œ ๋ณ€๊ฒฝ๋งˆ๋‹ค ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์‹คํ–‰
        • ํ˜‘์—… ํšจ์œจ์„ฑ ๋Œ€ํญ ์ฆ๊ฐ€

๐Ÿ› ๏ธ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…: SQLSyntaxErrorException

๐Ÿ” ๋ฐฐ๊ฒฝ

  • Soft Delete ์ ์šฉ์„ ์œ„ํ•ด @Where ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ is_deleted = false์ธ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜๋„๋ก ์„ค์ •
  • @SQLDelete ์–ด๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œ ์š”์ฒญ ์‹œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ๋Œ€์‹  Soft Delete ์ฒ˜๋ฆฌ๋˜๋„๋ก SQL ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์„ฑ

โš ๏ธ ๋ฌธ์ œ ๋ฐœ์ƒ

  • SQL ์‹คํ–‰ ์ค‘ SQLSyntaxErrorException ๋ฐœ์ƒ
  • ์›์ธ ๋ถ„์„ ๊ฒฐ๊ณผ:
    • ์‹ค์ œ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋ช…: id
    • ์ž˜๋ชป๋œ SQL ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉํ•œ ์ปฌ๋Ÿผ๋ช…: member_id
    • member_id ์ปฌ๋Ÿผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•„ SQL ๊ตฌ๋ฌธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

๐ŸŽฏ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  • ์ž˜๋ชป๋œ ์ปฌ๋Ÿผ๋ช… member_id๋ฅผ ์‹ค์ œ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋ช… id๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ Soft Delete๊ฐ€ ๋™์ž‘ํ•˜๋„๋ก ์ˆ˜์ •

๐Ÿ› ๏ธ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…: AWS ์„œ๋ฒ„ 502 Bad Gateway

๐Ÿ” ๋ฐฐ๊ฒฝ

  • ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— AWS Elastic Beanstalk ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜๋™ ๋ฐฐํฌํ•˜๊ณ , Postman์œผ๋กœ API ํ…Œ์ŠคํŠธ ์ง„ํ–‰

โš ๏ธ ๋ฌธ์ œ ๋ฐœ์ƒ

  • API ์š”์ฒญ ์‹œ 502 Bad Gateway ์‘๋‹ต ๋ฐœ์ƒ
  • ์›์ธ ๋ถ„์„ ๊ฒฐ๊ณผ:
    • ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹  ๊ณผ์ •์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์€ ์‘๋‹ต์ด ๋ฐ˜ํ™˜๋จ
    • Elastic Beanstalk์˜ ๊ธฐ๋ณธ ์„ค์ •์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํฌํŠธ 5000์—์„œ ์‹คํ–‰๋จ
    • Elastic Beanstalk์˜ ๊ธฐ๋ณธ ํ™˜๊ฒฝ์—์„œ๋Š” NginX๊ฐ€ Reverse Proxy๋กœ ์‚ฌ์šฉ, ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ”„๋ก์‹œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์š”์ฒญ์„ ํฌํŠธ 5000์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•จ

๐ŸŽฏ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  • Elastic Beanstalk ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ ์†์„ฑ์—์„œ SERVER_PORT ์˜ ๊ฐ’์„ 5000์œผ๋กœ ์„ค์ •
  • NginX์™€ ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํฌํŠธ ์ผ์น˜๋ฅผ ๋ณด์žฅํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •

๐Ÿ—๏ธ ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜ & ์ ์šฉ ๊ธฐ์ˆ 

CI/CD : GitHub Actions๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž๋™ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

AWS Elastic Beanstalk : ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌ ๋ฐ ์šด์˜

Redis : ๊ฒ€์ƒ‰์–ด ์บ์‹ฑ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ์šฉ

github Actions : CI/CD ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์„ฑ

RDS : AWS RDS๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๋ฐ ์šด์˜ ์•ˆ์ •์„ฑ ํ™•๋ณด

MySQL : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํŠธ๋žœ์žญ์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€


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

๐Ÿ” ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ: Redis ์บ์‹ฑ ํ™œ์šฉ

  • Redis ์บ์‹ฑ์„ ์ ์šฉํ•˜์—ฌ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ๊ธฐ์กด DB ์กฐํšŒ ๋ฐฉ์‹๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€ ์‹œ์—๋„ ์•ˆ์ •์ ์ธ ๊ฒ€์ƒ‰์–ด ์กฐํšŒ ๊ฐ€๋Šฅ

๐Ÿ” ๊ฐ€๊ฒฉ ๋ฒ”์œ„ ๋ณ„ ์ƒํ’ˆ ์กฐํšŒ: ์ฟผ๋ฆฌ ์ตœ์ ํ™”

  • B+Tree Index์™€ QueryDSL์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ€๊ฒฉ ๋ฒ”์œ„ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • Slice ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง• ์ ์šฉ์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ๋ฐฉ์ง€ ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ 
  • ๋น ๋ฅธ ๊ฐ€๊ฒฉ๋ณ„ ์ƒํ’ˆ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ, ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€ ์‹œ์—๋„ ์›ํ™œํ•œ ์กฐํšŒ ์„ฑ๋Šฅ ์œ ์ง€

์—ญํ•  ๋ถ„๋‹ด ๋ฐ ํ˜‘์—… ๋ฐฉ์‹

ํŒ€ ๊ตฌ์„ฑ ๋ฐ ๋‹ด๋‹น ์—…๋ฌด

ํ”„๋กœํ•„ ์‚ฌ์ง„

๐Ÿ‘‘ ์ด์Šน์ฐฌ

- ํšŒ์› ๊ด€๋ฆฌ: ํšŒ์› CRUD ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

- AOP ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ์ฒดํฌ ์ ์šฉ

- Redis ์บ์‹ฑ ์ ์šฉ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”

ํ”„๋กœํ•„ ์‚ฌ์ง„

๊ณ ์ˆ˜์—ฐ

- ์ƒํ’ˆ ์ข‹์•„์š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

- AWS ์ธํ”„๋ผ ๊ตฌ์ถ• ๋ฐ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์„ค์ •

ํ”„๋กœํ•„ ์‚ฌ์ง„

์ด์ˆ˜์ง„

- ์ฃผ๋ฌธ ๊ด€๋ฆฌ: ์ฃผ๋ฌธ CRUD ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

- ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

- ์ฟผ๋ฆฌ ์ตœ์ ํ™” ์ ์šฉ์œผ๋กœ ์„ฑ๋Šฅ ๊ฐœ์„ 

ํ”„๋กœํ•„ ์‚ฌ์ง„

ํ™ฉ์„œํ˜ธ

- ๊ฐ€๊ฒŒ ๋ฐ ์ƒํ’ˆ ๊ด€๋ฆฌ: ๊ฐ€๊ฒŒ, ์ƒํ’ˆ CRUD ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

- ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

- Redis ์บ์‹ฑ ์ ์šฉ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง€์›

๐Ÿ›  ํ˜‘์—… ๋ฐฉ์‹

  • ์ •๊ธฐ์ ์ธ ๋ฏธํŒ…์œผ๋กœ ์ง„ํ–‰ ์ƒํ™ฉ ๊ณต์œ  ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ
  • ํŒ€ ์Šฌ๋ž™์„ ํ†ตํ•ด ์ง„ํ–‰ ์ƒํ™ฉ ๊ณต์œ 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages