본문 바로가기

클린코드

[Refactoring] 10. 데이터 뭉치 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 데이터 뭉치 항상 뭉쳐 다니는 데이터는 한 곳으로 모아두는 것이 좋다. 여러 클래스에 존재하는 비슷한 필드 목록 여러 함수에 전달하는 매개변수 목록 관련 리팩토링 기술 클래스 추출하기 -> 여러 필드를 하나의 객체나 클래스로 모을 수 있다. 매개변수 객체 만들기, 객체 통째로 넘기기 -> 메서드 매개변수를 개선할 수 있다. Before public class Em.. 더보기
[Refactoring] 9. 기능 편애 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 기능 편애 어떤 모듈에 있는 함수가 다른 모듈에 있는 데이터나 함수들을 더 많이 참조할 때 발생한다. 만약 여러 모듈을 참조하고 있다면, 그 중에서 가장 많은 데이터를 참조하는 곳으로 옮기거나, 함수를 여러 개로 쪼개서 각 모듈로 분산시킬 수 있다. 데이터와 해당 데이터를 참조하는 행동을 같은 곳에 두는 것이 좋다. 예외적으로, 데이터와 행동을 분리한 디자인 패턴.. 더보기
[Refactoring] 8. 산탄총 수술 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 산탄총 수술 어떠한 변화가 발생하였을 때 여러 모듈, 함수, 클래스를 변경해야 하는 상황 변경 사항이 여러 곳에 흩어진다면 찾아서 수정하기 어렵고, 중요한 변경 사항을 놓칠 수 있다. 관련 리팩토링 기술 함수 옮기기 또는 필드 옮기기 -> 필요한 변경 내역을 하나의 클래스로 모을 수 있다. 여러 함수를 클래스로 묶기 -> 비슷한 데이터를 사용하는 여러 함수를 하나.. 더보기
[Refactoring] 7. 뒤엉킨 변경 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 뒤엉킨 변경 소프트웨어는 변경에 유연하게 대처할 수 있어야 한다. 서로 다른 문제는 다른 모듈에서 해결하는 것이 좋다. 응집도를 높이고 결합도를 낮추자. 모듈의 책임이 분리되어 있을 수록 해당 문맥을 더 잘 이해할 수 있으며 다른 문제는 신경쓰지 않아도 된다. 관련 리팩토링 기술 단계 쪼개기 -> 서로 다른 문맥의 코드를 분리할 수 있다. 함수 옮기기 -> 적절한.. 더보기
[Refactoring] 6. 가변 데이터 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 가변 데이터 데이터를 변경하다보면 예상치 못했던 결과나 해결하기 어려운 버그가 발생할 수 있다. 함수형 프로그래밍 언어에서는 데이터를 변경하지 않고 복사본을 전달하지만, 자바 같은 경우 데이터 변경을 허용하기 때문에 변경되는 데이터 사용 시 발생할 수 있는 리스크를 관리할 수 있는 방법을 적용하는 것이 좋다. 관련 리팩토링 변수 캡슐화하기 -> 데이터를 변경할 수.. 더보기
[Refactoring] 5. 전역 데이터 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 전역 데이터 전역 데이터 -> ex) public static... 전역 데이터는 아무 곳에서 변경될 위험이 있다. 어떤 코드로 인해 변경되었는지 파악하기 힘들다. 변수 캡슐화하기를 적용해서 접근을 제어하거나 어디서 사용하는지 쉽게 파악할 수 있다. Refactoring 1. 변수 캡슐화하기 Encapsulation 메서드는 점진적으로 새로운 메서드로 변경시킬 수.. 더보기
[Refactoring] 4. 긴 매개변수 목록 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 긴 매개변수 목록 함수에 매개변수가 많을수록 함수의 역할을 이해하기 힘들어진다. 어떤 매개변수를 다른 매개변수를 통해 알아낼 수 있다면, 매개변수를 질의 함수로 바꾸기를 사용할 수 있다. 기존 자료구조에서 세부적인 데이터를 가져와서 여러 매개변수로 넘기는 대신, 객체 통째로 넘기기를 사용할 수 있다. 일부 매개변수들이 대부분 같이 넘겨진다면, 매개변수 객체 만들기.. 더보기
[Refactoring] 3. 긴 함수 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 긴 함수 코드를 읽으면서 이해하기 난해하거나, 구현을 이해한다고 생각되면 긴 함수이다. 과거에는 작은 함수를 사용하는 경우 더 많은 서브 루틴 호출로 인한 오버헤드가 존재했다. 최근 사용하는 프로그래밍 언어는 최적화가 이루어지기 때문에 고려할 만한 오버헤드가 아니다. 단점 코드를 이해하기 어렵다. 방법 99% 함수 추출하기로 해결할 수 있다. 함수로 분리하면서 해.. 더보기