조건문 쪼개기 복잡한 조건문이 있을 경우 각 부분을 메서드 추출 기법을 통해 빼내자 💡 동기 및 예제 코드 프로그래밍에서 복잡한 부분은 주로 복잡한 조건문을 파악하는 일입니다. 조건을 검사하고 다양한 조건에 따라 다른 작업을 처리하는 코드를 작성하다 보면 금방 메서드가 길어집니다. 이런 장황한 메서드는 잘게 쪼개고 용도에 맞는 이름을 가지는 메서드 추출기법을 통해 정리를 하면 가독성을 높일 수 있습니다. if (date.isBefore(SUMMER_START) && date.isAfter(SUMMER_END)) { charge = quantity * winterRate + winterServiceCharge; } else { charge = quantity * summerRate; } 💡 리팩토링된 코드..
객체 간의 기능 이동 객체 설계에서 원칙은 아니지만 가장 중요한 일 중 하나가 "기능을 어디에 넣을지 판단하는 것" 입니다. 적절한 위치를 판단하는 개인적인 기준은 우선 정보 전문가를 파악한 후 해당 정보 전문가가 위치한 곳에 넣는 것입니다. 이번 장에서는 기능을 적절한 위치에 넣기 위한 여러가지 방법을 소개하고 있습니다. 하나씩 천천히 살펴보겠습니다. 메서드 이동 메서드가 자신이 속한 클래스보다 다른 클래스의 필드 및 메서드를 더 많이 사용한다면 제일 많이 사용하는 클래스안으로 메서드를 옮기는 것입니다. 💡 동기 및 예제 코드 클래스에 기능이 너무 많거나 클래스가 다른 클래스와 과하게 의존되어 있는 경우 메서드를 옮기는 것이 좋습니다. 메서드를 옮기면 클래스가 간결해지고 명확하게 기능을 구현할 수 있습..
메서드 정리 리팩토링의 주된 작업은 코드를 포장하는 메서드를 적절히 정리하는 것입니다. 대부분의 문제점은 장황한 메서드로 인해 발생합니다. 이 장황한 메서드에는 많은 정보가 들어가 있고, 복잡한 로직에 의해 우리들이 알아야하는 정보들이 묻혀버립니다. 핵심적인 리팩토링 기법은 이러한 장황한 메서드를 적절한 메서드 추출 기법과 메서드 내용 직접 삽입, 임시변수를 메서드 호출로 전환등의 기법을 통해 정리를 해야합니다. 지금부터 어떤 방법이 있는지 어떻게 적용할 수 있는지 예제를 통해 살펴보겠습니다. 메서드 추출 메서드 추출 기법은 장황한 메서드를 쪼개는 기법입니다. 메서드를 쪼개어 기능을 분리하고 명확한 메서드명을 짓는것입니다. 메서드 추출 기법을 통해 반환해야하는 변수가 2가지 이상인 경우 객체를 사용하여 ..
코드의 구린내란? 리팩토링이 필요하다고 판단되는 "의심나는 상황"을 빗대어 "구린내" 라는 표현으로 나타낸 것 중복 코드 중복 코드는 똑같은 코드 구조가 두 군데 이상 있을 때 발생하게 됩니다. 이러한 문제는 동일한 부분을 하나로 통일하면 문제가 해결됩니다. 💡 한 클래스의 두 메서드 안에 같은 코드가 있는 경우 이 경우 메서드 추출 기법을 사용하여 중복되는 코드를 빼내어 별도의 메서드를 만든 후 해당 메서드를 두 곳에서 호출하는 방법입니다. public void methodA() { methodC(); } public void methodB() { methodC(); } private void methodC() { // 중복 로직을 담고 있는 코드를 추출 } 💡 두 하위 클래스에 같은 코드가 있는 경우..
- Total
- Today
- Yesterday
- spring boot excel download oom
- pipe and filter architecture
- spring boot poi excel download
- transactional outbox pattern spring boot
- space based architecture
- spring boot 엑셀 다운로드
- redis sorted set으로 대기열 구현
- 공간 기반 아키텍처
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 자바 백엔드 개발자 추천 도서
- microkernel architecture
- java ThreadLocal
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot redis 대기열 구현
- spring boot redisson 분산락 구현
- pipeline architecture
- service based architecture
- spring boot redisson destributed lock
- 레이어드 아키텍처란
- redis 대기열 구현
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot redisson sorted set
- polling publisher spring boot
- spring boot excel download paging
- @ControllerAdvice
- java userThread와 DaemonThread
- transactional outbox pattern
- 람다 표현식
- 서비스 기반 아키텍처
- redis sorted set
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |