프록시 패턴이란? 대상 원본 객체를 대리(대신) 처리하게 함으로써 로직의 흐름을 제어하는 구조패턴입니다.이 프록시를 통해서 크게 2가지인 접근 제어 (권한에 따른 접근 차단, 캐싱, 지연 로딩) , 부가 기능 추가 일을 할 수 있습니다. 프록시 패턴 vs 데코레이션 패턴 두 패턴 모두 둘 다 프록시를 사용한다는 공통점이 있지만 이 둘의 의도(intent)에 따라서 구분됩니다.이번 배울 프록시 패턴은 접근 제어가 목적이며 데코레이터 새로운 기능, 부가 기능 추가가 목적입니다. 프록시 패턴의 구성요소 프록시 패턴은 다음과 같은 구성요소로 이루어져 있습니다. 실제 주체 (Real Subject) : 원본 대상 객체주체 (Subject) : Proxy와 RealSubject를 하나로 묶는 인터페이스프..
전략 패턴이란? 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고 사용하며, 동적으로 전략 수정이 가능한 패턴입니다.풀어서 설명한다면, 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있는 패턴입니다. 전략 패턴 vs 템플릿 메서드 패턴 두 패턴 모두 알고리즘을 실행(런타임) 중에 알고리즘을 동적으로 적용한다는 공통점이 있지만이번 배울 전략 패턴은 합성(composition)을 통해 해결하고 템플릿 메서드 패턴은 상속(inheritance)을 통해 해결합니다. 이해하기 쉽게 말하면 전략 패턴은 Interface를 의존하여 OCP인 개방 폐쇄 원칙을 잘 지키며 앞으로도 많이 사용될 디자인 패턴이지만 템플릿 메서드 패턴은 부모 클래스를 상속받아 부모 클래스의 코드..
템플릿 메서드 패턴이란? 템플릿 메서드 패턴을 객체지향 디자인 패턴 중 하나로, 기능의 뼈대(템플릿)와 실제 구현을 분리하는 패턴입니다.즉, 상위 클래스(추상 클래스)에서 알고리즘 골격을 정의하고 하위 클래스 (상속 받은 클래스)에서는 알고리즘의 특정 단계를 재정의할 수 있는 것입니다. 아래 [그림1] 은 템플릿 메서드를 보여주고자 하였고 왼쪽은 기본틀이며, 오른쪽은 제가 설명하기 위해 예시로 만든 틀입니다. 들어가기 전 단어 알기 훅 메서드 (hook method)추상 클래스에서 추상 메서드로 선언하며, 기본 구현만 제공하는 메서드입니다.이제 하위 (구현, 자식) 클래스에서 추상 메서드를 오버라이딩하여 사용할 수 있습니다. 템플릿 메서드 특징 템플릿 메서드 패턴은 다음과 같은 특징을 가..
더보기 기능 예시 더보기의 기능은 주위에 엄청 많습니다. 구글에 검색하여 아래로 스크롤하며 게시글 목록 더보기 알림 더보기 게시글 더보기 아프리카TV의 방송 더보기 등 등 사용하는 곳은 엄청 많습니다. 이미지 예시1) 이미지 예시2) 어떻게 보면 페이징하고 다를게 없는데? 라고 생각할 수 있지만 그것도 맞는 말입니다. 그래서 이번에 생각할 것은 실시간으로 바뀌는 더보기 기능입니다. 나의 문제 상황 나는 실시간 알림 기능을 구현하고 있었다. 알림을 클릭하면 알림 목록이 나오는데 사용자가 알림을 삭제 할 수도 있고 알림을 실시간으로 받아졌다. 알림을 수신받고 마지막 목록을 안보이게 처리하는 여기까지는 문제가 없다.. 알림3을 그냥 DOM에서 제거해주면 화면에선 노출되지 않게 되며 더보기 해도 알림3부터 데이..
Singleton 디자인패턴은 객체 지향 프로그래밍에서 매우 중요한 역할을 하는 패턴 중 하나입니다.싱글톤 패턴은 어떤 클래스가 최대 한 번의 인스턴스만을 가지고, 그 인스턴스에 대한 전역적인 접근점을 제공하며, 이 인스턴스를 생성할 때의 제어를 보장합니다.이 글에서는 Singleton 패턴의 개념, 사용법, 그리고 주의할 점에 대해 알아보겠습니다. Singleton Singleton 개념 Singleton 패턴은 아래의 핵심 원칙을 따릅니다. 유일한 인스턴스해당 클래스는 오직 하나의 인스턴스만을 가지게 됩니다. 전역적 접근어디에서든지 이 유일한 인스턴스에 접근할 수 있는 전역적인 접근을 제공합니다.그래서 어디서든 접근할 수 있게 sta..
그리드간 형태 드래그 기능 예시 Sort 5를 Sort 2로 드래그를 하여 Sort 1과 Sort 2사이에 삽입이 되었다.그래서 Sort 2이후의 순번들은 하나씩 밀리게 된다. 나의 문제 상황 나는 이 그리드간 드래그 앤 드랍기능을 구현하면서 성능을 하나도 고려하지 않고 그냥 기능 구현에 급급했다.구현은 되었고 코드 리뷰와 테스트를 할 때 몇가지의 문제 상황을 발견하였다. 드래그를 하여 순번이 바뀌면 전체의 순번을 재정렬을 하는 코드로 구현하였다.중간에 삭제를 하면 전체의 순번을 재정렬하는 코드로 구현하였다.JPA를 사용하여 저장을 하였는데 전체의 순번을 재정렬하는데 반복문을 돌리면서 커넥션을 막 찌르고 있었다. 지금 생각해보면 진짜 개발도 못 하였고 개발자가 아닌 공부하는 것처럼, 학생처럼..
- Total
- Today
- Yesterday
- Fetch
- 비동기
- 개발
- 개발블로그
- 코딩테스트
- spring
- 개발자
- 데이터 베이스
- 네트워크
- DBeaver
- Spring Security
- Cors
- 프론트
- JavaScript
- 자바스크립트
- Front
- 오라클
- 개발환경
- git
- 깃허브 액션
- Mac
- 프로세스
- java
- aws
- 디자인패턴
- 템플릿
- AJAX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |