티스토리 뷰
1장은 리팩터링의 진행 절차에 대한 구체적인 예시를 보여주는 리팩터링 맛보기 장이다.
하지만 1장의 읽어보고 내용을 요약하는 게 무의미하다고 보여서 과감히 생략하고... 책을 읽는데 앞서 중요하다고 보이는 서문의 내용 일부를 대신 정리했다.
리팩터링이란
- 리팩터링은 겉으로 드러나는 코드의 기능(겉보기 동작)은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어를 수정하는 과정이다.
- 버그가 생길 가능성을 최소로 줄이면서 코드를 정리하는 정제된 방법으로 코드를 작성하고 난 뒤에 설계를 개선하는 일이다.
- 예전부터 따르던 소프트웨어 개발 방법은 설계부터 하고 코드를 작성하는 순서다. 하지만 시간이 흐르면서 코드는 수정되고 시스템의 설계에 맞춘 구조는 점차 뒤죽박죽이 되어간다. 공학에 가깝던 코딩 작업은 서서히 해킹에 가까워진다.
- 리팩터링의 각 단계는 간단하다 못해 지나칠 정도로 단순하지만 이런 사소한 수정도 누적되면 설계가 놀라도록 개선된다. 소프트웨어가 부식된다는 개념의 정반대가 바로 리팩터링이다.
- 리팩터링을 하면 일의 균형이 바뀐다. 처음부터 완벽한 설계를 갖추기보다는 개발을 진행하면서 지속적으로 설계한다. 시스템을 구축하는 과정에서 더 나은 설계가 무엇인지 배우게 된다. 그 결과, 개발의 시작부터 끝까지 프로그램을 줄곧 우수한 설계를 유지한다.
책 전부를 읽지 않고 보는 방법
- 리팩터링이 뭔지 모른다면 1장을 : 1장의 예시를 보면 리팩터링 진행 절차를 명확하게 알 수 있다.
- 리팩터링해야 하는 이유를 모르겠다면 1장과 2장을 : 리팩터링이 무엇이고 왜 필요한지 설명해준다.
- 리팩터링해야 할 곳을 찾고 싶을 때는 3장을 : 리팩터링이 필요한 만한 곳에서 보내는 신호(악취)를 잡아내는 요령을 설명해준다.
- 리팩터링을 실습하고 싶다면 1장부터 4장까지는 꼼꼼히 읽고, 나머지를 빠르게 훑어보자 : 카탈로그(6~12장) 부분은 어떤 기법들이 있는지 정도만 대략 보면 되지, 세세한 부분까지 전부 이해할 필요는 없다. 리팩터링을 당장 해야 할 때 해당 기법 부분을 펼쳐 자세히 일고 따르면 된다.
책에서 다루는 내용
- 절제되고 효율적인 방식으로 리팩터링하는 법을 알려주는 것이 목표다.
- 코드에 버그가 생기지 않게 하면서 구조를 더 체계적으로 바꾸는 식으로 리팩터링 하는 방법을 설명한다.
- 카탈로그 목록이 이 책의 햄시이다. 대부분의 개발자가 익혀야 할 필수 리팩터링들을 담고 있다. 이 내용은 1990년대 후반에 리팩터링을 처음 배운 이후로 계속 보강되었고, 지금도 다 기억하지 못해서 틈틈이 참고하고 있다. (저자인 마틴 파울러의 얘기)
누가 읽어야 하나
- 리팩터링을 배우려는 개발자
- 리팩터링을 이미 이해하고 있는 사람에게도 교육용 자료로 가치가 있다. 숙련된 개발자가 동료들에게 멘토링해주는 데 활용할 수 있도록 다양한 리팩터링의 작동 원리를 설명하는데 공을 들였다.
- 리팩터링은 코드에 집중하지만, 사실 시스템 설계에 미치는 영향이 크다. 그래서 선임개발자나 아키텍트라면 반드시 리팩터링의 원리를 이해하고 프로젝트에 활용해야 한다.
- 정리된 용어는 설명을 대신할 수 있고 개발 도구가 제공하는 자동화된 리팩터링을 선택하는 데도 도움을 준다.
'소프트웨어공학, CS > 리팩터링 2판' 카테고리의 다른 글
[리팩터링 2판] 2장 리팩터링 원칙 (3) | 2022.04.23 |
---|---|
[리팩터링 2판] 3장 코드에서 나는 악취 (0) | 2021.09.04 |
[리팩터링 2판] 12장 상속 다루기 (0) | 2021.05.25 |
[리팩터링 2판] 11장 API 리팩터링 (0) | 2021.05.16 |
[리팩터링 2판] 10장 조건부 로직 간소화 (0) | 2021.04.18 |
- Total
- Today
- Yesterday
- Debug It! 실용주의 디버깅
- https
- Debug
- 마틴파울러
- 제어플래그
- 리팩터링이란
- 안심 첫 문장
- 위임
- 지시의 언어
- 그림으로 공부하는 IT 인프라 구조
- Refactoring
- 매개변수화
- SSL
- 변경함수
- amazon vpc
- 일 잘하는 사람은 단순하게 말합니다
- 코드악취
- HTTP
- 리팩토링
- amazon aurora
- AWS
- 조건부 로직
- 질의함수
- aws fargate
- 그림으로 배우는 HTTP & Network
- 디버깅
- 박소연
- 일잘러
- 코드스멜
- Debugging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |