Comment ๋?
Code์ ๋ํ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋ถ๊ฐ ์ค๋ช .
์ฌ๋์ด Code๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค.
โถ Clean Commet ์์น
1. Comment๋ ํ์์ ์ด๋ค
2. Comment๋ ๋๋ถ๋ถ์ ์ํฉ์์ ์ฌ์ฉํ์ง ๋ง์์ผ ํ๋ค.
(๊ทธ๋ฌ๋ Comment๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๋ช ๊ฐ์ง ์์ธ ์ํฉ์ด ์๋ค)
* ์ ์ต๋ํ ์ฝ๋ฉํธ๋ฅผ ํผํด์ผํ ๊น?
>> Comment ๋ณด๋ค Code ๊ทธ ์์ฒด๊ฐ ์๋ฏธ ์์ด์ผ ํ๋ค.
- Comment๋ก ๋ถ๊ฐ ์ค๋ช ์ด ํ์ํ๋ค๋ฉด Code๊ฐ ์ถฉ๋ถํ ์๋ฏธ ์์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
- Comment์ ์์งํ๊ธฐ ๋ณด๋ค ์๋ฏธ์๋ Code๋ฅผ ์์ฑํ๋ ๋ ธ๋ ฅ์ด ํ์ํ๋ค
>> Comment๋ ์ต์ ์ ๋ณด๋ฅผ ๋ด์ง ๋ชปํ๋ค.
- Code๋ฅผ ๋ณ๊ฒฝํ๋ค๊ณ Comment ๋ณ๊ฒฝ๋ ํ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ํญ์ ์ต์ ์ ๋ณด๋ก ์์ ํ์ง ์๋๋ค. ๋ฐ๋ผ์ Comment์ ์ ๋ณด๋ ์๋ชป ๋, ์ค๋ ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
>> Comment๋ ๋ถํ์ํ๊ณ ์ค๋ณต๋ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ ์ ์๋ค.
- Code๋ก ์๋ฏธ๋ฅผ ์ถฉ๋ถํ ํํํ๊ณ ์๋ ๊ฒฝ์ฐ, Comment์ ์ค๋ณต์ ์ธ ์ ๋ณด๋ ํ์์๊ฒ ๋๋ค.
- ์ฝ๋์ ์์ ์ด๋ ฅ์ ํํํ๋ Comment๋ ํ์ ๊ด๋ฆฌ ๋๊ตฌ๋ก ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๋ค
Bad Comment์ ์ ํ
1. ์๋ฏธ๊ฐ ๋ชจํธํ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ Comment
: Code ์์ฒด๋ก ์ถฉ๋ถํ ๋ช ํํ ํํ์ด ์๋ ๋ ์ฌ์ฉํ๋ค.
→ ๊ฐ๋ ์ฑ ํฅ์์ ๋ชฉ์ ์ผ๋ก Comment๋ฅผ ์์ฑํ๋ ์ด๋ด๋๋ Code ์์ฒด๋ฅผ ๊ฐ์ ํด์ผ ํ๋ค.
2. ์ค๋ณต๋ ์ ๋ณด๋ฅผ ๋ํ๋ด๊ฑฐ๋ ์๋ฌด์ ์ผ๋ก ์์ฑํ๋ Comment
: ์๋ฏธ๊ฐ ๋ถ๋ช ํ Code์ Comment๋ก ์ค๋ณต ์ค๋ช ์ ํ๋ค.
→ Code ๋ณ๊ฒฝ ์ Comment๋ ๋ณ๊ฒฝ๋์ง ์์ ๊ฐ๋ฅ์ฑ๋ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ด๋ด๋๋ ์ค๋ณต์ ์ ๊ฑฐํด์ผ ํ๋ค.
3. Comment ์ฒ๋ฆฌ ๋ Code
: ๋น์ฅ ํ์๋ ์์ง๋ง ์์ ๊ธฐ๋ ์๊น์ด Code๋ค
→ ์ด๋ Git๊ณผ ๊ฐ์ ํ์ ๊ด๋ฆฌ ๋๊ตฌ๋ก ์ผ๋ง๋ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ Comment ์ฒ๋ฆฌ ๋ Code๋ ๋ฌด์กฐ๊ฑด ์ญ์ ํ๋ค.
4. ์ด๋ ฅ์ ๋จ๊ฒจ๋์ Comment
: ํน์ File์ด๋ Class, Method์ ์์ ์ด๋ ฅ์ ๋จ๊ฒจ ๋์ ๊ฒ
→ ์ด๋ฐ ๊ฒ๋ Git๊ณผ ๊ฐ์ ํ์ ๊ด๋ฆฌ ๋๊ตฌ๋ก ๋ชจ๋ ์ด๋ ฅ์ด ๊ด๋ฆฌ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์ด๋ ฅ Comment๋ ๋ฌด์กฐ๊ฑด ์ญ์ ํ๋ค.
๋ฐ๋ผ์ Clean Comment ๋, "Comment๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ"์ด๋ค.
๊ทธ๋ฌ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฝ๋ฉํธ๊ฐ ํ์ํ ์์ธ ์ํฉ์ด ์๋ค. ์ด๋ด๋๋ ์ ์ ํ Comment ์ฌ์ฉ์ด ํ์ํ๋ค.
1. ์ ์๊ถ ๋ฑ์ ๋ช ์ํ๋ Comment
→ ํ์ฌ ์ ์ฑ ์ ์ํด ์์ ๊ถ, ์ ์๊ถ ๋ฑ์ ํ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ด๋๋ ๋ชจ๋ ์์คํ์ผ์ ์ ์๊ถ ํ์ Comment๊ฐ ํ์ํ๋ค.
2. ๋ค์๊ฐ ์ฌ์ฉํ๋ Open API์ ๋ฌธ์ํ
→ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ API ์ฌ์ฉ์ ์ฉ์ด์ฑ์ ๋์ด๊ธฐ ์ฐํใ Java Doc๊ณผ ๊ฐ์ Comment๊ฐ ํ์ํ๋ค.
3. ์ด๋ฆ๋ง์ผ๋ก ์ถฉ๋ถํ ์๋ฏธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ
→ ๋ถ๊ฐํผํ๊ฒ ์ด๋ฆ๋ง์ผ๋ก ์ถฉ๋ถํ ์๋ฏธ/์๋๋ฅผ ํํํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋ํ์ ์ธ ์ฌ๋ก๋ก ๋ณต์กํ ์ ๊ทํํ์์ ์๋ ํํ์ด ์๋ค.
4. TO DO Comment
→ TO DO Comment๋ก ์์ผ๋ก ํด์ผ ํ ์์ ์ ๊ฐ๋ตํ ํ์๋ ๊ฐ๋ฅํ๋ค.
Code Formatting
์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ดํด๋๋ฅผ ๋์ฌ์ฃผ๋ ์ผ๋ จ์ ์์
Formatting์ ์ค์ํ๋ค. Formatting์ด ๋์์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค๊ณ ํด์ ๋ฌด์ํด์๋ ์๋๋ค.
๋๋ถ๋ถ ์ธ์ด ๋ณ Style Guide์๋ Formatting์ด ๋ฐ๋์ ํฌํจ๋์ด ์์๋งํผ, ๊ฐ๋ ์ฑ๊ณผ Foramatting์ ๋ฐ์ ํ ๊ด๋ จ์ด ์๋ค.
Formatting๋ง ๋ณ๊ฒฝ๋์ด๋ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ํฅ์๋๋ค.
์์ง์ Formatting
์ฝ๋์ ์ → ์๋๋ก ์งํ๋ ํ๋ฆ๊ณผ ๊ด๋ จ๋ ์ฝ๋ ์์ฑ ๊ท์น
→ ์ฝ๋ ๋ผ์ธ ๊ฐ์ ๊ฐ๊ฒฉ, ๋ฐ์ ํ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ์ฝ๋ ๊ฐ์ ๊ทธ๋ฃนํ ๋ฑ์ด ํฌํจ๋๋ค.
โซ ์ถ์ํ์ ์์ค ์์๋ก ์ฝ๋๋ฅผ ๋ฐฐ์นํ๋ค.
โซ ์๋ก ๋ค๋ฅธ ๊ฐ๋ ์ ๋ถ๋ฆฌํ๋ค.
→ ๋น ํ์ ์ฌ์ฉํ์ฌ ๊ธ์ ๋ฌธ๋จ์ ๋๋๋ฏ ์ฝ๋์ ๊ฐ๋ ์ ๋ถ๋ฆฌํ๋ค.
โซ ์ ์ฌํ ๊ฐ๋ ์ ๋ชจ์ ๋๋๋ค.
→ ๊ฐ๋ ์ ์ผ๋ก ์ ์ฌํ ๋ด์ฉ์ ๋น ํ์ ์ฌ์ฉํ์ง ๋ง๊ณ ๋ถ์ฌ์ ์์ฑํ๋ค.
โซ ๊ด๊ณ์๋ ๋ด์ฉ์ ๊ฐ๊น์ด ํ์ ์์ฑํ๋ค.
→ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ํด ์ฌ๋ฌ๋ฒ์ Jump ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด ๊ด๋ จ์๋ ๋ฉ์๋๋ค์ ๊ฐ๊น์ด ๋ฐฐ์นํด์ผํ๋ค.
→ Method๋ฅผ ์ถ๊ฐํ ๋๋ ์๊ฐ์ ์์๊ฐ ์๋ ๋ ผ๋ฆฌ์ ์ธ ๊ด๋ จ์ฑ์ ๋ฐ๋ผ ๋ฐฐ์นํด์ผ ํ๋ค.
์ํ์ (Horizontal) Formatting
์ฝ๋ ํ ์ค์ ๋ํด ์ผ์ชฝ → ์ค๋ฅธ์ชฝ์ผ๋ก ์งํ๋ ํ๋ฆ๊ณผ ๊ด๋ จ๋ ์ฝ๋ ์์ฑ ๊ท์น
→ ๋ค์ฌ์ฐ๊ธฐ, ์ฝ๋ ๊ฐ์ ๊ฐ๊ฒฉ, ์ฝ๋ ํ์ ๋์ด ๋ฑ์ด ํฌํจ๋๋ค.
→ ์ฝ๋ ํ ์ค์ ์คํฌ๋กค์ ์ด๋์์ด ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
โซ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ค.
→ ๋ค์ฌ์ฐ๊ธฐ๋ ๊ด๋ จ์๋ ๊ฐ๋ ๋ค์ ๋ ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ๊ฐ๋ ์ฑ์ ํฅ์ ์ํจ๋ค. (์ผ๋ถ ์ธ์ด๋ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ํ์์ ์)
โซ ํ ์ค์ ๊ธด ์ฝ๋๋ฅผ ์ฌ๋ฌ ์ค์ ์งง์ ์ฝ๋๋ก ๋ถ๋ฆฌํ๋ค.
→ ์ํ ์คํฌ๋กค๋ง ์์ด ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ ์ ์์ด์ผ ํ๋ค.
โซ ์ํ ์ ๋ ฌ์ ์ค์ํ์ง ์๋ค.
→ ์ํ ์ ๋ ฌ์ ํด๋ ์๊ด ์์ผ๋ ํ์ํ์ง๋ ์๋ค. ์คํ๋ ค ์ดํ ์์ ์ ์ถ๊ฐ ์์ ์ ํ์๋กํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
์ฝ๋ํ๋ ์ Java ์น ๊ฐ๋ฐ ์ฒดํ๋จ ํ๋ ์ค 'SW ์ ์ง๋ณด์์ฑ ํฅ์์ ์ํ Clean Code' ์ด๋ฌ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ฑํ์์ต๋๋ค :)
์ฝ๋ํ๋ ์ URL: https://www.codepresso.kr/
'๐ ๊ธฐํ > ์ฝ๋ํ๋ ์ ์ฒดํ๋จ_BE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
HTML๊ณผ CSS์ ๊ธฐ์ด ๊ฐ๋ (0) | 2022.01.28 |
---|---|
Clean Control Structure | Refactoring (0) | 2022.01.24 |
Clean Method (0) | 2022.01.24 |
Clean Naming (0) | 2022.01.23 |
[Java] ์ปฌ๋ ์ ํ๋ ์์ํฌ : List (0) | 2022.01.21 |