Clean Naming์ ์์๋ณด๊ธฐ์ ์์ Clean Code๋ ๋ฌด์์ผ๊น?
Clean Code๋?
์ดํดํ๊ธฐ ์ฝ๊ณ , ๋ณ๊ฒฝํ๊ธฐ ์ฌ์ด Code.
์ฌ๋์ด ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ๊ณ , ๋ช ํํ ํ๊ฐ์ง ์ญํ ์ ํ๋ฉฐ, ์ด ์ญํ ์ ์๋ฏธ์๊ฒ ํํํ๊ณ ,
์ค๋ณต์ด ์๊ณ ํ ์คํธ ์ผ์ด์ค๊ฐ ์กด์ฌํ๋ Code ์ด๋ค.
Clean Naming์ ๊ฐ๋ ์ฑ ํฅ์์ ๊ฐ์ฅ ์ค์ํ ์์์ด๋ค.
๊ฐ๋ฐ์ ๋๋ถ๋ถ์ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์์ ํ๋ ํ์์ด๋ค. ๋ง์ฝ ๊ทธ๊ฒ ์๋ฐฑ ๋ผ์ธ์ ์ฝ๋๋ผ๋ฉด ํฌ๊ฒ ์ด๋ ค์ด ์ผ์ด ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์์ญ, ์๋ฐฑ๋ง ๋ผ์ธ์ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ๊ณ ์์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ์ด๋ค. ๊ทธ๋ ๊ธฐ์ Clean Naming์ ๋ํ ์์ ํฌ์๋ ์ฅ๊ธฐ์ ์ผ๋ก๋ ํ์ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์์ ํฌ๊ฒ ๊ธฐ์ฌ๊ฐ ๋ ์ ์๋ ๋ถ๋ถ์ด๋ค.
SW์ ์ฃผ์ ์์๋ค์ ๋ชจ๋ ์๋์ ๊ฐ์ด Clean Name์ด ํ์ํ๋ค.
โ Clean Naming์ ๋์์น โ
ใ ๋ชจ๋ ์ด๋ฆ์ ๋ฐ๋์ ๊ทธ ์๋ฏธ๊ฐ ๋ชจ๋์๊ฒ ๋ช ํํด์ผ ํ๋ค. ใ
โถ Clean Naming์ ์์น
· Function, Class ์ญํ ์ด ๋ช ํํ๋ฉด Naming๋ ๋ช ํํด์ง๋ค.
· ๋ถํ์ํ ์ ๋ณด/๋ฐ๋ณต์ ์ ๊ฑฐํด์ผ ํ๋ค.
· ์ค์๋ง(์ฝ์ด)๋ฅผ ์ฌ์ฉํ์ง ์์์ผ ํ๋ค.
· ๊ท์น๊ณผ ์ผ๊ด์ฑ์ ์ค์ํ๋ค.
· ๋๋ฃ์ ์์ํด์ผ ํ๋ค.
ํ๋์ฉ ์์ธํ ์์๋ณด์.
โซ Function, Class ์ญํ ์ด ๋ช ํํ๋ฉด Naming๋ ๋ช ํํด์ง๋ค.
- Clean Function, Class์ ์ 1์์น์ ๋ช ํํ ํ ๊ฐ์ง ์ญํ ์ ํ๋ ๊ฒ์ด๋ค.
- ์ญํ ์ด ๋ง์ผ๋ฉด ์ด๋ฆ๋ ๋ช ํํ์ง ์๊ฒ ๋๋ค. (ex. User, GeneralUtil ···)
โซ ๋ถํ์ํ ์ ๋ณด/๋ฐ๋ณต์ ์ ๊ฑฐํด์ผ ํ๋ค.
- ์ด๋ฆ์ ์ดํด๊ฐ๋ฅํ ์ต์ํ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ด์ผ ํ๋ค. (๋๋ฌด ์งง์ง๋, ์ฅํฉํ์ง๋ ์์์ผ ํจ)
- ๋ถํ์ํ ์ ๋ณด (ex. UserData, processFunc() ···)
โซ ์ค์๋ง(์ฝ์ด)๋ฅผ ์ฌ์ฉํ์ง ์์์ผ ํ๋ค.
- ์ค์๋ง์ ๊ฐ๋ ์ฑ์ ์ฌ๊ฐํ๊ฒ ์ ํ์ํจ๋ค.
- ๋๊ตฌ๋ ์ดํดํ ์ ์๋ ์ค์๋ง์ ์กด์ฌํ์ง ์๋๋ค.
- ์ค์๋ง์ ์ (temp, prdt, acc() → temperature, product, accelerateSpeed() ···)
โซ ๊ท์น๊ณผ ์ผ๊ด์ฑ์ ์ค์ํ๋ค.
- ์ธ์ด๋ณ, ์กฐ์ง๋ณ Naming Convention์ ์ผ๊ด์ฑ ์๊ฒ ์ง์ผ์ผ ํ๋ค.
- ์ผ๊ด์ฑ์ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์์ ํ๋ ๋ ธ๋ ฅ์ ๊ฐ์์ํจ๋ค.
- ์ผ๊ด์ฑ ์๋ Naming์ ๊ฐ๋ ์ฑ์ ์ ํ์ํจ๋ค.
โซ ๋๋ฃ์ ์์ํด์ผ ํ๋ค.
- ๋ชจ๋ ์์น์ ์ ์ฉํด๋ ์ข์ ์ด๋ฆ์ด ๋ ์ค๋ฅด์ง ์์ ๋
- ๋ด๊ฐ ๋ช ๋ช ํ ์ด๋ฆ์ ๋ํ ํ์ ์ด ์์ ๋
→ ์ด๋ด๋๋ ๋๋ฃ์ ํจ๊ปํ๋ ๋ฆฌ๋ทฐ, ๋ธ๋ ์ธ์คํ ๋ฐ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
" Variable ์ ์ํ Clean Naming "
๋ณ์์ type์ ๋ฐ๋ผ ์ด๋ฆ์ ์ด๋ป๊ฒ ์์ฑํด์ผ ํ ๊น?
์ Naming์ ์ค์ ์ฌ๋ก๋ฅผ ๋ณด์
๊ทธ๋ฌ๋, ์ด๋ฌํ ์ด๋ฆ๋ ์ถฉ๋ถํ ์ข์ง๋ง ์ํฉ์ ๋ฐ๋ผ ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ์ํ๋ค๋ฉด ๋ ๋ช ํํ ๋ณ์๋ฅผ ํํํ ์ ์๋ค.
๊ทธ๋ผ Clean Variable Naming์ Bad Smell์ ๋ํด์๋ ์์๋ณด์
์์ ๋ณธ ๊ฐ ๋ณ์์ ๋ํ Bad Smell์ ์ฌ๋ก๋ฅผ ๋ณด์
" Method ๋ฅผ ์ํ Clean Naming "
· Method์ ์ด๋ฆ์ ์๋์ ๊ธฐ๋ฅ์ ๋ช ํํ๊ฒ ํํํด์ผ ํ๋ค.
· Method์ ์ด๋ฆ์ ์ด๋ค ๋์(๋์ฌ)์ ๋ฌด์์ ๋์(๋ช ์ฌ)์ผ๋ก ํ ๊ฒ์ธ์ง๋ก '๋์ฌ+๋ช ์ฌ'๋ก ์กฐํฉํ์ฌ ํํํ๋ค.
Method Type์ ๋ฐ๋ผ ์ด๋ฆ์ ์ด๋ป๊ฒ ์์ฑํด์ผ ํ ๊น?
์ ์์ฑ๋ฒ์ ๋ฐ๋ฅธ Naming์ ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ํจ๊ปํ ์ฌ๋ก๋ฅผ ๋ณด์
๊ทธ๋ผ Clean Variable Naming์ Bad Smell์ ๋ํด์๋ ์์๋ณด์
" Class ๋ฅผ ์ํ Clean Naming "
- ํด๋์ค์ ์ํด ์์ฑ๋๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธ์๊ฒ ์ค๋ช ํด์ผ ํ๋ค.
- '๋ช ์ฌ ๋๋ ๋ช ์ฌ๊ตฌ'๋ฅผ ์ฌ์ฉํ๊ณ , ๋์ฌ๋ ์ฌ์ฉํ์ง ์๋๋ค.
Class Name์ ์ฌ๋ก๋ฅผ ๋ณด์
โถ Clean Class Naming์ ์์น
- ๊ตฌ์ฒด์ ์ด๊ณ ๋ช ํํ ์ด๋ฆ์ ์ฌ์ฉํด๋ผ.
- Convention์ ์ค์ํ๋ ์ผ๊ด์ฑ ์๋ ์ด๋ฆ์ ์ฌ์ฉํด๋ผ.
- ๋ณดํธ ์ธ์ด๋ฅผ ํ์ฉํด๋ผ.
โซ ๊ตฌ์ฒด์ ์ด๊ณ ๋ช ํํ ์ด๋ฆ์ ์ฌ์ฉํด๋ผ.
โซ Convention์ ์ค์ํ๋ ์ผ๊ด์ฑ ์๋ ์ด๋ฆ์ ์ฌ์ฉํด๋ผ.
- ์กฐ์ง๋ด๋ถ์์ ํน์ ๊ฐ๋ ์ ๋ํ ์ฉ์ด๋ฅผ ์ ์ํ๊ณ ์ผ๊ด์ฑ์ด ์๊ฒ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋ณดํธ์ ์ธ ๊ธฐ์ ์ฉ์ด๋ฅผ ํ์ฉํด์ผํ๋ค. (ex. Factory, Builder, Obsever, Controller)
โซ ๋ณดํธ ์ธ์ด๋ฅผ ํ์ฉํด๋ผ.
- ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ, SW ์ํคํ ํธ, ๊ฐ๋ฐ์์ ์ธ์ด๋ฅผ ๋ชจ๋ ํต์ผํด์ผ ํ๋ค.
- ๊ธฐ์ค์ ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ๋ค์ด ์ฌ์ฉํ๋ ์ธ์ด๊ฐ ๋์ด์ผ ํ๋ค.
- ์ด ์ธ์ด๋ ๋ชจ๋ ์ปค๋ฎค๋์ผ์ด์ , ์ค๊ณ๋ฌธ์, ์ค์ ์ฝ๋๊น์ง ํต์ผ๋์ด์ผ ํ๋ค.
Coding Rule
SW ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ ๋ฐ ๊ท์น์ ๋ชจ์
Coding Rule์ ์ข ๋ฅ
Coding Rule์ ์ค์์ฌ๋ถ ํ์ธ
์ฝ๋ํ๋ ์ Java ์น ๊ฐ๋ฐ ์ฒดํ๋จ ํ๋ ์ค 'SW ์ ์ง๋ณด์์ฑ ํฅ์์ ์ํ Clean Code' ์ด๋ฌ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ฑํ์์ต๋๋ค :)
์ฝ๋ํ๋ ์ URL: https://www.codepresso.kr/
ํ๋ฆฌ๋ฏธ์ IT ๊ต์ก ์๋น์ค - ์ฝ๋ํ๋ ์
www.codepresso.kr
'๐ ๊ธฐํ > ์ฝ๋ํ๋ ์ ์ฒดํ๋จ_BE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Clean Comment | Formatting (0) | 2022.01.24 |
---|---|
Clean Method (0) | 2022.01.24 |
[Java] ์ปฌ๋ ์ ํ๋ ์์ํฌ : List (0) | 2022.01.21 |
[Java] ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ์ ๋ค๋ฆญ (0) | 2022.01.21 |
[Java] ์์(Inheritance) | ์ค๋ฒ๋ผ์ด๋ฉ | ๋คํ์ฑ (0) | 2022.01.21 |