본문 바로가기

전체 글

[Refactoring] 11. 기본형 집착 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 기본형 집착 도메인에 필요한 기본 타입을 만들지 않고 프로그래밍 언어에서 제공하는 기본 타입을 사용하는 경우가 많다. 기본형으로는 단위 또는 표기법을 표현하기 어렵다. 관련 리팩토링 기술 기본형을 객체로 바꾸기 타입 코드를 서브 클래스로 바꾸기 조건부 로직을 다형성으로 바꾸기 클래스 추출하기 매개변수 객체 만들기 Refactoring 1. 필드 옮기기 개발 초기에.. 더보기
[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 | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 가변 데이터 데이터를 변경하다보면 예상치 못했던 결과나 해결하기 어려운 버그가 발생할 수 있다. 함수형 프로그래밍 언어에서는 데이터를 변경하지 않고 복사본을 전달하지만, 자바 같은 경우 데이터 변경을 허용하기 때문에 변경되는 데이터 사용 시 발생할 수 있는 리스크를 관리할 수 있는 방법을 적용하는 것이 좋다. 관련 리팩토링 변수 캡슐화하기 -> 데이터를 변경할 수.. 더보기
[Spring Boot] @Lombok 에러 프로젝트 Gradle Build 도중 다음과 같은 에러를 만났다. Execution failed for task ':common:compileJava'. > java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x5881ca62) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x5881ca62 해.. 더보기
[Refactoring] 5. 전역 데이터 코딩으로 학습하는 리팩토링 - 인프런 | 강의 리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직 www.inflearn.com | 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다. 전역 데이터 전역 데이터 -> ex) public static... 전역 데이터는 아무 곳에서 변경될 위험이 있다. 어떤 코드로 인해 변경되었는지 파악하기 힘들다. 변수 캡슐화하기를 적용해서 접근을 제어하거나 어디서 사용하는지 쉽게 파악할 수 있다. Refactoring 1. 변수 캡슐화하기 Encapsulation 메서드는 점진적으로 새로운 메서드로 변경시킬 수.. 더보기