객체 간의 기능 이동 객체 설계에서 원칙은 아니지만 가장 중요한 일 중 하나가 "기능을 어디에 넣을지 판단하는 것" 입니다. 적절한 위치를 판단하는 개인적인 기준은 우선 정보 전문가를 파악한 후 해당 정보 전문가가 위치한 곳에 넣는 것입니다. 이번 장에서는 기능을 적절한 위치에 넣기 위한 여러가지 방법을 소개하고 있습니다. 하나씩 천천히 살펴보겠습니다. 메서드 이동 메서드가 자신이 속한 클래스보다 다른 클래스의 필드 및 메서드를 더 많이 사용한다면 제일 많이 사용하는 클래스안으로 메서드를 옮기는 것입니다. 💡 동기 및 예제 코드 클래스에 기능이 너무 많거나 클래스가 다른 클래스와 과하게 의존되어 있는 경우 메서드를 옮기는 것이 좋습니다. 메서드를 옮기면 클래스가 간결해지고 명확하게 기능을 구현할 수 있습..
네 개의 영역 💡 표현 영역의 역할 사용자의 요청을 받아 응용 영역이 필요로 하는 데이터 형식으로 변환해서 응용 영역에 전달하며, 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할을 합니다. 💡 응용 영역의 역할 사용자에게 제공해야할 기능을 구현하며, 기능을 구현하기 위해 도메인 영역의 도메인 모델에 로직 수행의 책임을 위임합니다. 💡 도메인 영역의 역할 도메인 모델은 도메인의 핵심 로직을 구현합니다. 💡 인프라스트럭처 영역의 역할 데이터베이스와 연동을 처리하거나 MQ를 사용하여 메시지 처리 등 논리적인 개념을 표현하기보다 실제 구현을 다룹니다. 계층 구조 아키텍처 서비스 레이어 아키텍처의 구조는 상위 계층은 하위 계층을 의존하되 하위 계층은 상위 계층을 의존해서는 안된다는 것입니다. DIP : 의..
메서드 정리 리팩토링의 주된 작업은 코드를 포장하는 메서드를 적절히 정리하는 것입니다. 대부분의 문제점은 장황한 메서드로 인해 발생합니다. 이 장황한 메서드에는 많은 정보가 들어가 있고, 복잡한 로직에 의해 우리들이 알아야하는 정보들이 묻혀버립니다. 핵심적인 리팩토링 기법은 이러한 장황한 메서드를 적절한 메서드 추출 기법과 메서드 내용 직접 삽입, 임시변수를 메서드 호출로 전환등의 기법을 통해 정리를 해야합니다. 지금부터 어떤 방법이 있는지 어떻게 적용할 수 있는지 예제를 통해 살펴보겠습니다. 메서드 추출 메서드 추출 기법은 장황한 메서드를 쪼개는 기법입니다. 메서드를 쪼개어 기능을 분리하고 명확한 메서드명을 짓는것입니다. 메서드 추출 기법을 통해 반환해야하는 변수가 2가지 이상인 경우 객체를 사용하여 ..
코드의 구린내란? 리팩토링이 필요하다고 판단되는 "의심나는 상황"을 빗대어 "구린내" 라는 표현으로 나타낸 것 중복 코드 중복 코드는 똑같은 코드 구조가 두 군데 이상 있을 때 발생하게 됩니다. 이러한 문제는 동일한 부분을 하나로 통일하면 문제가 해결됩니다. 💡 한 클래스의 두 메서드 안에 같은 코드가 있는 경우 이 경우 메서드 추출 기법을 사용하여 중복되는 코드를 빼내어 별도의 메서드를 만든 후 해당 메서드를 두 곳에서 호출하는 방법입니다. public void methodA() { methodC(); } public void methodB() { methodC(); } private void methodC() { // 중복 로직을 담고 있는 코드를 추출 } 💡 두 하위 클래스에 같은 코드가 있는 경우..
- Total
- Today
- Yesterday
- redis sorted set
- JDK Dynamic Proxy와 CGLIB의 차이
- transactional outbox pattern spring boot
- spring boot 엑셀 다운로드
- pipeline architecture
- spring boot redisson destributed lock
- 람다 표현식
- 공간 기반 아키텍처
- @ControllerAdvice
- space based architecture
- transactional outbox pattern
- java userThread와 DaemonThread
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 레이어드 아키텍처란
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- redis sorted set으로 대기열 구현
- spring boot excel download paging
- spring boot redisson 분산락 구현
- spring boot poi excel download
- 자바 백엔드 개발자 추천 도서
- spring boot excel download oom
- spring boot redis 대기열 구현
- spring boot redisson sorted set
- service based architecture
- polling publisher spring boot
- microkernel architecture
- java ThreadLocal
- pipe and filter architecture
- redis 대기열 구현
- 서비스 기반 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |