본문 바로가기

Refactoring

[Refactoring] 정리 (2) 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 조건부 로직 간소화 ** 복잡한 조건문을 다루는 기술 조건문 분해하기 -> if 문 안의 복잡한 로직은 메서드 추출하기 적용 조건식 통합하기 중첩 조건문을 보호 구문으로 바꾸기 -> return으로 아래 로직이 실행되지 않게 만들기 Before int result; if (isVip()) { result = vipPoint(); } else if (isPlat().. 더보기
[Refactoring] 정리 (1) 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 가장 기본이 되는 리팩토링 기술 함수 추출하기 함수 인라인하기 변수 추출하기 변수 인라인하기 함수 선언 변경하기 -> 함수 이름, 매개 변수, 리턴 타입... 변경 변수 캡슐화하기 변수 이름 바꾸기 매개변수 객체 만들기 여러 함수를 클래스로 묶기 여러 함수를 변환 함수로 묶기 단계 쪼개기 캡슐화 * 모듈에서 외부 시스템으로 공개하지 않아도 되는 데이터를 숨기는 기.. 더보기
[Refactoring] 24. 주석 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 주석 코드 리팩토링 시, 불필요한 주석을 줄일 수 있다. 관련 리팩토링 함수 추출하기 -> 설명이 필요한 부분을 별도의 메서드로 뺴낸다. 함수 선언부 변경하기 -> 함수 이름을 재정의할 수 있다. 어서션 추가하기 -> 시스템적으로 어떤 필요한 규칙이 있는 경우 Refactoring 1. 어서션 추가하기 Assertion을 사용하면 코드로 표현하지 않은 조건들을 명.. 더보기
[Refactoring] 23. 상속 포기하기 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 상속 포기하기 서브 클래스가 슈퍼 클래스에서 제공하는 메서드나 데이터를 잘 활용하지 않는다면, 해당 상속 구조는 문제가 있다는 의미이다. 관련 리팩토링 메서드와 필드 내려주기 -> 슈퍼 클래스에 공동으로 사용하는 기능만 남길 수 있다. 슈퍼 클래스 또는 서브 클래스 위임으로 교체하기 -> 서브 클래스가 슈퍼 클래스의 기능을 재사용하고 싶지만 인터페이스를 따르고 싶.. 더보기
[Refactoring] 22. 데이터 클래스 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 데이터 클래스 데이터 클래스 -> 필드 또는 필드에 대한 게터, 세터만 존재하는 클래스 코드가 적절한 위치에 존재하지 않기 때문에 이러한 냄새가 생길 수 있다. 예외적으로 단계 조개기에서 중간 데이터를 표현하는데 사용할 레코드는 불변 객체로 데이터를 전달하는 용도로 사용할 수 있다. 관련 리팩토링 레코드 캡슐화하기 -> public 필드를 가지고 있다면, 게터, .. 더보기
[Refactoring] 21. 서로 다른 인터페이스의 대안 클래스들 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 서로 다른 인터페이스의 대안 클래스들 비슷한 일을 여러 곳에서 서로 다른 규약을 사용해 지원하고 있는 경우 대안 클래스로 사용하려면 동일한 인터페이스를 구현하고 있어야 한다. 관련 리팩토링 한수 선언 변경하기, 함수 옮기기 -> 서로 동일한 인터페이스를 구현하게끔 코드를 수정할 수 있다. 슈퍼 클래스 추출하기 -> 중복된 코드를 슈퍼 클래스로 옮기고 두 클래스를 .. 더보기
[Refactoring] 20. 거대한 클래스 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 거대한 클래스 어떤 클래스가 너무 많은 일을 하다 보면 필드도 많아지고 중복 코드도 생기기 시작한다. 클래스에서 제공하는 기능 중 일부만 사용한다면 각각의 세부 기능을 별도의 클래스로 분리할 수 있다. 관련 리팩토링 클래스 추출하기 -> 관련 있는 필드를 한곳으로 모을 수 있다. 슈퍼 클래스 추출하기, 타입 코드를 서브클래스로 교체하기 -> 상속 구조로 변경한다... 더보기
[Refactoring] 19. 내부자 거래 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 내부자 거래 어떤 모듈이 다른 모듈의 내부 정보를 지나치게 많이 알고 있는 코드 냄새로 지나치게 강한 결합도가 생길 수 있다. 관련 리팩토링 함수 옮기기, 필드 옮기기 -> 함수, 필드를 옮겨 결합도를 낮출 수 있다. 위임 숨기기 -> 특정 모듈의 중재자처럼 사용 슈퍼 클래스, 서브 클래스를 위임으로 교체하기 -> 상속으로 인한 결합도 줄이기 Before publ.. 더보기