-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,36 @@ | ||
# 02. 설계 첫걸음 | ||
|
||
# 📌 Contents | ||
|
||
### 📌 의도를 분명히 전달할 수 있는 이름 설계하기 | ||
|
||
- 변수의 이름을 짧게 줄이면, 구현을 조금이라도 빠르게 할 수 있을지도 모름 | ||
- 하지만 다른 사람이 코드를 읽거나 시간이 지난 후 다시 볼 때는 읽고 이해하기 매우 어려움 | ||
- 처음 구현할 때 아낀 시간의 몇 배, 몇 십배 이상이 더 필요할 수 있음 | ||
- 자주 바뀔 가능성이 있는 코드를 구현할 때는 '변수 이름을 쉽게 붙이는 것'도 아주 훌륭한 기본 설계가 될 수 있음 | ||
|
||
### 📌 목적별로 변수를 따로 만들어 사용하기 | ||
|
||
- 변수에 값을 다시 할당하는 것을 `재할당`이라고 함 | ||
- 재할당은 변수의 용도가 바뀌는 문제를 일으키기 쉬움 | ||
- 재할당으로 기존의 변수를 다시 사용하지 말고, 목적별로 변수를 만들어 사용하면 전체적으로 '어떤 값을 계산하는 데 어떤 값을 사용하는지' 관계를 파악하기 쉬워짐 | ||
|
||
### 📌 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기 | ||
|
||
- 계산 로직들이 단순하게 나열되어 있으면, 로직이 어디에서 시작해서 어디에서 끝나는지, 무슨 일을 하는지 알기 어려움 | ||
- 이런 상황을 막으려면, 의미 있는 로직을 모아서 메서드(함수)로 구현하는 것이 좋음 | ||
|
||
<br /> | ||
|
||
- 언급한 세 가지 방법을 적용하면 같은 결과를 얻을 수 있는 로직이여도 코드의 양은 많아지겠지만, 일고 이해하기는 훨씬 쉬워질 것임 | ||
- 유지 보수와 변경이 쉽도록 변수의 이름과 로직을 신경 써서 작성하는 것이 곧 설계임 | ||
|
||
### 📌 관련된 데이터와 로직을 클래스로 모으기 | ||
|
||
- '변수'와 '변수를 조작하는 로직'이 계속해서 이곳저곳에 만들어지면, 프로그램 규모가 커지면 관련된 로직을 찾아 돌아다니는 시간이 엄청날 것임 | ||
- 변수에 잘못된 값이 뒤섞여 들어갈 수도 있음 | ||
- 이러한 문제를 해결해 주는 것이 클래스(: 데이터를 인스턴스 변수로 갖고, 인스턴스 변수를 조작하는 메서드를 함께 모아 놓은 것) | ||
- 어떠한 클래스는 만든 의도와 관련된 로직을 담고 있음 | ||
- 서로 밀접한 데이터와 로직을 한곳에 모아 두면, 이곳저곳 찾아 다니지 않아도 괜찮음 | ||
- 또한 클래스의 생성자에 잘못된 값을 거부하는 로직을 넣어 잘못된 값이 유입되지 않게 만들면, 조금이라도 버그로부터 안전한 클래스 구조가 될 것임 | ||
- 의도를 갖고 적절하게 설계하면, 유지 보수와 변경이 쉬워짐 |