Skip to content
This repository has been archived by the owner on Apr 26, 2023. It is now read-only.

Latest commit

ย 

History

History
257 lines (205 loc) ยท 11.2 KB

README.md

File metadata and controls

257 lines (205 loc) ยท 11.2 KB

yesaladin_shop

YesAladin Shop์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด์šฉ์— ํ•„์š”ํ•œ API๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์ด์— ์„œ๋น„์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” API Server์ž…๋‹ˆ๋‹ค.

Getting Started

./mvnw spring-boot:run

ERD

แ„‹แ…จแ„‰แ…ณแ„‹แ…กแ†ฏแ„…แ…กแ„ƒแ…ตแ†ซ-แ„‰แ…ญแ„‘แ…ตแ†ผแ„†แ…ฉแ†ฏ-3 2 2

Project Architecture

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-22 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 10 15 46

CI/CD

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-22 แ„‹แ…ฉแ„’แ…ฎ 7 24 08

Test Coverage

  • ๋ชฉํ‘œ : ๋ผ์ธ ์ปค๋ฒ„๋ฆฌ์ง€ 80% ์ด์ƒ (2023.02.27 ๊ธฐ์ค€ 87.11%)
    แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-27 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 1 13 45

Scheduling

  • NHN Dooray!์˜ ์นธ๋ฐ˜ ํ™œ์šฉ

image

Features

  • ํšŒ์› ๊ด€๋ฆฌ
    • ํšŒ์› ๊ฐ€์ž…
      • ์ผ๋ฐ˜ ํšŒ์› ๊ฐ€์ž…
      • OAuth2 ํšŒ์› ๋“ฑ๋ก ์‹œ ์ถ”๊ฐ€ ์ •๋ณด ์ž…๋ ฅ ํ›„ ๋“ฑ๋ก (Member ํ…Œ์ด๋ธ” ๋‹จ์ผํ™”)
    • ํšŒ์› ์ •๋ณด ์ˆ˜์ •
    • ํšŒ์› ํƒˆํ‡ด
    • ํšŒ์› ํ†ต๊ณ„
  • Shop API Server ๋ณด์•ˆ (Co-authored-by: @๊น€ํ™๋Œ€)
    • Shop API Server ๋‚ด Spring Security๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ API ๋ณ„ Method Security ์ ์šฉ
  • Object Storage
    • Object Storage Properties ์„ค์ •
    • ์ธ์ฆ ํ† ํฐ ๋ฐœ๊ธ‰ ๋ฐ ํ† ํฐ ๋งŒ๋ฃŒ ์ „๊นŒ์ง€ Redis ๋‚ด ๋ณด๊ด€
    • Front์—์„œ Object Storage ์ธ์ฆ ํ† ํฐ ์š”์ฒญ ์‹œ Redis ๋‚ด ํ† ํฐ ํš๋“ ํ˜น์€ ๋ฐœ๊ธ‰ํ•˜์—ฌ Front์— ์ „๋‹ฌ
    • Front -> Shop ์œผ๋กœ MultipartFile์„ ์ „๋‹ฌ๋ฐ›์•„ Object Storage ํŒŒ์ผ ์—…๋กœ๋“œ ํ›„ ์—…๋กœ๋“œ ์ •๋ณด๋ฅผ Front์— ์ „๋‹ฌ
  • ํŒŒ์ผ ๊ด€๋ฆฌ
    • DB์— ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์˜ ์ •๋ณด(URL, ์—…๋กœ๋“œ ์‹œ๊ฐ„)์„ ๋“ฑ๋ก ๋ฐ ์กฐํšŒ
  • ์ƒํ’ˆ ๊ด€๋ฆฌ
    • ์ƒํ’ˆ ๋“ฑ๋ก/์ˆ˜์ •/Soft Delete
    • ์ƒํ’ˆ์˜ ํŒ๋งค์—ฌ๋ถ€, ๊ฐ•์ œํ’ˆ์ ˆ์—ฌ๋ถ€, ๋…ธ์ถœ์—ฌ๋ถ€, ์žฌ๊ณ ์ˆ˜๋Ÿ‰ ์ˆ˜์ •
    • ์ƒํ’ˆ ์ œ๋ชฉ, ์ค‘๋ณต์—ฌ๋ถ€, ์ˆ˜๋Ÿ‰ ์กฐํšŒ
    • ์ƒํ’ˆ ์ƒ์„ธ ์กฐํšŒ
    • ์ƒํ’ˆ ์ˆ˜์ •์šฉ ์ •๋ณด ์กฐํšŒ
    • ๊ด€๋ฆฌ์ž์šฉ, ์ผ๋ฐ˜์‚ฌ์šฉ์ž์šฉ Paging ์กฐํšŒ
    • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‚ด ์ƒํ’ˆ์˜ ์ •๋ณด ์กฐํšŒ
    • ์ƒํ’ˆ ์œ ํ˜• ์ „์ฒด ์กฐํšŒ
    • ์ „์ฒด ํ• ์ธ์œจ ์กฐํšŒ/์ˆ˜์ •
  • ์ƒํ’ˆ ์—ฐ๊ด€๊ด€๊ณ„ ๊ด€๋ฆฌ
    • ์ƒํ’ˆ ๊ฐ„ ์—ฐ๊ด€๊ด€๊ณ„ ์ƒ์„ฑ/์‚ญ์ œ
    • ๊ด€๋ฆฌ์ž์šฉ, ์ผ๋ฐ˜์‚ฌ์šฉ์ž์šฉ Paging ์กฐํšŒ
  • ์ถœํŒ์‚ฌ, ์ถœํŒ ๊ด€๋ฆฌ
    • ์ถœํŒ์‚ฌ ๋“ฑ๋ก/์ˆ˜์ •
    • ์ถœํŒ์‚ฌ ๋‹จ๊ฑด ์กฐํšŒ
    • ๊ด€๋ฆฌ์ž์šฉ ์ถœํŒ์‚ฌ Paging ์กฐํšŒ
    • ์ถœํŒ์‚ฌ์™€ ์ƒํ’ˆ ์‚ฌ์ด์˜ ๊ด€๊ณ„(=์ถœํŒ) ๋“ฑ๋ก/์‚ญ์ œ
    • ์ƒํ’ˆ์œผ๋กœ ์ถœํŒ์‚ฌ์™€ ์ƒํ’ˆ ์‚ฌ์ด์˜ ๊ด€๊ณ„(=์ถœํŒ) ์กฐํšŒ
  • ํƒœ๊ทธ, ํƒœ๊ทธ๊ด€๊ณ„ ๊ด€๋ฆฌ
    • ํƒœ๊ทธ ๋“ฑ๋ก/์ˆ˜์ •
    • ํƒœ๊ทธ ๋‹จ๊ฑด ์กฐํšŒ
    • ๊ด€๋ฆฌ์ž์šฉ ํƒœ๊ทธ Paging ์กฐํšŒ
    • ํƒœ๊ทธ์™€ ์ƒํ’ˆ ์‚ฌ์ด์˜ ๊ด€๊ณ„ ๋“ฑ๋ก/์‚ญ์ œ
    • ์ƒํ’ˆ์œผ๋กœ ํƒœ๊ทธ์™€ ์ƒํ’ˆ ์‚ฌ์ด์˜ ๊ด€๊ณ„ ์กฐํšŒ
  • ์ €์ž, ์ง‘ํ•„ ๊ด€๋ฆฌ
    • ์ €์ž ๋“ฑ๋ก/์ˆ˜์ •
    • ์ €์ž ๋‹จ๊ฑด ์กฐํšŒ
    • ๊ด€๋ฆฌ์ž์šฉ ์ €์ž Paging ์กฐํšŒ
    • ์ €์ž์™€ ์ƒํ’ˆ์‚ฌ์ด์˜ ๊ด€๊ณ„(=์ง‘ํ•„) ๋“ฑ๋ก/์‚ญ์ œ
    • ์ƒํ’ˆ์œผ๋กœ ์ €์ž์™€ ์ƒํ’ˆ ์‚ฌ์ด์˜ ๊ด€๊ณ„(=์ง‘ํ•„) ์กฐํšŒ
  • ๋งค์ถœ ํ†ต๊ณ„ ๋ฐ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ
    • ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„์˜ ๋งค์ถœ ํ†ต๊ณ„ ์กฐํšŒ
    • 1๋…„ ๊ธฐ์ค€ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ 12๊ฐœ ์กฐํšŒ
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ/์‚ญ์ œ, ์ˆ˜๋Ÿ‰ ์ˆ˜์ •, ์ฃผ๋ฌธ ํ›„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ ์‚ญ์ œ
  • ์ฃผ๋ฌธ
    • ํšŒ์›/๋น„ํšŒ์› ์ผ๋ฐ˜ ์ฃผ๋ฌธ ์ƒ์„ฑ
    • ์ฃผ๋ฌธ ์ˆจ๊น€์ฒ˜๋ฆฌ
    • ์ฃผ๋ฌธ ํ™•์ •
    • ์ฟ ํฐ ์‚ฌ์šฉ
    • ํฌ์ธํŠธ ์‚ฌ์šฉ
  • ํšŒ์› ๊ด€๋ฆฌ
    • ํšŒ์› ๋ฐฐ์†ก์ง€ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ
    • ํšŒ์› ๋“ฑ๊ธ‰ ๋‚ด์—ญ ๊ธฐ๊ฐ„๋ณ„ Paging ์กฐํšŒ
    • ํšŒ์› ๋“ฑ๊ธ‰ ์กฐํšŒ
    • ํšŒ์› ์ฐจ๋‹จ/์ฐจ๋‹จํ•ด์ง€
  • ํฌ์ธํŠธ ๊ด€๋ฆฌ
    • ํฌ์ธํŠธ ์‚ฌ์šฉ/์ ๋ฆฝ/์ง‘๊ณ„ ๋‚ด์—ญ ์ƒ์„ฑ
    • ํฌ์ธํŠธ ์‚ฌ์šฉ/์ ๋ฆฝ Paging ๋‚ด์—ญ ์กฐํšŒ
    • ํšŒ์›์˜ ํฌ์ธํŠธ ์กฐํšŒ
  • ์ฃผ๋ฌธ ๋ณ€๊ฒฝ ์ƒํƒœ ๋‚ด์—ญ ๊ด€๋ฆฌ
    • ์ฃผ๋ฌธ ๋ณ€๊ฒฝ ์ƒํƒœ ๋‚ด์—ญ ์ƒ์„ฑ
  • ์ฃผ๋ฌธ ์ƒํ’ˆ ๊ด€๋ฆฌ
    • ์ฃผ๋ฌธ ์ƒํ’ˆ ์ƒ์„ฑ
  • ์นดํ…Œ๊ณ ๋ฆฌ
    • 1์ฐจ, 2์ฐจ ์นดํ…Œ๊ณ ๋ฆฌ์™€ ๊ฐ™์ด ์ž๊ธฐ์ฐธ์กฐ ํ˜•์‹์˜ ์นดํ…Œ๊ณ ๋ฆฌ ๊ตฌํ˜„
    • ์—”ํ‹ฐํ‹ฐ์˜ Pk๋ฅผ Auto Increment๊ฐ€ ์•„๋‹Œ staticํ•œ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
      • ์ƒ์„ฑ : 1์ฐจ ์นดํ…Œ๊ณ ๋ฆฌ 10000๋งŒ์”ฉ ์ฆ๊ฐ€, 2์ฐจ ์นดํ…Œ๊ณ ๋ฆฌ 100์”ฉ ์ฆ๊ฐ€
      • ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋  ๊ฒฝ์šฐ, ์ƒํ’ˆ-์นดํ…Œ๊ณ ๋ฆฌ๊ฐ„์˜ ๊ด€๊ณ„ ๋งตํ•‘์ด ํž˜๋“ค์–ด์ง??? <- ์„ค๋ช… ์ถ”๊ฐ€
    • ์นดํ…Œ๊ณ ๋ฆฌ ๋“ฑ๋ก/์ˆ˜์ •/์‚ญ์ œ
    • ์นดํ…Œ๊ณ ๋ฆฌ ๋‹จ๊ฑด/๋‹ค๊ฑด paging ์กฐํšŒ
    • ์นดํ…Œ๊ณ ๋ฆฌ ์ˆœ์„œ ๋ณ€๊ฒฝ
  • ๊ฒฐ์ œ
    • ๊ฒฐ์ œ ์š”์ฒญ ๋ฐ ์Šน์ธ ์ฒ˜๋ฆฌ by Toss
      • ์นด๋“œ
      • ๊ฐ„ํŽธ ๊ฒฐ์ œ
    • ๊ฒฐ์ œ ๋‚ด์—ญ ์กฐํšŒ
  • ์ฃผ๋ฌธ ์กฐํšŒ
    • ๊ธฐ๊ฐ„๋ณ„ ์ฃผ๋ฌธ ์กฐํšŒ ๋ฐ ์ผ์ž ์ง€์ •๋ณ„ ์ฃผ๋ฌธ ์กฐํšŒ
    • ์ฃผ๋ฌธ ์ƒํƒœ ๋ณ„ ์ฃผ๋ฌธ ์กฐํšŒ
    • ์ฃผ๋ฌธ ์ƒ์„ธ ์กฐํšŒ (์ฃผ๋ฌธ์ •๋ณด + ์ƒํ’ˆ์ •๋ณด + ๋ฐฐ์†ก์ •๋ณด + ๊ฒฐ์ œ์ •๋ณด)
  • ์ฟ ํฐ
    • Kafka๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฟ ํฐ ์„œ๋ฒ„์™€ ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ํ†ต์‹  ๊ตฌํ˜„
    • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ํŠธ๋žœ์žญ์…˜ ๋ณด์žฅ์„ ์œ„ํ•œ ์‹œ์Šคํ…œ ์„ค๊ณ„
  • Project Management
    • NHN Cloud Log & Crash๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • Spring Cloud Config๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ์„ค์ • ์ •๋ณด ์™ธ๋ถ€ํ™”
  • ์ฟ ํฐ
    • ์ž๋™ ๋ฐœํ–‰ ์ฟ ํฐ
      • Batch ์„œ๋ฒ„์™€์˜ API ํ†ต์‹ ์„ ํ†ตํ•ด n์ผ ํ›„ ์ƒ์ผ์ธ ํšŒ์›์—๊ฒŒ ์ฟ ํฐ ์ž๋™ ๋ฐœํ–‰ ๊ตฌํ˜„
        • ์ƒ์ผ ํšŒ์› ์กฐํšŒ
        • MyBatis๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟ ํฐ ์ง€๊ธ‰ Batch Insert ๊ตฌํ˜„
    • ์„ ์ฐฉ์ˆœ ์ฟ ํฐ
      • ์ด๋ฒคํŠธ ์˜คํ”ˆ ์‹œ๊ฐ„ ์ด์ „์— ๋ฐœํ–‰๋œ ์š”์ฒญ ์ฒ˜๋ฆฌ
      • Redis๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์‹œ๊ฐ„์— ๋“ค์–ด์˜ค๋Š” ์ค‘๋ณต ๋ฐœํ–‰ ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ
  • ๊ฒ€์ƒ‰
    • ๋ฉ”์ธ ์ƒํ’ˆ ๊ฒ€์ƒ‰
      • ES์˜ Nori Plugin์„ ์ด์šฉํ•œ ์ƒํ’ˆ ๊ฒ€์ƒ‰ ๊ตฌํ˜„
      • ๋ฉ”์ธ ์ƒํ’ˆ ๋“ฑ๋ก์„ ์œ„ํ•œ ํƒœ๊ทธ, ์นดํ…Œ๊ณ ๋ฆฌ, ์ถœํŒ์‚ฌ, ์ €์ž ๊ฒ€์ƒ‰
    • ํšŒ์›
      • ๊ด€๋ฆฌ์ž๊ฐ€ ํšŒ์› ์ฐจ๋‹จ/์‚ญ์ œ ๊ด€๋ฆฌ ๊ฒ€์ƒ‰(DB)
  • ์œ„์‹œ๋ฆฌ์ŠคํŠธ
    • ์œ„์‹œ๋ฆฌ์ŠคํŠธ ๋“ฑ๋ก/์‚ญ์ œ
    • ์œ„์‹œ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ์กฐํšŒ
  • ์ตœ๊ทผ ๋ณธ ์ƒํ’ˆ
    • ์ตœ๊ทผ ๋ณธ ์ƒํ’ˆ ์ถ”๊ฐ€/์‚ญ์ œ
    • ์ตœ๊ทผ ๋ณธ ์ƒํ’ˆ ํŽ˜์ด์ง€ ์กฐํšŒ
  • ์‹ ๊ฐ„
    • ์‹ ๊ทœ ์ƒํ’ˆ SQL ์ž‘์„ฑ

๊ณตํ†ต

  • SonarQube ๋ฐ ์ฒดํฌ ์Šคํƒ€์ผ์„ ํ™œ์šฉํ•œ ์ฝ”๋“œ ํ’ˆ์งˆ ๊ฐœ์„  ๋ฐ ์ปจ๋ฒค์…˜ ์ฒดํฌ
  • Unit Test ์ˆ˜ํ–‰

Technical Issue

Kafka (๊ฐ€์ œ)

์ฃผ๋ฌธ/๊ฒฐ์ œ

  • ๊ฒฐ์ œ ์„œ๋น„์Šค ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์ค‘, RollBack ๋˜์–ด์•ผ๋Š” ์ƒํ™ฉ์— ํ† ์Šค์™€์˜ ํ†ต์‹ ์ด ์ •์ƒ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํŠธ๋žœ์žญ์…˜์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜์–ด rollback์ด ๋˜์—ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ํ† ์Šค ๊ฒฐ์ œ ์ทจ์†Œ๋Š” HTTP ํ†ต์‹ ์ด๋ฏ€๋กœ rollback๊ณผ๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฏ€๋กœ ๋Œ€์ฑ…์ด ํ•„์š”
    • TransactionEventListener ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ
      • phase๋ฅผ TransactionPhase.AFTER_ROLLBACK ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉ

Web Socket

  • ์„œ๋ฒ„๊ฐ€ ์ด์ค‘ํ™” ๋˜์–ด์žˆ์–ด ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
    • Redis์˜ PUB/SUB์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
    • ์„ค๊ณ„ ๋ฐ flow์˜ ๋ณต์žก๋„ ์ฆ๊ฐ€ ๋ฐ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์œ ์ง€๋กœ ์ธํ•œ ์„œ๋ฒ„ ๋ถ€๋‹ด ์ฆ๊ฐ€
      • ์ตœ์ข…์ ์œผ๋กœ ์†Œ์ผ“ ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ํ•ด๊ฒฐ

์ธ์ฆ/์ธ๊ฐ€

  • JWT ํ† ํฐ ๊ฒ€์ฆ ๊ฒฐ๊ณผ payload์— ํฌํ•จ๋œ ์‹๋ณ„ ์ •๋ณด๋ฅผ ํ†ตํ•ด Shop API Server ๋‚ด OncePerRequestFilter๋กœ ์ž์ฒด ์ธ์ฆ ๊ฐ์ฒด ์ƒ์„ฑ
    • ์ƒ์„ฑ๋œ Authentication์— ํฌํ•จ๋œ Roles๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API์— Method Security ์ ์šฉ
    • ์ƒ์„ฑ๋œ Authentication์— ํฌํ•จ๋œ loginId๋ฅผ ํ†ตํ•ด AOP๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ํšŒ์› ์ž์‹ ์˜ ๊ฐœ์ธ์ •๋ณด์— ๊ด€๋ จ๋œ API ํ˜ธ์ถœ ์‹œ ๊ฐœ์ธ์ •๋ณด ๋…ธ์ถœ ์ตœ์†Œํ™”

Spring Cache (๊ฐ€์ œ)

Elastic Search

  • ELK ์Šคํƒ์„ ์ด์šฉํ•œ ์ƒํ’ˆ๊ฒ€์ƒ‰(๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ƒ‰์ธ๊ณผ ๊ฒ€์ƒ‰ ์ œ๊ณต)
  • ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ DB ๊ฒ€์ƒ‰(๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ, ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด)

Tech Stack

Languages

Java

Frameworks

SpringBoot SpringCloud Spring Security SpringDataJPA QueryDSL

Database

MySQL Redis Elasticsearch

Build Tool

ApacheMaven

DevOps

Kafka NHN Cloud Jenkins SonarQube Grafana

Web Server

NGINX

Unit Test

Junit5

ํ˜•์ƒ ๊ด€๋ฆฌ ์ „๋žต

Git GitHub

  • Git Flow ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ Branch๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ Main/Develop Branch๋กœ Pull Request ์‹œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ง„ํ–‰ ํ›„ merge ํ•ฉ๋‹ˆ๋‹ค. image
  • Main: ๋ฐฐํฌ์‹œ ์‚ฌ์šฉ
  • Develop: ๊ฐœ๋ฐœ ๋‹จ๊ณ„๊ฐ€ ๋๋‚œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด Merge ๋‚ด์šฉ ํฌํ•จ
  • Feature: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋‹จ๊ณ„
  • Hot-Fix: Merge ํ›„ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ ๋ฐ˜์˜ ์‹œ ์‚ฌ์šฉ

Contributors