Skip to content

Commit cd97258

Browse files
committed
docs: 리팩터링의 필요성
1 parent 6a57f62 commit cd97258

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# 리팩터링의 필요성
2+
## Summary
3+
리팩터링은 코드를 건강한 상태로 유지하는 중요한 개발 활동이다. 소프트웨어의 설계 개선, 코드 이해도 향상, 버그 발견 용이성 증가, 그리고 전반적인 개발 속도 향상에 기여한다.
4+
5+
## Details
6+
### 소프트웨어 설계 개선 효과
7+
코드의 아키텍처가 무너지는 것을 방지하고 설계를 개선하는 효과가 있다. 중복 코드를 제거하여 모든 코드가 고유한 일을 수행하도록 보장하며, 이는 바람직한 설계의 핵심이 된다.
8+
9+
### 코드 이해도 향상
10+
프로그래밍은 컴퓨터와의 대화이므로, 의도하는 바와 코드 표현의 차이를 최소화해야 한다. 리팩터링을 통해 코드를 이해하기 쉽게 만들면 미래의 개발자(자기 자신 포함)가 코드를 더 쉽게 파악할 수 있다.
11+
12+
### 버그 발견 용이성
13+
코드의 구조를 명확하게 다듬으면서 프로그램의 동작을 더 깊이 이해하게 된다. 이 과정에서 버그를 쉽게 발견할 수 있으며, 코드의 의도가 명확해져 버그를 놓치기 어려워진다.
14+
15+
### 개발 속도 향상과 설계 지구력
16+
내부 설계가 잘 된 소프트웨어는 다음과 같은 이점이 있다:
17+
- 모듈화가 잘 되어 새로운 기능의 작성 포인트를 쉽게 찾을 수 있다
18+
- 명확한 코드로 인해 버그 발생 가능성이 줄어든다
19+
- 버그가 발생하더라도 디버깅이 용이하다
20+
21+
마틴 파울러는 이를 '설계 지구력 가설(Design Stamina Hypothesis)'이라 부르며, 내부 설계에 투자하면 소프트웨어의 개발 속도를 높은 상태로 오래 유지할 수 있다고 설명한다.
22+
23+
## Reference
24+
25+
**link:** External reference
26+
- [리팩터링 (Refactoring) - 마틴 파울러](https://martinfowler.com/books/refactoring.html)`

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
| AI_ML | 인공지능과 머신러닝과 관련된 내용 | 0 |
88
| Backend | 백엔드 프레임워크와 관련된 내용 | 0 |
99
| Cloud | 클라우드 컴퓨팅과 관련된 내용 | 1 |
10-
| DevGeneral | 디자인 패턴, 방법론 등의 내용 | 3|
10+
| DevGeneral | 디자인 패턴, 방법론 등의 내용 | 4|
1111
| DevOps | DevOps와 관련된 내용 | 0 |
1212
| Databases | 데이터베이스와 관련된 내용 | 0|
1313
| Frontend | 프론트 프레임워크와 관련된 내용 | 0 |
@@ -73,7 +73,8 @@
7373
┃  &nbsp;&nbsp;┣━&nbsp;📂[**Principle**](./DevGeneral/Principle)</br>
7474
┃  &nbsp;&nbsp;┃  &nbsp;&nbsp;┗━&nbsp;📄[**Two_Hats**](./DevGeneral/Principle/Two_Hats.md)</br>
7575
┃  &nbsp;&nbsp;┣━&nbsp;📂[**Refactoring**](./DevGeneral/Refactoring)</br>
76-
┃  &nbsp;&nbsp;┃  &nbsp;&nbsp;┗━&nbsp;📄[**Definition_of_Refactoring**](./DevGeneral/Refactoring/Definition_of_Refactoring.md)</br>
76+
┃  &nbsp;&nbsp;┃  &nbsp;&nbsp;┣━&nbsp;📄[**Definition_of_Refactoring**](./DevGeneral/Refactoring/Definition_of_Refactoring.md)</br>
77+
┃  &nbsp;&nbsp;┃  &nbsp;&nbsp;┗━&nbsp;📄[**Reasons_for_Refactoring**](./DevGeneral/Refactoring/Reasons_for_Refactoring.md)</br>
7778
┃  &nbsp;&nbsp;┗━&nbsp;📂[**Tools**](./DevGeneral/Tools)</br>
7879
┃  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┣━&nbsp;📂[**Bash**](./DevGeneral/Tools/Bash)</br>
7980
┃  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;┣━&nbsp;📂[**CPU**](./DevGeneral/Tools/CPU)</br>

0 commit comments

Comments
 (0)