์ถ์ฒ
https://zaengle.com/blog/refactoring-techniques-extract-method
https://hceris.com/the-humble-extract-method/
https://refactoring.guru/extract-method
ChatGPT
๋ฉ์๋ ์ถ์ถ ๋ฆฌํฉํ ๋ง Mehtod Extraction Refactoring
ํน์ ๋ฉ์๋ ์์ ์ฝ๋๋ค์ ๋ ์์ ๋ ๋ฆฝ๋ ๋ฉ์๋๋ก ์ชผ๊ฐ์ ๋ถ๋ฆฌํ๋ ๋ฆฌํฉํ ๋ง ๊ธฐ๋ฒ. ์์ ๋ณด์กฐ ๋ฉ์๋๋ค์ ์ด ๋ฉ์๋์ ๋ชฉ์ ์ ์ค๋ช ํ๋ ์ด๋ฆ์ ๊ฐ๋๋ค.
์ฅ์
๊ฐ๋ ์ฑ์ ํฅ์์ํจ๋ค.
- ๋ฉ์๋ ์ ๋ผ์ธ ์๊ฐ ์ค์ด๋ค์ด ๊ฐ๋ ์ฑ์ด ํฅ์๋๋ค.
- ๋ชฉ์ ์ ์ค๋ช ํ๋ ๋ณด์กฐ ๋ฉ์๋ ์ด๋ฆ์ ํตํด์ ๋ํ ๊ฐ๋ ์ฑ์ด ํฅ์๋๋ค. ๊ฐ ๋จ๊ณ๊ฐ ๋ฌด์์ ํ ์ง ๋ช ํํ๊ฒ ์๋ ค์ค๋ค.
- ๊ฐ ๋ณด์กฐ ๋ฉ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ณต์กํ๋ค. ์ฃผ๋ณ ์ปจํ ์คํธ์ ๋ํ ์ง์์ด ๋ ํ์ํ๋ค.
์ค๋ณต์ด ์ค๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ์ฆ๊ฐํ๋ค.
- ์ชผ๊ฐ ๋ฉ์๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค.
- ๊ทธ๋ ์ง๋ง ์ฌ์ฌ์ฉ ์์ฒด๊ฐ ๋ฉ์๋ ์ถ์ถ ๋ฆฌํฉํ ๋ง์ ๋ชฉ์ ์ ์๋๋ค. ์งง์ ๋ณด์กฐ ๋ฉ์๋๊ฐ ํ ๋ฒ๋ง ์ฐ์ด๋๋ผ๋ ๊ฐ๋ ์ฑ์ ํฅ์์ํจ๋ค๋ฉด ์กด์ฌ์ ์๋ฏธ๊ฐ ์๋ค.
ํ ์คํธ๊ฐ ์ฉ์ดํ๋ค.
- ์ถ์ถ๋ ๋ฉ์๋๋ ๊ฐ๋ณ์ ์ผ๋ก ํ ์คํธ ๊ฐ๋ฅํ๋ค. ์์ ๋จ์์ ๋ฉ์๋๋ ํ ์คํฌ๊ฐ ์ฝ๊ณ ๊ฐ ๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์์ด ์ฝ๋ ํ์ง์ ๋์ผ ์ ์๋ค.
๋ฉ์๋ ์ถ์ถ ๋ฆฌํฉํ ๋ง์ ๋จ๊ณ
1. ์ถ์ถํ ์ฝ๋ ์๋ณ
๋ฐ๋ณต์ ์ด๊ฑฐ๋ ๋ณต์กํ ์ฝ๋ ๋ธ๋ก์ ์ฐพ๋๋ค.
2. ์ ๋ฉ์๋ ์์ฑ
์ถ์ถํ ์ฝ๋ ๋ธ๋ก์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ , ๋ชฉ์ ์ ์ค๋ช ํ๋ ์ด๋ฆ์ ๋ถ์ฌํ๋ค.
3. ๋งค๊ฐ๋ณ์ ์ฒ๋ฆฌ
์ถ์ถ๋ ์ฝ๋๊ฐ ์ฌ์ฉํ ๋ณ์๋ฅผ ์ ์ ํ ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ๋ค.
4. ๊ธฐ์กด ์ฝ๋ ๋์ฒด
์๋ ์ฝ๋ ๋ธ๋ก์ ์ ๋ฉ์๋ ํธ์ถ๋ก ๋์ฒดํ๋ค.
5. ํ ์คํธ
๋ฆฌํฉํ ๋ง ํ ๊ธฐ์กด ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ ์คํธํ๋ค.
์ถ์ถํ ๋ฉ์๋ ์ด๋ฆ ์ง๊ธฐ๊ฐ ์ด๋ ต๋ค๋ฉด
1) ๋ถ๋ถ๋ช ํ ๊ฒฝ๊ณ์ ๋ชจํธํ ์ฑ ์์ ๊ฐ์ง ๋ฉ์๋์ผ ์ ์๋ค.
2) ๋ฉ์๋๊ฐ ์ฌ์ ํ ๋๋ฌด ์ปค์ ๋ ๋ถํ ํด์ผ ํ๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java][Kotlin] ๊ฐ์์ฑ ๋ณ๊ฒฝ์ ์ฐจ์ด ๋น๊ต (0) | 2024.10.15 |
---|---|
[Kotlin] Local Functions ๋ก์ปฌ ํจ์ (3) | 2024.10.15 |
[Kotlin] Infix call ์ค์ ํธ์ถ (0) | 2024.10.14 |
[Kotlin] Soft Keyword, Hard Keyword, Modifier Keyword (1) | 2024.10.14 |
[Kotlin] ์ ํ์ผ ํ๋์ ์ฌ๋ฌ ํด๋์ค๋ค์ ์ ์ธํ ์ ์๊ฒ ํ์๊น (0) | 2024.10.14 |