Skip to content

Commit

Permalink
update: 02. 설계 첫걸음.md
Browse files Browse the repository at this point in the history
  • Loading branch information
kiuuon committed Mar 18, 2024
1 parent bacb990 commit f938ee8
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions 내 코드가 그렇게 이상한가요/02. 설계 첫걸음.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,36 @@
# 02. 설계 첫걸음

# 📌 Contents

### 📌 의도를 분명히 전달할 수 있는 이름 설계하기

- 변수의 이름을 짧게 줄이면, 구현을 조금이라도 빠르게 할 수 있을지도 모름
- 하지만 다른 사람이 코드를 읽거나 시간이 지난 후 다시 볼 때는 읽고 이해하기 매우 어려움
- 처음 구현할 때 아낀 시간의 몇 배, 몇 십배 이상이 더 필요할 수 있음
- 자주 바뀔 가능성이 있는 코드를 구현할 때는 '변수 이름을 쉽게 붙이는 것'도 아주 훌륭한 기본 설계가 될 수 있음

### 📌 목적별로 변수를 따로 만들어 사용하기

- 변수에 값을 다시 할당하는 것을 `재할당`이라고 함
- 재할당은 변수의 용도가 바뀌는 문제를 일으키기 쉬움
- 재할당으로 기존의 변수를 다시 사용하지 말고, 목적별로 변수를 만들어 사용하면 전체적으로 '어떤 값을 계산하는 데 어떤 값을 사용하는지' 관계를 파악하기 쉬워짐

### 📌 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기

- 계산 로직들이 단순하게 나열되어 있으면, 로직이 어디에서 시작해서 어디에서 끝나는지, 무슨 일을 하는지 알기 어려움
- 이런 상황을 막으려면, 의미 있는 로직을 모아서 메서드(함수)로 구현하는 것이 좋음

<br />

- 언급한 세 가지 방법을 적용하면 같은 결과를 얻을 수 있는 로직이여도 코드의 양은 많아지겠지만, 일고 이해하기는 훨씬 쉬워질 것임
- 유지 보수와 변경이 쉽도록 변수의 이름과 로직을 신경 써서 작성하는 것이 곧 설계임

### 📌 관련된 데이터와 로직을 클래스로 모으기

- '변수'와 '변수를 조작하는 로직'이 계속해서 이곳저곳에 만들어지면, 프로그램 규모가 커지면 관련된 로직을 찾아 돌아다니는 시간이 엄청날 것임
- 변수에 잘못된 값이 뒤섞여 들어갈 수도 있음
- 이러한 문제를 해결해 주는 것이 클래스(: 데이터를 인스턴스 변수로 갖고, 인스턴스 변수를 조작하는 메서드를 함께 모아 놓은 것)
- 어떠한 클래스는 만든 의도와 관련된 로직을 담고 있음
- 서로 밀접한 데이터와 로직을 한곳에 모아 두면, 이곳저곳 찾아 다니지 않아도 괜찮음
- 또한 클래스의 생성자에 잘못된 값을 거부하는 로직을 넣어 잘못된 값이 유입되지 않게 만들면, 조금이라도 버그로부터 안전한 클래스 구조가 될 것임
- 의도를 갖고 적절하게 설계하면, 유지 보수와 변경이 쉬워짐

0 comments on commit f938ee8

Please sign in to comment.