Skip to content

DDAL-GGAK/DDAL-GGAK-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

720 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๋”ธ๊น DDAL-GGAK

๐Ÿ‘‰๐Ÿป ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

"๋”ธ๊น, ๊ฐ„ํŽธํ•œ ์—…๋ฌด ๊ด€๋ฆฌ๋กœ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์ ˆ์•ฝํ•˜์„ธ์š”."

Alt Text

๐ŸŸข JIRA์˜ Ticket ์‹œ์Šคํ…œ๊ณผ Github์˜ Commit ๋กœ๊ทธ ์‹œ์Šคํ…œ์„ ํ•ฉ์นœ ์—…๋ฌด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • Task : ํ•˜๋‚˜์˜ Task์—์„œ ํŒ€๋ณ„ ์นดํ…Œ๊ณ ๋ฆฌ(๋งˆ์ผ€ํŒ…ํŒ€, FEํŒ€, BEํŒ€, UI/UXํŒ€) ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ด€๋ฆฌ์ž๊ฐ€ Task๋ฅผ ์ดํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Ticket์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Ticket ์‹œ์Šคํ…œ : ํŒ€์›์€ ์›ํ•˜๋Š” ํ‹ฐ์ผ“์„ ๊ฐ€์ ธ๊ฐ€ ์ด๋ฅผ ์ดํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž์˜ Ticket ๋ฆฌ๋ทฐ๊ฐ€ ๋๋‚  ๊ฒฝ์šฐ, ๊ฐœ์ธ์˜ ํ‹ฐ์ผ“๋กœ๊ทธ์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • Ticket ์ ์ˆ˜ ์‹œ์Šคํ…œ : ์ค‘์š”๋„, ๋‚œ์ด๋„ ๋“ฑ์— ๋”ฐ๋ผ ์ ์ˆ˜๊ฐ€ ๋งค๊ฒจ์ ธ์žˆ๊ณ  ์‚ฌ์šฉ ๋๋‚œ ํ‹ฐ์ผ“๋กœ๊ทธ์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

์—…๋ฌด ์ˆ˜ํ–‰์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์„ฑ๊ณผ๋ฅผ ์ธก์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ฑ๏ธ๋”ธ๊น ์„œ๋น„์Šค ์ด์šฉํ•˜๊ธฐ

๐Ÿ–ฑ๏ธ๋”ธ๊น ๋…ธ์…˜

๐Ÿ—“๏ธย ํ”„๋กœ์ ํŠธ ์šด์˜ ๊ธฐ๊ฐ„

๐Ÿ’ป๊ฐœ๋ฐœ ๊ธฐ๊ฐ„: 2023๋…„ 3์›” 10์ผ ~ 2023๋…„ 4์›” 20์ผ

๐Ÿ‘ฉโ€๐Ÿ’ผ์šด์˜ ๊ธฐ๊ฐ„: 2023๋…„ 4์›” 17์ผ ~ 2023๋…„ 4์›” 29์ผ

๐Ÿ› ๏ธ ERD

Alt Text


๐Ÿ› ๏ธย ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜

Alt Text


๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ

โญFront-End


โญBack-End


โญDev Tools


โญCommon Stack


๐Ÿ“ย ๊ธฐ์ˆ  ์ฑ„ํƒ ์ด์œ 

    React
    ๋„์ž… ์‚ฌ์œ 
    1. State ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๋ฐ˜์‘์„ฑ ์œ ์ง€. 2. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๋Œ€.

    Redux
    ๋„์ž… ์‚ฌ์œ 
    ํด๋ผ์ด์–ธํŠธ์˜ state ๊ด€๋ฆฌ ๋ฐ Provider pattern์„ ์ด์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋ถˆํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ ํ™•๋ณด.
      redux, recoil, zustand ๋“ฑ
      • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ƒํƒœ๋งŒ ๋ณด๋ฉด recoil์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์œผ๋‚˜, ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๋•ํŠธ๋Š” B2B SaaS์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ ํ”„๋กœ๋•ํŠธ์˜ ๊ทœ๋ชจ๋Š” ๊ต‰์žฅํžˆ ์ปค์งˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ดˆ๋ฐ˜์— ์ž‘์„ฑํ•ด์•ผ ํ•  ์ฝ”๋“œ๊ฐ€ ์ข€ ์žˆ๊ฒ ์ง€๋งŒ, ๋‚˜์ค‘์˜ ์Šค์ผ€์ผ์—…์— ๋Œ€ํ•œ ์œ ๋™์„ฑ์„ ๊ณ ๋ คํ•ด๋ณธ๋‹ค๋ฉด redux๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

    Typescript
    ๋„์ž… ์‚ฌ์œ 
    1. type์„ ํ†ตํ•œ ์•ˆ์ •์„ฑ ํ™•๋ณด.
    2. ๋ฏธ์ฒ˜ ์žก์•„๋‚ด์ง€ ๋ชปํ•œ ์—๋Ÿฌ ๋””๋ฒ„๊น….
    3. ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ.

    styled-components
    ๋„์ž… ์‚ฌ์œ 
    1. ์™ธ๋ถ€ ํ™˜๊ฒฝ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์œ ๋™์  ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅ.
    2. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์— ์—ฌ๋Ÿฌ props๋ฅผ ์ „๋‹ฌํ•˜๋”๋ผ๋„ ๋ณต์žกํ•œ optional rendering์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œ.
    3. ์ „์—ญ์ ์œผ๋กœ ์Šคํƒ€์ผ๋ง์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ๋‹ด๋‹นํ•˜๊ณ  ์ฑ…์ž„์„ ๋ถ€์—ฌ.
      TailwindCSS

      ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋œ CSS ํ”„๋ฆฌ์…‹์ด ์žˆ์–ด ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, props๋ฅผ ํ†ตํ•ด optionalํ•˜๊ฒŒ CSS๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ, ๊ฐ€๋…์„ฑ์ด ํฌ๊ฒŒ ๋–จ์–ด์ง„๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๊ฒƒ๊ณผ ๋”๋ถˆ์–ด ์ „์—ญ์ ์ธ style ์ ์šฉ์—๋„ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ์™ธ๋ถ€ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์— ์œ ๋™์ ์œผ๋กœ ๋Œ€์ฒ˜ํ•˜๋ฉฐ, ๋ณต์žกํ•˜๊ณ  ์ƒ์„ธํ•œ CSS๋ฅผ ์ ์šฉํ•˜๊ณ ์ž styled-components๋ฅผ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    react-hook-form
    ๋„์ž… ์‚ฌ์œ 
    1. ๊ฐ„ํŽธํ•œ ์ปค์Šคํ…€ validation ๋ฐ errorMessage ๋ Œ๋”๋ง.
    2. ์••๋„์ ์œผ๋กœ ์งง์•„์ง€๋Š” ์ฝ”๋“œ ๊ธธ์ด์™€ ๋†’์•„์ง€๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฐ€๋…์„ฑ ํ™•๋ณด.

    Prettier + ESLint (CodeConvention)
    ๋„์ž… ์‚ฌ์œ 
    1. ํ˜•์ƒ๊ด€๋ฆฌํˆด์„ ์ด์šฉํ•˜๋ฉฐ, ํŒ€์›๊ณผ ์ฝ”๋“œ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ conflict๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ ์ž ํ•จ์ž…๋‹ˆ๋‹ค.
    2. conflict์˜ ๋ฌธ์ œ๋ฅผ ๋– ๋‚˜, ํƒ€์ธ๊ณผ ํ˜‘์—…์„ ํ•˜๋Š” ์ƒํ™ฉ์—์„ , codeConvention์„ ํ†ต์ผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด, ์ตœ์†Œํ•œ์˜ โ€œ๊ฐ€๋…์„ฑโ€๊ณผ ๊ทœ์น™์ด ์ „์ œ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜์•„๊ฐ€, ๋” ๋‚˜์€ ๋ณ€์ˆ˜๋ช…์„ ๊ณ ๋ฏผํ•˜๊ณ , ๊พธ์ค€ํ•œ ํด๋ฆฐ์ฝ”๋“œ์™€ ๋ฆฌํŒฉํ„ฐ๋ง์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์Šต๊ด€ํ™” ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ถ€์ฑ„๊ฐ€ ์•„๋‹Œ ๊ธฐ์ˆ ์ด ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    husky (CommitConvention)
    ๋„์ž… ์‚ฌ์œ 
    - ์ปค๋ฐ‹ ๋กœ๊ทธ๋งŒ ๋ณด๋”๋ผ๋„, ์–ด๋–ค ์ž‘์—…์„ ํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ํƒ€์ธ๊ณผ์˜ ํ˜‘์—…์—์„œ commit convention์„ ์ง€ํ‚ค๊ณ , ์‹ค์ œ commit ๋‚ด์—ญ๊ณผ commit ๋ฉ”์‹œ์ง€๋ฅผ ์ผ์น˜ํ•ด์•ผ ํ•จ์„ ์ธ์‹ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    Vercel (Deploy)
    ๋„์ž… ์‚ฌ์œ 
    - ์›๋ž˜ ๊ณ„ํš์—๋Š” AWS S3๋กœ ๋ฐฐํฌ ํ›„, github action์„ ์ด์šฉํ•ด CI/CD๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•˜์—ฌ, ์ž์ฒด์ ์œผ๋กœ CI/CD ๋ฐ deploy๋ฅผ ์ œ๊ณตํ•˜๋Š” Vercel์„ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„, ์œ„์˜ ํ™˜๊ฒฝ์œผ๋กœ migration ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

    JEST + rtl
    ๋„์ž… ์‚ฌ์œ 
    - PR์„ ๋‚ ๋ฆฌ๊ธฐ ์ „, ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ์˜ sideEffect๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ, testCode๋ฅผ ๋งŽ์ด ์ž‘์„ฑํ•˜์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ, ์ถ”ํ›„ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ์ž‘์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

    JWT + Redis ํ† ํฐ ๋ฐฉ์‹
    ๋„์ž… ์‚ฌ์œ 
    - ํ•œ ํšŒ์›์˜ ๋‹ค์ค‘ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ด์šฉํ•œ ๋™์‹œ์ ‘์† ์ œ์–ด๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„ธ์…˜์„ ๋„์ž…ํ•  ๊ฒƒ์ธ๊ฐ€, ๋ง ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•ด ํšŒ์˜๋ฅผ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
      ์„ธ์…˜/ REDIS
      • ์„ธ์…˜์€ statefulํ•œ ์ธ์ฆ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„์— ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ ์ธ์ฆ์„ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ์„ ๋‚ฎ์ถ”๊ณ , ์„œ๋ฒ„์— ์ €์žฅ๋œ ์„ธ์…˜ ์ •๋ณด๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€ํ•˜๊ฐ€ ์ปค์ง€๊ณ  ์„œ๋ฒ„์˜ ์•ˆ์ •์„ฑ์—๋„ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ํ”„๋กœ์ ํŠธ์˜ ํŠน์„ฑ์ƒ ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์ ‘์†ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€๊ทœ๋ชจ ์‚ฌ์šฉ์ž๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ถ„์‚ฐ ์บ์‹œ๋‚˜ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ํšจ๊ณผ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ redis๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค

    Redis
    ๋„์ž… ์‚ฌ์œ 
    - ์ ‘์† ์ œ์–ด๋ฅผ ์œ„ํ•ด REFRESH TOKEN ๊ด€๋ฆฌ ํ•„์š”
      SPRING DATA JPA / REDIS
      • Spring Data JPA๋Š” ๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘(Object-Relational Mapping) ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ์ฒด๋ฅผ ๋งคํ•‘ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, JPA๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • B2B SaaS ์„œ๋น„์Šค์—์„œ ์ ‘์† ์ œ์–ด๋ฅผ ์œ„ํ•ด Redis๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€, Refresh Token๊ณผ ๊ฐ™์ด ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ , ๋น ๋ฅธ ์†๋„๋กœ ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. Redis๋ฅผ ์ด์šฉํ•˜๋ฉด, Refresh Token์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ , ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ๋˜ํ•œ Redis๋Š” ๋†’์€ ์„ฑ๋Šฅ, ๋ถ„์‚ฐ ์‹œ์Šคํ…œ, ์บ์‹œ ๋“ฑ์˜ ์ด์ ์„ ์ œ๊ณตํ•ด ํ™•์žฅ๊ฐ€๋Šฅ์„ฑ๋„ ๋›ฐ์–ด๋‚ฌ๊ณ , ๋ฐ์ดํ„ฐ ์•ˆ์ •์„ฑ๊ณผ ์„œ๋น„์Šค ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํšจ๊ณผ์ ์ด๊ธฐ์— ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    NGINX
    ๋„์ž… ์‚ฌ์œ 
    - CI/CD ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ
    - ๊ธฐ์ˆ  ๊ฐœ๋ฐœ๊ณผ ์‹ค ์„œ๋น„์Šค ์ด์šฉ์ž๋“ค์ด ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๊ฐ€ ๋Š์–ด์ง€์ง€ ์•Š๊ณ  ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”
      github action, docker, jenkins, Travis s3, codeDeploy, Redis, Nginx, Apache, Load Balancing
      • ์ด๋ฏธ์ง€์™€ ์ดˆ๋Œ€๋ถ€๋ถ„ ๋•Œ๋ฌธ์— docker container๋ฅผ ํ™œ์šฉํ•ด Elastic Clound๋ฅผ ์ ์šฉ์‹œํ‚ค๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ํ•œ์ •์ ์ธ ๋น„์šฉ๊ณผ ์ฃผ ๋ชฉ์ ์ธ ์—…๋ฌดํ‹€๊ณผ ํ‹ฐ์ผ“ ํŽ˜์ด์ง€์—๋Š” ๊ธฐ๋ณธ์ ์ธ CI/CD๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋งž๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
      • jenkins, Travis๋Š” ์ž์ฃผ ๊บผ์ง„๋‹ค๋Š” ์ด์Šˆ๋กœ ์•ˆ์ •์ ์ธ ์„œ๋ฒ„ ๊ตฌ์ถ•์„ ์œ„ํ•ด CI๋กœ๋Š” github action์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
      • codeDeploy๋ฐฐํฌ ํ›„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๊ฐ€ ๋‚ด๋ ค๊ฐ€๋Š” ๋ถ€๋ถ„์„ ๊ณ ๋ฏผํ•˜๋‹ค, ๊ฐ€๋™์„ฑ๊ณผ ์ ‘๊ทผ์„ฑ์ด ์ข‹์€ Nginx๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
      • ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์˜ ๋ธ”๋ฃจ ๊ทธ๋ฆฐ์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋„์›Œ์„œ ์˜คํ† ์Šค์ผ€์ผ๋ง์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ๋น„์šฉ์ ์ธ ๋ฌธ์ œ๋กœ ์ผ๋ฐ˜์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    MapStruct
    ๋„์ž… ์‚ฌ์œ 
    - ๋ฏธ๋ž˜์ง€ํ–ฅ์  ์‚ฌ๊ณ 
    - ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ๋งŒ ๋ณด๊ณ  ๋‹ฌ๋ฆฌ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์ง€์›์ด ์˜ค๋ž˜๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ ์“ฐ์ง€ ์•Š๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
      ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
      • ์˜ˆ๋ฅผ ๋“ค์–ด Mapping framework์—๋„ ์ €ํฌ๊ฐ€ ์‚ฌ์šฉํ•œ Mapstruct์™ธ์—๋„ ์ž๋ฐ” ์ˆ˜๋™ ๋ณ€ํ™˜, ModelMapper, Orika, Dozer๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜ธํ™˜์„ฑ์ด๋‚˜ ๋ฆฌํ”Œ๋ ‰์…˜๊ฐ™์€ ๊ธฐ์ˆ ์ ์ธ ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ ๋„, ์ง€์›์ด ์˜ค๋ž˜๋˜๊ฑฐ๋‚˜ ์ค‘๋‹จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ถ€์กฑํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์žฅ์ ์ด ๋งŽ์•„๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

    Git hub Action
    ๋„์ž… ์‚ฌ์œ 
    - properties ๊ด€๋ฆฌ
    - ์–ด๋–ป๊ฒŒ ํ•ด์•ผ properties๋ฅผ ๋น„๋กฏํ•œ ๋ฐฑ์—”๋“œ ๋ณด์•ˆ ์ด์Šˆ์— ๋” ๋ฏผ๊ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ• ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.
      GITHUB ACTION / jasypt
      • ์œ„์—์„œ github action์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•จ์— ๋”ฐ๋ผ, ์ธ์Šคํ„ด์Šค์— VM์˜ต์…˜์„ ์ฃผ์–ด์„œ ๊ฐ€๋™ํ•ด์•ผํ•˜๋Š” jasypt๋ฐฉ์‹ ๋Œ€์‹ ์— ๊นƒํ—ˆ๋ธŒ ์•ก์…˜์—์„œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


๐Ÿ‘ฅํŒ€์› git hub

ํฌ์ง€์…˜ ์ด๋ฆ„ ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ
FE ๊น€๋Œ€ํ˜„ https://github.com/pengooseDev
FE ๋ฐ•์ง€ํ˜„ https://github.com/Taffymark1
BE ์กฐ์˜์ค€ https://github.com/choincnp
BE ๋ฐ•ํ˜„์•„ https://github.com/aihtnyc-h
BE ๋ฐ•์„ฑ๋ฏผ https://github.com/seongminnnn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors