‘개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴' 책을 보고 정리한 글입니다. 웹 사이트의 상태를 확인해서 응답 속도가 느리거나 연결이 안 되면 모니터링 담당자에게 이메일로 통지해주는 시스템을 만든다고 가정해보자. 상태를 확인하는 StatusChecker 클래스를 다음과 같이 구현할 수 있다. public class StatusChecker { private EmailSender emailSender; public void check() { Status status = loadStatus; if(status.isNotNormal()) { emailSender.sendEmail(status); } } } SMS로 바로 알려주는 기능을 추가하는 요구가 들어온다면 코드는 다음과 같아진다. public ..
‘개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴' 책을 보고 정리한 글입니다. 통합 검색 기능을 정의하기 위해 SearchService 인터페이스를 작성하고 DB를 이용한 DBSearchService 클래스를 구현하였다. 게시글의 개수가 빠르게 증가하면서 SQL의 검색 속도 성능에 문제가 발생했다고 해보자. 검색 속도의 문제를 해결하기 위해 Tolr라는 오픈 소스 검색 서버를 도입하기로 결정했다. TolrClient가 제공하는 인터페이스와 SearchService 인터페이스가 맞지 않는다는 게 문제다. WebSearchRequestHandler 클래스를 비롯해서 여러 클래스가 SearchService를 사용하도록 만들어졌기 때문에, SearchService 대신 TolrClient를 사용하도록 변..
- Total
- Today
- Yesterday
- 정규표현식
- 클린 아키텍처
- 이펙티브 자바
- Effective Java
- 프로그래머스
- 알고리즘
- Olympiad
- kkoon9
- kotest
- Spring
- Algorithm
- 디자인 패턴
- 테라폼
- 코테
- programmers
- C++
- MSA
- 객체지향
- 디자인패턴
- BOJ
- AWS
- Java
- BAEKJOON
- 클린 코드
- node.js
- JPA
- 이팩티브 자바
- 백준
- Spring Boot
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |