Control Structure
์กฐ๊ฑด, ๋ฃจํ(loop), ํ๋ฆ์ ์ ์ดํ๋ ์ ์ธ๋ฌธ
· Control Structures๋ ์ฝ๋ ๋ณต์ก๋์ ๊ฐ์ฅ ํฐ ์ํฅ์ ์ฃผ๋ ์์์ด๋ค.
· ํนํ ์ค์ฒฉ๋ Control Structures๋ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ํ ์คํธ ์ฉ์ด์ฑ์ ๋ฎ์ถ๊ณ , ๋ณต์ก๋๋ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
Control Sturcture๋ก ์ค๊ณํ๋ ๋ฐฉ๋ฒ
1. Fail Fast! Early Return!
* Fail Fast → ๋นจ๋ฆฌ ์คํจํ๋ '๊ฒ์ฆ๋ก์ง'์ ๊ตฌํํ์ฌ ๋ก์ง์ ๋ถ๋ฆฌํ๋ค.
โถ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ์ฝ๋๋ฅผ ์์ ํ ๊ฒฝ์ฐ์ ์ด์
- ๊ฒ์ฆ ์์ญ(์ฝ๋ ์๋จ)๊ณผ ํต์ฌ ๋ก์ง ์์ญ(์ฝ๋ ํ๋จ)์ด ๋ถ๋ฆฌ๋๋ค.
- Method์ ๋ณต์ก๋๊ฐ ๋ฎ์์ง๋ค.
- ๊ฐ๋ ์ฑ์ด ํฅ์๋๊ณ , ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค.
2. ์ต๋ํ ๊ธ์ ์กฐ๊ฑด์ผ๋ก ํํํ๋ผ
→ ๊ธ์ ์ ์ธ ํํ์ ๋ถ์ ์ ํํ๋ณด๋ค ์ดํดํ๊ธฐ ์๋์ ์ผ๋ก ์ฉ์ดํ๋ฏ๋ก, ์กฐ๊ฑด๋ฌธ์ ๊ธ์ ํํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ ์ฑ ๊ด์ ์์ ์ข๋ค.
Cyclomatic Complexity
์์ค ์ฝ๋์ ๋ณต์ก๋๋ฅผ ๋ํ๋ด๋ ์งํ
· ๋ณต์ก๋๊ฐ ๋ฎ์์๋ก ํ๋ก๊ทธ๋จ์ด ๊ตฌ์กฐ์ ์ผ๋ก ์์ ๋์๋ค๋ ์๋ฏธ์ด๋ฉฐ,
๋ณต์ก๋๊ฐ ๋์์๋ก ํ๋ก๊ทธ๋จ์ด ๋น๊ตฌ์กฐ์ ์ด๋ฉฐ ๋ถ์์ ํ๋ค๋ ์๋ฏธ์ด๋ค.
· ํ๋ก๊ทธ๋จ์ ์ ์ด ํ๋ฆ์ Node, Edge๋ก ํํํ ๊ทธ๋ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ฐํ๋ค.
Cyclomatic Complexity๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ
์๋ ๊ทธ๋ฆผ์ ์์๋ก ๊ณ์ฐํด๋ณด์.
1. ๋ณต์ก๋ V(G) = edge์ ์ - node์ ์ + 2
์ด๋ฏ๋ก
V(G) = 6 - 5 + 2 = 3 ์ด๋ค.
2. ๋ณต์ก๋ V(G) = ๋ถ๊ธฐ๋ฌธ์ ์ + 1
์ด๋ฏ๋ก
V(G) = 2 + 1 = 3 ์ด๋ค.
Refactoring
SW ํ์ง ํฅ์์ ๋ชฉ์ ์ผ๋ก ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ ์์ด, ๋ด๋ถ์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๊ธฐ์
Refactoring ๊ณผ์
โซ ๊ฐ์ ์ด ํ์ํ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ค → ์ฝ๋๋ฅผ ๊ฐ์ ํ๋ค → ๋จ์ ํ ์คํธ๋ฅผ ํ๋ค.
โป Code Refactoring์ ์ํ Code Bad Smell์ ์
Refactoring ์นดํ๋ก๊ทธ
: Code Bad Smell์ ๋ํ ๋ค์ํ ๊ฐ์ ์ ๋ต๋ค์ ๋ชจ์
('์นดํ๋ก๊ทธ'๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ : Category๋ณ๋ก ์ ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์)
โป ์์ ๋ณธ Code Bad Smell์ ๋ํ์ฌ ํด๊ฒฐํ ์ ์๋ Refactoring ์ ๋ต Mapping
โป Refactoring์ ์
์ฝ๋ํ๋ ์ Java ์น ๊ฐ๋ฐ ์ฒดํ๋จ ํ๋ ์ค 'SW ์ ์ง๋ณด์์ฑ ํฅ์์ ์ํ Clean Code' ์ด๋ฌ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ฑํ์์ต๋๋ค :)
์ฝ๋ํ๋ ์ URL: https://www.codepresso.kr/
'๐ ๊ธฐํ > ์ฝ๋ํ๋ ์ ์ฒดํ๋จ_BE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Boot] ์ปจํธ๋กค๋ฌ์ REST API (0) | 2022.01.29 |
---|---|
HTML๊ณผ CSS์ ๊ธฐ์ด ๊ฐ๋ (0) | 2022.01.28 |
Clean Comment | Formatting (0) | 2022.01.24 |
Clean Method (0) | 2022.01.24 |
Clean Naming (0) | 2022.01.23 |