본문 바로가기

Today I Learned

(74)
리팩터링 2판 챕터6 - 기본적인 리팩터링(2) 9. 여러 함수를 클래스로 묶기 공통 데이터를 중심으로 긴밀하게 엮여 작동하는 함수 무리가 있으면 클래스로 묶는다. 클래스로 묶을 때의 장점은 클라이언트가 객체의 핵심 데이터를 변경할 수 있고, 파생 객체들을 일관되게 관리할 수 있다는 것이다. *함수를 객체처럼 패턴 https://martinfowler.com/bliki/FunctionAsObject.html *단일 접근 원칙 https://martinfowler.com/bliki/UniformAccessPrinciple.html 10. 여러 함수를 변환 함수로 묶기 변환 함수란 원본 데이터를 입력받아서 필요한 정보를 모두 도출한 뒤, 각각을 출력 데이터 객처 하나로 리턴하는 것이다. 공통 데이터를 다루는 함수 무리를 하나로 묶는다는 점에서 9번 기법과..
리팩터링 2판 챕터6 - 기본적인 리팩터링(1) 5장은 나머지 뒷 장을 읽는 방법을 소개하는 안내서와 같다. 6~12장에서 설명할 리팩터링 기법을 설명하는 형식을 기술해놓았다. 각 기법마다 이름, 개요, 배경, 절차, 예시 순으로 설명하겠다고 한다. 6장은 기본적인 리팩터링에 대해서 설명하고 있다. 책 본문에 나와있는 예시를 참고하면 이해가 쉬운데, 각 기법을 간단히 정리해봤다. 1. 함수 추출하기 (↔️ 함수 인라인하기) 코드를 언제 독립된 함수로 만드는가? 두 번 이상 사용될 코드에? 아니다. 목적과 구현을 분리해서 코드를 독립된 함수로 만드는 것이다. 함수를 짧게 많이 만들면 호출이 많아질까봐 걱정할 필요는 없다. 함수가 짧으면 캐싱하기가 더 쉬워서 컴파일러가 최적화될 수 있다. 2. 함수 인라인하기 (↔️ 함수 추출하기) 함수의 이름은 목적이 ..
리팩터링 2판 챕터4 - 테스트 구축하기 저자는 성공적인 리팩터링을 위해선 테스트 스위트 Test Suite가 필요하다고 말한다. 테스트 스위트란 테스트 케이스의 묶음을 말한다. 자가 테스트 코드를 만들어서 수시로 테스트하는 것이 중요하다. 테스트 방법 테스트 프레임워크를 활용한다. 대표적인 자바스크립트 테스트 프레임워크는 모카이다. 테스트는 위험 요인을 중심으로 작성해야한다. 단순히 필드를 읽고 쓰는 접근자는 테스트하지 않는다. 일부러 오류를 만들어서 코드가 제대로 동작하는지 확인해보는 것이 중요하다. 숫자를 테스트하는 경우에는 0이나 음수를 넣어서 테스트한다. 문제가 생길 가능성을 생각해보고 테스트해보자. 테스트는 설정-실행-검증 또는 조건-발생-결과 단계를 거친다. 만족스러울 때까지 충분한 테스트를 반복적으로 진행한다. 실패와 에러의 차이..
리팩터링 2판 챕터3 - 코드에서 나는 악취 저자는 코드에서도 악취가 날 수 있다고 말한다. 악취란 리팩터링이 필요한 코드이다. 악취 : 리팩터링이 필요한 코드 코드에서 악취가 난다면, 리팩터링 카탈로그(6-12장)에서 소개하는 기법에 따라서 코드를 리팩터링하자. 주석은 이 악취를 제거하고 향기를 입힐 수 있다. 단, 주석을 탈취제처럼 사용하는 것에 주의하자. SRP(Single Responsibility Principle), 단일 책임 원칙이란, 단일 모듈은 변경의 이유가 하나여야 함을 말한다. 이것을 지키지 않으면 다음과 같은 문제점이 나타난다. 뒤엉킨 변경 (Divergent Change) 산탄총 수술 (Shotgun Surgery) 한 코드에 섞여 들어감. 하나의 모듈에 엮인 코드가 많다. 여러 코드에 흩뿌려짐. 변경할 부분이 코드 전반에 ..
리팩터링 2판 챕터2 - 리팩터링 원칙 리팩터링 vs 재구성 Restructuring 재구성. 코드베이스를 정리하거나 구조를 바꾸는 모든 작업 Refactoring 모든 리스트럭쳐링 중에서 도중에 중단되더라도 동작이 유지되는 것 리팩터링, 왜 하는가? 소프트웨어 설계가 좋아진다. 소프트웨어를 이해하기 쉬워진다. 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다. 경제적인 이유! 애그니; YAGNI (You aren't going to need it) 추측하지 말고 현재 요구사항만 충족해라 대신 그것을 최대한 멋지게 해결하도록 설계 해라 나중에 더 잘 이해하게 되면 그것을 리팩터링으로 바꾼다. 실제로 필요할 때 무조건 구현하되, 그저 필요할 것이라고 예상할 때에는 절대 구현하지 말라 - 론 레프리스 XP (eXtreme Program..
21/11/01 CSS (1) 수강중 # CSS 선언방법 1. inline HTML 태그 안에다가 적용하는 방법. 2. internal style 태그로 지정하는 방법. 3. external .css 외부 파일로 지정하는 방법.

728x90