//////
Search

๋Œ•๋ƒฅ ffใ…—์ง (2)

ํŒ€์›์ด๋ฆ„
์กฐ์˜ˆ์ง€
๊น€ํฌ์ •
๋ฐฑ์Šน๊ทผ
์กฐ๋ฌธ์ฃผ
์ด์ƒํ›ˆ
๊น€๋ฏผ๊ฒฝ
1 more property

ํŒ€์› ๊ฐ์ž์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์Šคํƒ€์ผ์„ ์ ์–ด์ฃผ์„ธ์š”

1. ํŒ€์› ๊นƒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋งํฌ ์ž‘์„ฑํ•˜๊ธฐ 2. ๋ณธ์ธ์ด ์ƒ๊ฐํ•˜๋Š” ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ•ต์‹ฌ์ด ๋ฌด์—‡์ธ์ง€ ๊ณ ๋ฏผํ•˜๊ธฐ 3. ์–ด๋–ค ์ ์„ ์ค‘์ ์œผ๋กœ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์— ์ž„ํ•  ๊ฒƒ์ธ์ง€ ๋“ฑ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
GitLab Repository
์กฐ์˜ˆ์ง€
@coastbyn
๊น€ํฌ์ •
@hjx66
๋ฐฑ์Šน๊ทผ
@geunnseung
์กฐ๋ฌธ์ฃผ
@mooonju
์ด์ƒํ›ˆ
@tkdtkd975
๊น€๋ฏผ๊ฒฝ
@minry20415
ย ๋ฆฌ๋ทฐ์˜ ํ•ต์‹ฌ
์กฐ์˜ˆ์ง€
์กฐ๋ฌธ์ฃผ
๊น€ํฌ์ •
์ด์ƒํ›ˆ
๊น€๋ฏผ๊ฒฝ
๋ฐฑ์Šน๊ทผ

์šฐ๋ฆฌ ํŒ€์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ฐ€์ด๋“œ๋ฅผ ์„ธ์›Œ๋ด…์‹œ๋‹ค!

์ฐธ๊ณ ์ž๋ฃŒ1) https://tech.kakao.com/2022/03/17/2022-newkrew-onboarding-codereview/ ์ฐธ๊ณ ์ž๋ฃŒ2) https://2jinishappy.tistory.com/337 ์ฐธ๊ณ ์ž๋ฃŒ3) https://techblog.woowahan.com/2712/ ์ƒ๋‹จ ์ž๋ฃŒ๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ์šฐ๋ฆฌ ํŒ€๋งŒ์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!

ย Check-List

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

ย ๋ฆฌ๋ทฐ์–ด์˜ ์ž์„ธ

1.
์„œ๋กœ๋ฅผ ๋ฆฌ์ŠคํŽ™ํ•˜๋Š” ๋งˆ์Œ์„ ๊ฐ€์ง„๋‹ค.
2.
์ง€์‹ ๊ณต์œ ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.
3.
์‚ฌ์†Œํ•œ ์˜๊ฒฌ์ด๋ผ๋„ ์ž์œ ๋กญ๊ฒŒ ์˜๊ฒฌ์„ ์ œ์‹œํ•œ๋‹ค.
a.
์Šค์Šค๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”ผ๋“œ๋ฐฑ์„ ์ค€๋‹ค.
b.
๊ทผ๊ฑฐ ๋˜๋Š” ์˜ˆ์‹œ๋ฅผ ๊ฐ™์ด ์ œ์‹œํ•œ๋‹ค.
4.
์‚ฌ์†Œํ•œ ์นญ์ฐฌ๋„ ์•„๋‚Œ์—†์ด ํ•œ๋‹ค.
5.
์ƒ๋Œ€๋ฐฉ์˜ ์ฝ”๋“œ์— ๊ถ๊ธˆํ•œ ์ ์€ ํŽธํ•˜๊ฒŒ ์งˆ๋ฌธํ•œ๋‹ค.
6.
๋ณธ์ธ์˜ ์ฝ”๋“œ์— ์–ด๋ ค์šด ๋ถ€๋ถ„ ๋˜๋Š” ์ง‘์ค‘ํ•  ๋ถ€๋ถ„์„ ์•Œ๋ ค์ค€๋‹ค.

PR ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ

ย PR ์Šคํƒ€์ผ
ย mytemplate.md
## โฃ๏ธ Motivation - <br> ## ๐Ÿ“Œ Key Changes - <br> ## ๐Ÿ‘ฅ To Reviewers -
Markdown
๋ณต์‚ฌ
โ€ข
๋ฌด์Šจ ์ด์œ ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€
โ€ข
์–ด๋–ค ์œ„ํ—˜์ด๋‚˜ ์žฅ์• ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋Š”์ง€
โ€ข
์–ด๋–ค ๋ถ€๋ถ„์— ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ง‘์ค‘ํ•˜๋ฉด ์ข‹์„์ง€
โ€ข
๊ด€๋ จ ์Šคํฌ๋ฆฐ์ƒท
โ€ข
ํ…Œ์ŠคํŠธ ๊ณ„ํš ๋˜๋Š” ์™„๋ฃŒ ์‚ฌํ•ญ
ย PR์˜ ํฌ๊ธฐ
โ€ข
๋„ˆ๋ฌด ํ•œ๋ฒˆ์— ๋งŽ์ด ์˜ฌ๋ฆฌ๋ฉด ๋ฆฌ๋ทฐํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค์–ด์ง„๋‹ค.
โ€ข
ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด๋ผ๋„ ํ•˜๋‚˜์˜ PR์— ์ฝ”๋“œ๋Ÿ‰์ด ๋งŽ์•„์ง€์ง€ ์•Š๊ฒŒ ์˜๋ฏธ ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ž˜๋ผ์„œ ์˜ฌ๋ฆฌ๊ธฐ
โ€ข
์˜๋ฏธ์žˆ๋Š” ์ปค๋ฐ‹ ๋ถ„๋ฆฌํ•˜๊ธฐ : ์ค‘๋ณต ์ œ๊ฑฐ, ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ, ํฌ๋งท ๋ณ€๊ฒฝ ๋“ฑ ์˜๋ฏธ ์—†๋Š” ๋ณ€๊ฒฝ์€ ์ปค๋ฐ‹์„ ๋”ฐ๋กœ ๋‚ด์–ด์ฃผ๊ธฐ

๋Œ•๋ƒฅ๋ฝ€์ž‘์˜ ์ฝ”๋“œ๊ฐ€์ด๋“œ

DTO์˜ ์‚ฌ์šฉ
โ€ข
๋ฒ”์œ„
โ—ฆ
controller ย sevice
โ€ข
๋„ค์ด๋ฐ, ๋ถ„๊ธฐํ•˜๋Š” ๊ธฐ์ค€
โ†’ ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ๋“ฏ
โ€ข
Entity์™€์˜ ๋ณ€ํ™˜ ๋ฉ”์„œ๋“œ ์œ„์น˜
โ—ฆ
DTO์— ๋„ฃ๊ธฐ
ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ
โ€ข
ํŒจํ‚ค์ง€ ๊ตฌ์กฐ
โ—ฆ
configuration
โ—ฆ
domain
โ–ช
entity
โ–ช
dto
โ€ข
user
โ€ข
post
โ€ข
response
โ—ฆ
controller
โ—ฆ
service
โ—ฆ
repository
โ—ฆ
security
โ—ฆ
exception
โ—ฆ
utils

์šฐ๋ฆฌ ํŒ€์˜ 1์ธ๋‹น ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ตœ์†Œ ์‹œ๊ฐ„์€?

์–ด๋–ค ์‹์œผ๋กœ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•  ๊ฒƒ์ธ์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ๊ณ ๋ฏผํ•˜์—ฌ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์„ ์ •ํ•ด์ฃผ์„ธ์š”!
ย ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ
โ€ข
1์ธ๋‹น 50๋ถ„ (30๋ถ„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋Œ“๊ธ€ ์ž‘์„ฑ + 15๋ถ„ ๋งํ•˜๊ธฐ)
โ€ข
12/28 :
๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ•˜๋‚˜ ํŒŒ์„œ ์ „์ฒด๋ฅผ ์˜ฌ๋ฆฌ๊ณ  commit์— ๋Œ“๊ธ€ ๋ฆฌ๋ทฐ ๋‚จ๊ธฐ๊ธฐ
ย ํŒ€ ํ”„๋กœ์ ํŠธ
โ€ข
์•„์นจ 11์‹œ : ๋งค์ผ 1์‹œ๊ฐ„
โ€ข
1์ธ๋‹น 10๋ถ„๋‚ด์™ธ
โ€ข
PR์ด ์˜ฌ๋ผ์˜ค๋ฉด ๋‹ค์Œ๋‚  ์•„์นจ ๋ฆฌ๋ทฐ์‹œ๊ฐ„ ์ „๊นŒ์ง€ ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
โ€ข
PR ๋งˆ๊ฐ ์‹œ๊ฐ„ : ์˜ค์ „ 9์‹œ

์ฝ”๋“œ ๋ฆฌ๋ทฐ ์™„๋ฃŒ ํ™•์ธ์€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ• ๊นŒ์š”?

1. ์–ด๋–ค ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•ด์„œ ์–ด๋–ป๊ฒŒ ์†Œํ†ตํ• ์ง€ 2. ํ™•์ธ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ• ์ง€ 3. ํ™•์ธ ํ›„ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ• ์ง€ ๋“ฑ์„ ๊ณ ๋ฏผํ•˜์—ฌ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
1.
GitLab
a.
issue ์ƒ์„ฑ
2.
template
โ†’ ์ถ”ํ›„ ๋…ผ์˜ ํ›„ ํ…œํ”Œ๋ฆฟ ๊ฒฐ์ • ์˜ˆ์ •
3.
์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
โ€ข
3๋ช… ํŒ€์œผ๋กœ ๋ฆฌํŒฉํ† ๋ง ํ›„ ํ™•์ธ
โ€ข
UPDATE : saveAndFlush()
โ—ฆ
save()๋Š” ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅ๋˜๊ณ , saveAndFlush()๋Š” DB์— ๋ฐ”๋กœ ๋ฐ˜์˜๋จ (save() + flush())
โ€ข
@PrePersist
โ€ข
@Index(name = "post_id_idx", columnList = "post_id") // ์ด๊ฑด ๋ญ˜๊นŒ?
@Table(name = "comment", indexes = { @Index(name = "post_id_idx", columnList = "post_id") }
Java
๋ณต์‚ฌ
โ€ข
CommentRequest์—์„œ๋งŒ @NoArgsConstructor๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 
โ—ฆ
ํฌ์ŠคํŠธ๋ž‘ ์œ ์ €๋Š” ์—†์–ด๋„ ๋จ
โ€ข