Skip to content

๐Ÿ“‚ BE ๊ฐœ๋ฐœ ์ปจ๋ฒค์…˜ v1.4

Eugene Jang edited this page Aug 5, 2024 · 1 revision

0๏ธโƒฃย . Issue

Projects ์—์„œ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

1. BE-Feat-Issue-Template

---
name: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ
about: feat
title: "[BE-FEAT]"
labels: BE_FEAT
assignees: ''

---

โœจ Description
---
- ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ•œ ์ค„ ์„ค๋ช…์„ ์ž‘์„ฑ ํ•ด์ฃผ์„ธ์š”.

โœจ Task
---
- [ ] ๊ธฐ๋Šฅ ์„ธ๋ถ€ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž‘์„ฑ ํ•ด์ฃผ์„ธ์š”.

โœจ Time
---
- ์˜ˆ์ƒ ์†Œ์š” ์‹œ๊ฐ„์„ ์ž‘์„ฑ ํ•ด์ฃผ์„ธ์š”.

2. BE-Bug-Issue-Template

---
name: "๋ฒ„๊ทธ ์ˆ˜์ •  \\U0001F41C "
about: fix
title: "[BE-FIX]"
labels: BE_FIX
assignees: ''

---

๐Ÿ›  description
---
- ํ•ด๋‹น ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ•œ ์ค„๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ›  file
---
- ๋ฒ„๊ทธ์™€ ๊ด€๋ จ๋œ ์บก์ณ ๋ฐ ์„ธ๋ถ€ ์„ค๋ช…์„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ›  time
---
- ๊ณ ์น˜๊ธฐ๊นŒ์ง€ ์˜ˆ์ƒ ์†Œ์š” ์‹œ๊ฐ„

1๏ธโƒฃย . PR

1. PR ํ…œํ”Œ๋ฆฟ

## ๐Ÿ„ PR ํ™•์ธ ์‚ฌํ•ญ
PR์ด ๋‹ค์Œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. :

- [ ] API ๋ช…์„ธ์„œ๊ฐ€ ์—…๋ฐ์ดํŠธ ํ˜น์€ ์ž‘์„ฑ์ด ๋˜์–ด ์žˆ๋‚˜์š”?

## ํ˜„์žฌ ์ž‘์—…์€ ์–ด๋–ค ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
> Issue Number: {๋ฒˆํ˜ธ}

- ์ด์Šˆ์— ์žˆ๋Š” ํƒœ์Šคํฌ ๋“ค์„ ๋ถ™์—ฌ๋„ฃ์–ด์ฃผ์„ธ์š”.

## ๊ธฐ์กด ์ฝ”๋“œ์™€ ๋‹ฌ๋ผ์ง„ ์ ์ด ์žˆ๋‹ค๋ฉด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

- [ ] ์žˆ์Œ
- [ ] ์—†์Œ

2. PR ์ž‘์„ฑ ๋ฐฉ์‹

๐Ÿ”ฅ ํŒ€์›์—๊ฒŒ PR์„ ์ž‘์„ฑํ–ˆ์Œ์„ ์•Œ๋ ค์ฃผ์„ธ์š”!

๋ฐ˜๋“œ์‹œ PR์„ ์ž‘์„ฑ ํ›„์— ๊นƒํ—ˆ๋ธŒ์—์„œ ๋ฆฌ๋ทฐ ์š”์ฒญ์„ ๋‚ ๋ฆฐ ํ›„, PR ์•Œ๋ฆผ ํ…œํ”Œ๋ฆฟ ์— ๋งž์ถฐ์„œ backend-hook ์˜ ๋ชจ๋‘์—๊ฒŒ ์•Œ๋ ค์ฃผ์„ธ์š”!

Assignees : ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋ณธ์ธ์„ ํƒœ๊ทธํ•œ๋‹ค.

Label : ๊ธฐ๋Šฅ ํƒ€์ž… (BE-Feat, BE-fix โ€ฆ ํ•„์š”ํ•˜๋‹ค๋ฉด BE-{ํƒœ๊ทธ} ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€)

2-1. PR ์•Œ๋ฆผ ํ…œํ”Œ๋ฆฟ

๐Ÿ€ PR์ด ๋„์ฐฉํ–ˆ์–ด์š”!

๊ธฐ๋Šฅ ๋‚ด์šฉ : (PR ๋งํฌ)[]

2๏ธโƒฃย . Commit

  • ์ปค๋ฐ‹์€ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ง„ํ–‰ํ•œ๋‹ค.
    • ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ํ•œ๋‹ค.
    • ์ปค๋ฐ‹์— ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ์•„๋ž˜์˜ ํ˜•์‹์„ ๋”ฐ๋ฅธ๋‹ค.
feat: {๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…} ๊ธฐ๋Šฅ
docs: {์ž‘์„ฑํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์„ค๋ช…} ์ž‘์„ฑ/์ˆ˜์ •
  • ํƒœ๊ทธ๋Š” ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.
Tag Name Description
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
hotfix ๊ธ‰ํ•˜๊ฒŒ ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณ์•ผํ•˜๋Š” ๊ฒฝ์šฐ
style ์ฝ”๋“œ ํฌ๋งท ๋ณ€๊ฒฝ, ์„ธ๋ฏธ ์ฝœ๋ก  ๋ˆ„๋ฝ
refactor ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
docs ๋ฌธ์„œ ์ˆ˜์ • (๋ฆฌ๋“œ๋ฏธ ๋“ฑ)
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŽ™ํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€, Production Code(์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ) ๋ณ€๊ฒฝ ์—†์Œ
rename ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช…์„ ์ˆ˜์ •
remove ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ
build yml, gradle๊ณผ ๊ฐ™์€
๋นŒ๋“œ ๊ด€๋ จ ํŒŒ์ผ ์ˆ˜์ • ย 
chore ์–ด๋””์— ๋„ฃ๊ธฐ๋„ ์• ๋งคํ•œ ์žก์ผ (ํŒŒ์ผ ์ด๋™)

3๏ธโƒฃย . Projects

image

1. Projects ํ™œ์šฉ ๋ฐฉ์‹

  • ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ BE-Work-Board ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
  • Issue ๋ฅผ ์ƒ์„ฑ ํ›„, ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ InProgress ๋กœ ์˜ฎ๊ธด๋‹ค.

4๏ธโƒฃย . Branch

1. ์ž‘์—… ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

๋ฐ˜๋“œ์‹œ be/** ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

be/{ํƒœ๊ทธ}/#{์ด์Šˆ๋ฒˆํ˜ธ}-{CRUD}-{๋„๋ฉ”์ธ์ด๋ฆ„}-api

ex) be/feat/#123-post-pokemon-api , be/fix/#124-post-pokemon-api

2. ๊นƒํ—ˆ๋ธŒ ๋ธŒ๋žœ์น˜ ์ „๋žต

๐Ÿ”ฅ main , be-develop, be-feat/ ์ด ์กด์žฌํ•œ๋‹ค.

be-develop ์—์„œ ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

3. ๋ธŒ๋žœ์น˜ ์ž‘์—… ๋ฐฉ์‹

branch ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋”ฐ๋ฅธ๋‹ค.

  1. branch ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „ git pull ์„ ํ†ตํ•ด develop์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
  2. ๋ธŒ๋žœ์น˜๋ฅผ ๋„ค์ด๋ฐ์— ๋งž๊ฒŒ ์ƒ์„ฑํ•œ๋‹ค.
  3. git fetch ๋ฅผ ํ†ตํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” conflict ๋ฅผ ํ™•์ธํ•œ๋‹ค.
  4. git pull --rebase [์›๊ฒฉ ์ €์žฅ์†Œ] [๋ธŒ๋žœ์น˜] ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ฒ ์ด์Šค ํ•˜์—ฌ ํ•ด๊ฒฐํ•œ๋‹ค.
  5. ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ commit ํ›„์— push ํ•œ๋‹ค.
  6. merge ํ›„ ๋จธ์ง€๋œ ๋ธŒ๋žœ์น˜๋ฅผ delete ํ•œ๋‹ค.

5๏ธโƒฃย . Review

1. ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐฉ์‹

  • ๋น ๋ฅธ ๋ฆฌ๋ทฐ๋ฅผ ์œ„ํ•ด ์ง์„ค์ ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.
  • ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋‹ค๋Š” ๊ฒฝ์šฐ pending ํ›„ ํ•œ๋ฒˆ์— ๋ณด๋‚ธ๋‹ค.
  • ๋ฆฌ๋ทฐ๋Š” ์ตœ๋Œ€ 24 ์‹œ๊ฐ„, ์ฃผ๋ง์ด ๋ผ์–ด์žˆ๋Š” ๊ฒฝ์šฐ 36 ์‹œ๊ฐ„ ์•ˆ์— ์ง„ํ–‰ํ•œ๋‹ค.
  • ๋ฆฌ๋ทฐ๋Š” ํŒ€์› ๋ชจ๋‘์—๊ฒŒ ๋ฐ›๋Š”๋‹ค. ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ ๋ชจ๋‘์˜ ์ฑ…์ž„์œผ๋กœ ํ•จ๊ป˜ ํ•ด๊ฒฐํ•œ๋‹ค.

๋‹จ, ๋ฌธ์ œ ์ง€์  ์‹œ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ œ ์›์ธ๊ณผ ๊ทธ ๋Œ€์•ˆ์„ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

๋˜ํ•œ ์ด๋ชจ์ง€๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จํ•˜๋„๋ก ํ•œ๋‹ค.

๐Ÿ”ฅ ๋‹จ ๋ฐ‘๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ๋Š” ์ด๋ชจ์ง€๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ex) ๐ŸŒด๐Ÿ€โญ๏ธ๐Ÿ’ฅ๐Ÿ’ย ๋‹น์‹  ์ฝ”๋“œ ๊ตฌ๋ ค์š” ๐ŸŠ๐ŸŒธ๐Ÿ’ซ๐Ÿ’ž๐Ÿ’› ๐Ÿ‘Žย ๊ตฌ๋ ค์š”

6๏ธโƒฃย . Code

1. ํด๋”๋ง

  • ํฐ ๋„๋ฉ”์ธ์„ ์ค‘์‹ฌ์œผ๋กœ ํด๋”๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. (pokemon, ability, type ....)

2. ์ž‘์„ฑ ๋ฐฉ์‹ (์ปจ๋ฒค์…˜)

  • ์ฒ˜์Œ์—๋Š” ์ƒ์„ฑ์ž๋งŒ ์‚ฌ์šฉํ•œ๋‹ค

    • ์ดํ›„ Builder๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด**, ํŒ€์›๊ณผ ์ „๋ถ€ ํ•ฉ์˜ ํ›„** ๋ฆฌํŒฉํ† ๋งํ•œ๋‹ค.
  • ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ, Dto ์—๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

     ๋งŒ์•ฝ ์—”ํ‹ฐํ‹ฐ์— ์“ฐ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด ์ด๋„ **ํŒ€์›๊ณผ ์ „๋ถ€ ํ•ฉ์˜**ํ•œ๋‹ค.
    
  • Record ๋Š” Dto ์—์„œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์–ด๋…ธํ…Œ์ด์…˜์€ ๊ธด ๊ฒƒ์ด ๊ฐ€์žฅ ๋ฐ‘์— ๊ฐ€๋„๋ก ์ •๋ ฌํ•œ๋‹ค.
  • ๋‹ค๋งŒ `@Override` ๊ฐ™์€ ์–ด๋…ธํ…Œ์ด์…˜๋“ค์€ ๊ฐ€์žฅ ์œ„์— ๊ฐ€๋„๋ก ์ •๋ ฌํ•œ๋‹ค.
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธธ์ด๊ฐ€ | ํšŒ์ƒ‰ ์„ ์„ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์ด์— ํ•œ์นธ์”ฉ ๋ˆ๋‹ค.
    • private ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉํ•˜๋Š” ๊ณณ ๋ฐ”๋กœ ์•„๋ž˜์— ๋‘”๋‹ค.
      • ๋‹จ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ํด๋ž˜์Šค ์ œ์ผ ํ•˜๋‹จ๋ถ€์— ๋‘”๋‹ค.

2-1. ๋ฉ”์„œ๋“œ ๊ฐœํ–‰

  • ๊ฐœํ–‰์€ return ๋ฌธ ์ „์— ๋ฐ˜๋“œ์‹œ ํ•œ์นธ ๋„์šด๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€๊ฐ€ return ๋ฌธ ํ•˜๋‚˜ ๋ฟ์ด๋ผ๋ฉด ํ•œ์นธ์„ ๋„์šฐ์ง€ ์•Š๋Š”๋‹ค.
  • ์ฒ˜์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์‹œ์ž‘ํ• ๋•Œ๋Š” ๊ฐœํ–‰์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

2-2. ํด๋ž˜์Šค ๊ฐœํ–‰

  • ์ฒซ ๋ผ์ธ์€ ๊ฐœํ–‰์„ ํ•œ๋‹ค.
  • ๋งˆ์ง€๋ง‰ ๋ผ์ธ์€ ๊ฐœํ–‰์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํ•„๋“œ ์‚ฌ์ด์—์„œ๋Š” ๊ฐœํ–‰์„ ํ•œ๋‹ค.
  • ์–ด๋…ธํ…Œ์ด์…˜์ด ์•ˆ๋ถ™์€ ํ•„๋“œ ์‚ฌ์ด์—์„œ๋Š” ๊ฐœํ–‰์„ ํ•œ๋‹ค.
  • ๋ฉ”์„œ๋“œ ์‚ฌ์ด์— ๊ฐœํ–‰์„ ํ•œ๋‹ค.

2-3. ENUM ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ•„๋“œ ๊ฐœํ–‰

  • ์ƒํƒœ ์ฝ”๋“œ ๋ณ„๋กœ ๊ฐœํ–‰์„ ํ•œ๋‹ค.

3. yml

3-1. ddl-auto

  • Dev

    • None ์„ Default ๋กœ ํ•ด๋†“๋Š”๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์ฟผ๋ฆฌ๋กœ ์ง์ ‘ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ˜์˜ํ•œ ํ›„ ์ฝ”๋“œ์—๋„ ๋ฐ˜์˜ํ•œ๋‹ค.
      • ์ดํ›„ Validation ์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ ์ฝ”๋“œ์™€์˜ ์ฐจ์ด๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธ ํ›„ None ์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
      • ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์ž‘์—…์„ ์ง„ํ–‰ํ•œ ํ›„ ํŒ€์›์—๊ฒŒ ์•Œ๋ฆฐ๋‹ค.
  • Test

    • ์›ํ•˜๋Š” ์„ค์ •๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋กœ์ปฌ์—์„œ ๊ฐ์ž์˜ MySQL์„ ์‚ฌ์šฉํ•œ๋‹ค.

3-2. ๋น„๋ฐ€ํ‚ค ๊ด€๋ฆฌ

๐Ÿ”ฅ ๊นƒํ—ˆ๋ธŒ ์„œ๋ธŒ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฏธ์•„์˜ ์„ค๋ช…์„ ๋“ฃ๊ณ  4์ธ ํŽ˜์–ด์—์„œ ์‹ค์Šต ํ›„ ์ตœ์ข… ๊ฒฐ์ •ํ•œ๋‹ค.

4. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

  • DisplayName ํ•œ๊ธ€, ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ์˜์–ด

    • ๊ธฐ๋Šฅ์ด ํ•˜๋Š” ์ผ์„ ์ƒ์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค.
    • ~ํ•œ๋‹ค. ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋๋‚ธ๋‹ค.
      • ์ด๋ฆ„ : ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์“ฐ๊ณ  ์กฐ๊ฑด์ด ์žˆ๋‹ค๋ฉด ๊ทธ ๋’ค์— When ์„ ๋ถ™์ธ๋‹ค.
  • TDD ๋Š” ํ•˜์ง€ ์•Š๋Š”๋‹ค

    • ๋„๋ฉ”์ธ์€ ๋ฐ˜๋“œ์‹œ ํ…Œ์ŠคํŠธ ํ•œ๋‹ค.
    • ๊ฒ€์ฆ ๋กœ์ง ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ•œ๋‹ค.
    • Service ๋กœ์ง์€ ํ…Œ์ŠคํŠธ ํ•œ๋‹ค.
      • ๊ฒ€์ฆ ๋กœ์ง์ด ์žˆ์„ ๊ฒฝ์šฐ == ๊ฐœ๋ฐœ์ž์˜ ๊ฐœ์ž…์ด ์žˆ์„ ๊ฒฝ์šฐ ์ž‘์„ฑํ•œ๋‹ค.
      • ์œ„์™€ ๊ฐ™์€ ์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์„ฑํ•ด๋„ ์ข‹๋‹คใ…ฃ.
    • Controller๋Š” @Valid ๋งŒ (์˜์กด์„ฑ์€ Mockito, @WebMvcTest)
    • ์ธ์ˆ˜ + ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ (์•Œ์•„์„œ ํŒ๋‹จํ•˜์‹ญ์‹œ์˜ค.)
    • Repository๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋ณธ์ธ์ด ์ง์ ‘ ์ฟผ๋ฆฌ๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ (@DataJpaTest)
      • ํ•จ๊ป˜ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•œ ๋ฉ”์„œ๋“œ์—์„œ ํ…Œ์Šค๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. (ํœด๋จผ ์—๋Ÿฌ, ์ฟผ๋ฆฌ ์ •์ƒ ์ž‘๋™, ๋ฐ์ดํ„ฐ ์žˆ์Œ )
      • ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๋‚˜๋‰  ์ˆ˜ ์žˆ๋Š” ์—ฃ์ง€ ์ผ€์ด์Šค๋Š” ๋”ฐ๋กœ ์ž‘์„ฑํ•œ๋‹ค.
Clone this wiki locally