Search
Duplicate

Code Convention

Naver-Coding-Convention

https://naver.github.io/hackday-conventions-java/ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค.
IntelliJ IDEA ์ปจ๋ฒค์…˜ ์ ์šฉ ์ฐธ๊ณ  ๋งํฌ

TL; DR; (Too Long Didnโ€™t Read)

1. ์ฝ”๋”ฉ ๊ทœ์น™ ์ •ํ•˜๊ธฐ 2. Branch์™€ ์ปค๋ฐ‹์ด๋ฆ„์— ์ด์Šˆ๋ฒˆํ˜ธ prefix๋กœ ์ ๊ธฐ 3. PR๊ณผ ์ปค๋ฐ‹์€ ์ตœ๋Œ€ํ•œ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๊ธฐ 4. GitHub ํ…œํ”Œ๋ฆฟ์œผ๋กœ PR๋‚ด์šฉ ๊ทœ๊ฒฉํ™” 5. ๋ผ๋ฒจ ํ™œ์šฉํ•˜๊ธฐ 6. ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋นŒ๋“œ ์„ฑ๊ณต์—ฌ๋ถ€/์ฝ”๋”ฉ์ปจ๋ฒค์…˜ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ 7. ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋‚ด์šฉ ๋ฐ˜์˜ํ• ๋•Œ๋งˆ๋‹ค ์ปค๋ฐ‹ id๋‚จ๊ธฐ๊ธฐ
Plain Text
๋ณต์‚ฌ

Entity

โ€ข
@Setter ์‚ฌ์šฉ ๊ธˆ์ง€
โ€ข
์ธ์ž๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๊ธธ์–ด์ง„๋‹ค๋ฉด, ๊ฐ ์ธ์ž๋ณ„๋กœ ์ค„๋ฐ”๊ฟˆ ํ•ด์ฃผ๊ธฐ
โ€ข
request โ†’ entity
User.of(UserCreateRequest)
userService ์•ˆ์— User.of(request)
โ€ข
entity โ†’ response
response.from(entity)

Response

โ€ข
Custom ResultCode ์‚ฌ์šฉ
โ—ฆ
Custom ResponseEntity ์‚ฌ์šฉ
โ–ช
code : ์„œ๋น„์Šค ์ฝ”๋“œ๊ฐ’
โ€ข
๋„๋ฉ”์ธ ์ฒซ ๊ธ€์ž ๋Œ€๋ฌธ์ž + 0(์„ฑ๊ณต) / 1 (์‹คํŒจ) + XX ( 0~99 ํ•˜์œ„ ๊ธฐ๋Šฅ) + XX (0~99 ์‹๋ณ„์ž๊ฐ’ ) ์˜ˆ์‹œ : ํšŒ์›๊ฐ€์ž… ์„ฑ๊ณต - U00100 / ์‹คํŒจ (์•„์ด๋”” ์ค‘๋ณต) - U10100 ๋กœ๊ทธ์ธ ์„ฑ๊ณต - U00200 / ์‹คํŒจ (๋กœ๊ทธ์ธ ์ •๋ณด ๋‹ค๋ฆ„) - U10200
โ–ช
message : ์‘๋‹ต ๋ฉ”์‹œ์ง€
โ–ช
data : ์‘๋‹ต ๋ฐ์ดํ„ฐ
โ€ข
api 1๊ฐœ๋‹น dto 1๊ฐœ์”ฉ (req, res)
โ—ฆ
๋‹จ๊ฑด ์กฐํšŒ @Pathvariable ์‚ฌ์šฉ
โ–ช
์š”์ฒญํ•  ๋ฐ์ดํ„ฐ๊ฐ€ 1๊ฐœ์ผ ๊ฒฝ์šฐ๋งŒ ํ•ด๋‹น
โ–ช
2๊ฐœ ์ด์ƒ์€ Dto์— ๋‹ด์•„์„œ ์š”์ฒญ

์ด๋ฆ„ (Naming)

1. ์‹๋ณ„์ž์—๋Š” ์˜๋ฌธ/์ˆซ์ž/์–ธ๋”์Šค์ฝ”์–ด๋งŒ ํ—ˆ์šฉ
2. ํ•œ๊ตญ์–ด ๋ฐœ์Œ๋Œ€๋กœ์˜ ํ‘œ๊ธฐ ๊ธˆ์ง€
3. ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ
4. ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์— ๋Œ€๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ• ์ ์šฉ
5. ํด๋ž˜์Šค ์ด๋ฆ„์— ๋ช…์‚ฌ ์‚ฌ์šฉ
6. ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์— ๋ช…์‚ฌ/ํ˜•์šฉ์‚ฌ ์‚ฌ์šฉ
7. ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค๋Š” 'Testโ€™๋กœ ๋๋‚จ
8. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์— ์†Œ๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ• ์ ์šฉ
9. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์€ ๋™์‚ฌ/์ „์น˜์‚ฌ๋กœ ์‹œ์ž‘
10. ์ƒ์ˆ˜๋Š” ๋Œ€๋ฌธ์ž์™€ ์–ธ๋”์Šค์ฝ”์–ด๋กœ ๊ตฌ์„ฑ
11. ๋ณ€์ˆ˜์— ์†Œ๋ฌธ์ž ์นด๋ฉœํ‘œ๊ธฐ๋ฒ• ์ ์šฉ
12. ์ž„์‹œ ๋ณ€์ˆ˜ ์™ธ์—๋Š” 1 ๊ธ€์ž ์ด๋ฆ„ ์‚ฌ์šฉ ๊ธˆ์ง€
13. static import์—๋งŒ ์™€์ผ๋“œ ์นด๋“œ ํ—ˆ์šฉ

๋ณด๋ฅ˜

Checkstyle ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •

์•„๋ž˜์™€ ๊ฐ™์ด `build.gradle`์— ์„ ์–ธํ•œ๋‹ค.
plugins { id 'checkstyle' } checkstyle { maxWarnings = 0 // ๊ทœ์น™์ด ์–ด๊ธ‹๋‚˜๋Š” ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์„ ๊ฒฝ์šฐ ๋นŒ๋“œ fail์„ ๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ์„ ์–ธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. configFile = file("${rootDir}/naver-checkstyle-rules.xml") configProperties = ["suppressionFile" : "${rootDir}/naver-checkstyle-suppressions.xml"] toolVersion ="8.24" // checkstyle ๋ฒ„์ „ 8.24 ์ด์ƒ ์„ ์–ธ }
JavaScript
๋ณต์‚ฌ