본문 바로가기

프로그래밍

(3)
뜯어 고치기 vs '2' 추가하기 이게 아닌데... 뭔가 잘못됐다. 높이가 40px인 공통 버튼 컴포넌트 를 만들었다. 하지만 알고 봤더니 높이가 40px이 아니라 28px이었다. 이미 수십 번 넘게 이곳저곳에서 쓰였던 상황이다. 당신은 어떤 선택을 해야 할까? A. 뜯어고치기 어차피 바뀌어야하는 것이다. 레이아웃이 깨지는 곳을 고치는 것은 매우 귀찮은 일이지만 어처피 해야 할 일을 하는 것일 뿐이다. 지금 고치지 않으면 점점 공수는 커져만 갈 것이다. 그래서 당신은 공통 버튼 컴포넌트를 수정하기로 결심했다. 선택의 결과 이제 당신에게 주어진 것은 버튼을 쓴 곳마다 레이아웃이 깨지는지 확인해야 하는 일이다. 아쉽게도 버튼은 주변 레이아웃에 많은 영향을 끼쳤다. 하단 푸터 버튼 영역의 height를 무심코 40px로 지정했었고, 15개의 ..
[리팩토링] 코드 숨기기, 가독성 좋은 코드 짜기 변수 추출(Extract Variable) 어떤 코드가 조금 보기 복잡해 졌다고 가정했을 때, 먼저 시도 해볼만한 것은 코드를 쪼개 변수로 나누는 것이다. 예를 들어 아래와 같이 부모와 자식의 값을 더하는 함수가 있다고 가정한다. 읽기 매우 난해할 것이다. 물론 함수명을 잘 지어도 좋지만, 여기서는 논외로 둔다. 각 값들을 변수로 쪼개면 아래와 같은 코드가 된다. 조금 더 알아보기 쉬운 코드가 됐다. 긴 코드들이 있었지만, 이 함수에서의 핵심 로직은 부모 값과 자식 값을 더한다는 것을 알 수 있게 됐다. 코드의 추상화 제멋대로 붙인말이지만, 뭔가 좀 있어보이게 말하자면, '코드의 추상화'라고도 할 수 있을 것 같다. 실제 데이터의 흐름은 app.store.data.parent.value + app.sto..
매력적인(흥미로운) 코드 (1) 매력적인 코드란? 주석을 보지 않더라도 읽기 쉬우면서, 읽으면서도 코드 내용에 흥미가 가도록 만들어져 있는 코드가 매력적인 코드라고 생각한다. 주석을 보지 않더라도 읽기 쉬운 코드가 중요하다는 것은 오랫동안 강조되어 왔다. 그러나 많은 사람들이 이번에 이야기하는 흥미로운 코드에 대해서는 잘 들어보지 않은 이야기일 수도 있다. 흥미로운 코드 흥미로운 코드는 어떤 것일까? 일단, 무슨 생각으로 이런 코드를 짰는지 궁금하게 만드는 코드는 제외한다. 반복적이지 않은 코드 어떤 파일이 엄청난 Getter와 Setter로 가득차 있었다고 한다고 먼저 가정을 하겠다. 이코드가 분명 지정된 양식에 맞춰서, 은닉화도 잘 되어있는 코드라면, 좋은 코드라고 할 수 있을 것이다. 그러나, 무의미한 getter와 setter로..