이진 탐색 ( Birnary Search ) 🤔 단순 탐색과 문제점 사전에서 정지 라는 단어를 찾는다고 생각해보자. 보통의 사전은 자음과 모음 순으로 정렬되어 있다. 정렬되어 있다는 사실을 알았으니 우리는 ㄱ ~ ㅈ 까지 찾은 후 ㅏ ~ ㅓ 까지 찾아갈 것이다. 이렇게 앞에서부터 순서대로 찾아나가는 방법을 단순 탐색 이라고 부른다. 다만 이런 방식은 상당히 비효율 적일 수 있다. 만약 앞에서 32000번째 단어의 경우 찾기 위해 앞에서 부터 32000개의 단어를 확인 해보아야 한다. 💡 즉, M개의 정렬된 데이터를 찾기 위해 최대 M번 최소 1번 평균적으로 M/2번의 탐색 횟수가 필요하다. 👍 이진 탐색 ( Binary Search ) 단순 탐색(Simple Search) 방식은 데이터의 개수가 늘어남에..
파사드 패턴(Facade Pattern) 💡 클라이언트에게 파사드(Facade)라는 하나의 인터페이스만 제공해 서브 시스템의 구현을 숨기고 의존성을 낮추는 방법을 제공한다. 개요 프랑스 어로 건물의 입구가 위치한 외벽을 가리킨다. 건물은 파사드(Facade)를 통해 외부에서 내부가 정확히 어떻게 생겼는지 알지 못하게 숨기게 되는데, 이는 소프트웨어에서 내부 구현을 숨기고 외부에는 파사드(Facade)만 노출시키는 상황을 예상해 볼 수 있다. 객체 모델 👍 장점 서브 시스템을 파사드를 통해 접근하게 구조화 하면 복잡성을 줄일 수 있다. 클라이언트가 가져야할 의존성을 하나로 통합하여 줄일 수 있다(Loose Coupling). 🎯 실제 활용 스프링에서 각 레이어간 의존성을 줄이기 위해 파사드(Facade)에..
데코레이터 패턴 (Decorator Pattern) 💡 기존 코드 변경 없이 부가 기능을 동적으로 추가할 수 있는 패턴이다. 확장을 위해 서브 클래스를 생성하는 것이 아닌 위임을 사용해 부가기능을 추가하는 것이 가능하다. 👍 장점 다른 객체에 영향을 주지 않고 객체에 새로운 책임을 동적으로 추가할 수 있다. 즉, OCP 원칙을 준수한다. 필요에 따라 추가•삭제가 용이하다. 객체 모델 Component 데코레이터 혹은 데코레이터를 통해 책임을 추가할 가능성이 있는 객체의 인터페이스 Decorator Component 객체를 합성하면서 Component 인터페이스를 구현해 중간에 책임을 추가할 수 있도록 만든 객체 ConcreteComponent 데코레이터를 통해 책임을 추가할 수 있는 Component ..
정의 💡 그룹의 여러 요소들을 동일한 인터페이스를 구현한 개별 객체 하나로 묶어 동일한 인터페이스로 접근하여 처리할 수 있는 패턴이다. 설명 하나의 인터페이스를 최상위 노드로 가지는 트리형태의 하위 타입 요소(Component)와 이를 포함하는 복합 객체(Composite)를 만들어 최상위 노드의 인터페이스로 복합요소를 사용하는 디자인패턴을 얘기한다. 객체 모델 Composite 복합 객체로 여러 Component 들을 포함하고 있는 객체이다. public class Composite implements Component{ List components; public Composite(List components) { this.components = components; } @Override public ..
- Total
- Today
- Yesterday
- 세션 불일치
- 뾰족함
- RestAssured
- pass by value
- SpringBoot 2.2
- 컴포짓 패턴
- Session
- 정적 타입 언어
- 동적 디스패치
- Object Pool
- OOP
- 객체 풀
- 수직 분할
- 장애 해결기
- Memory Fragmentation
- 메모리 파편화
- java
- 내부 단편화
- 클린 아키텍처
- 메모리 단편화
- ATDD
- 동적 타입 언어
- pool
- 외부 단편화
- multimap
- 수평 분할
- 육각형 아키텍처
- pass by reference
- Sticky Session
- Clean Architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |