본문 바로가기

전체 글57

[리팩터링 2판] JavaScript 리팩터링 도서학습 #8 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다. 이번 포스팅에선 Chapter11 의 내용에 대해 다룹니다. Chapter12 상속 다루기12장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다. Chapter12 상속 다루기1.메서드 올리기2.필드 올리기3.생성자 본문 올리기4.메서드 내리기5.필드 내리기6.타입 코드를 서브클래스로 바꾸기7.서브 클래스 제거하기8.슈퍼클래스 추출하기9.계층 합치기10.서브클래스를 위임으로 바꾸기11.슈퍼클래스를 위임으로 바꾸기 상속 다루기의 효과상속은 강력한 객체지향 메커니즘이지만, 잘못 사용하면 복잡성을 증가시킵니다.상속 리팩터링의 주요 효과 계층구조 명확화: 클래스 간의 관계와 책임이 명확해집니다코드 중복 제거: 공통 로직을.. 2025. 5. 29.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #7 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter11 의 내용에 대해 다룹니다. Chapter11 API 리팩터링 11장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다.Chapter11 API 리팩터링1.질의 함수와 변경 함수 분리하기2.함수 매개변수화하기3.플래그 인수 제거하기4.객체 통째로 넘기기5.매개변수를 질의 함수로 바꾸기6.질의 함수를 매개변수로 바꾸기7.세터 제거하기8.생성자를 팩터리 함수로 바꾸기9.함수를 명령으로 바꾸기10.명령을 함수로 바꾸기11.수정된 값 반환하기12.오류 코드를 예외로 바꾸기13.예외를 사전확인으로 바꾸기 API 리팩터링의 효과API(Application Programming Interface)는 .. 2025. 5. 19.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #6 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter10 의 내용에 대해 다룹니다. Chapter10 조건부 로직 간소화 10장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다.Chapter10 조건부 로직 간소화 1.조건문 분해하기2.중복 조건식 통합하기3.중첩 조건문을 보호 구문으로 바꾸기4.조건부 로직을 다형성으로 바꾸기5.특이 케이스 추가하기6.어서션 추가하기7.제어 플래그를 탈출문으로 바꾸기 조건부 로직 간소화의 효과복잡한 조건부 로직은 코드 이해와 유지보수를 어렵게 합니다조건부 로직을 간소화하면 얻을수있는 이점 가독성 향상: 코드의 의도가 명확해져 이해하기 쉬워집니다유지보수성 개선: 간결한 조건문은 변경 사항 적용이 쉽습니다버.. 2025. 5. 17.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #5 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter09의 내용에 대해 다룹니다. 9장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다. Chapter09 데이터 조직화 1.변수 쪼개기2.필드 이름 바꾸기3.파생 변수를 질의 함수로 바꾸기4.참조를 값으로 바꾸기5.값을 참조로 바꾸기6.매직 리터럴 바꾸기 데이터 조직화의 효과 명확성 향상: 데이터 구조와 변수 사용이 명확해져 코드 이해도 증가가변성 제어: 변수의 값이 변경되는 지점을 최소화하여 예측 가능성 높임오류 감소: 데이터 의존성과 변경 지점이 명확해져 오류 발생 가능성 감소계산 투명성: 데이터가 어떻게 도출되는지 명확하게 표현하여 유지보수성 향상디버깅 용이성: 데이터 흐름이 명확해.. 2025. 5. 15.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #4 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다. 이번 포스팅에선 Chapter07, Chapter08 의 내용에 대해 다룹니다. Chapter07 캡슐화 Chapter08 기능 이동 7,8장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다.Chapter07 캡슐화 1.레코드 캡슐화하기 2.컬렉션 캡슐화하기 3.기본형을 객체로 바꾸기 4.임시 변수를 질의 함수로 바꾸기 5.클래스 추출하기 6.클래스 인라인하기 7.위임 숨김하기 8.중개자 제거하기 9.알고리즘 교체하기 캡슐화의 효과 변경 영향도 최소화: 내부 구현 변경 시 클라이언트 코드 영향 감소 코드 품질 향상: 책임 분리로 응집도 높이고 결합도 낮춤 유지보수 용이성: 명확한 책임 분배로 .. 2025. 4. 24.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #3 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter06 의 내용에 대해 다룹니다. Chapter06 기본적인 리팩터링 Chapter06 기본적인 리팩터링6장에서 소개하는 주요 리팩터링 기법들을 요약하고 예제와 함께 정리했습니다. 1.함수 추출하기 (Extract Function)2.함수 인라인하기 (Inline Function)3.변수 추출하기 (Extract Variable)4.변수 인라인하기 (Inline Variable)5.함수 선언 변경하기 (Change Function Declaration)6.변수 캡슐화하기 (Encapsulate Variable)7.변수 이름 바꾸기 (Rename Variable)8.매개변수 객체 만들기 (Introduce Par.. 2025. 4. 17.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #2 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter04 ~ Chapter05 의 내용에 대해 다룹니다.  Chapter04 테스트 구축하기Chapter05 리팩터링 카탈로그 보는법  Chapter04 테스트 구축하기  리팩토링의 전제 조건으로 자가 테스트 코드(self-testing code)를 강조합니다. 리팩토링은 프로그램의 겉보기 동작을 보존하면서 내부 구조를 개선하는 작업이기 때문에, 동작이 보존되었는지 확인할 수 있는 견고한 테스트가 필수적입니다. 리팩터링을 제대로 하려면 불가피하게 저지를 실수를 잡아주는 견고한 테스트 스위트(test suite)가 뒷받침 돼야한다.좋은 테스트를 작성하는 일은 개발 효율을 높여 준다. * 개인적으로 본인도 아직은 테스.. 2025. 3. 29.
[리팩터링 2판] JavaScript 리팩터링 도서학습 #1 해당 내용은 위의 책의 내용을 제가 이해한대로 정리해둔 내용입니다.이번 포스팅에선 Chapter01 ~ Chapter03 의 내용에 대해 다룹니다.  Chapter01 리팩터링: 첫 번째 예시Chapter02 리팩터링 원칙Chapter03 코드에서 나는 악취   Chapter01 리팩터링: 첫 번째 예시 리팩터링의 개념과 과정 참고) 아래의 단계는 예제 코드에서 단계별로 수정하는 과정을 보여주었음. 본인 상황에 맞추어서 단계는 바꿔가면서 진행해도 무방합니다. 단계리팩터링 기법설명효과1테스트 코드 작성리팩터링 전 기존 코드의 동작을 검증하는 테스트 코드 작성기능 손상 없이 안전하게 리팩터링2함수 추출하기긴 함수를 목적별로 작은 함수들로 분리코드 가독성 향상3변수 이름 개선임시 변수와 매개변수의 이름을 명확.. 2025. 3. 23.
모듈 페더레이션(Module Federation) 이해하기 모듈 페더레이션(Module Federation)이란? 모듈 페더레이션은 여러 개의 독립적인 애플리케이션이 런타임에서 서로의 코드를 동적으로 공유하고 실행할 수 있게 해주는 아키텍처→ 레고 블록에 비유해서 필요한 모듈을 조립하여 사용한다고 표현 기존 마이크로프론트엔드 접근 방식들과의 비교특징Module Federation기존 마이크로프론트엔드상호작용Remote 및 Host 간에 런타임 의존성을 동적으로 로드하고, 즉시 호출 및 상태 공유가 가능.상태와 데이터를 공유하려면 명시적 API 또는 전역 이벤트 버스를 사용하는 등 추가적인 설계가 필요함.구성 가능성런타임에 필요한 모듈만 불러오는 방식으로 동적 구성 가능.대부분 정적인 구성이며 빌드 타임에 모든 애플리케이션이 이미 정의됨.독립성모듈 간 적절히 의존.. 2025. 1. 26.