일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dataframe
- equals
- BFS
- pandas
- disjoint set
- 스프링
- 세그먼트 트리
- 알고리즘
- ddd
- 파이썬
- 문자열
- JPA
- Redis
- UML
- 이펙티브 자바
- DP
- 백준
- 헥사고날 아키텍처
- 포트앤어댑터 아키텍처
- 다익스트라
- 위상정렬
- springboot
- docker
- 데이터 flow
- 자바
- dfs
- java
- 비트마스크
- spring security
- series
- Today
- Total
목록전체 글 (95)
코딩못하는사람
프록시 패턴이란? 클라이언트와 서버사이에서 대리자 역할을 하며 중계해주는 프록시 서버의 느낌과 같이 프록시 패턴도 구체화해서 사용하는 객체를 대신해서 대리자 객체(인터페이스)를 사용하여 클라이언트쪽에서 어떤 클래스를 주입받는지 알 수 없게 만들어주는 (클라이언트단만 신경쓰게 해주는)패턴입니다. 프록시 패턴의 특징 대리자는 실제 서비스와 같은 이름의 메서드를 구현한다. 이때 인터페이스를 사용한다. 대리자는 실제 서비스에 대한 참조 변수를 갖는다(Proxy가 RealSubject를 가짐) 대리자는 실제 서비스의 같은 이름을 가진 메서드를 호출하고 그 값을 클라이언트에게 돌려준다. 대리자는 실제 서비스의 메서드 호출 전후에도 별도의 로직을 수행할 수도 있다. 프록시 디자인패턴 사진입니다. 클라이언트가 Subj..
1.어댑터 패턴 어댑터 패턴의 이해는 콘센트로 이해할 수 있다. 우리나라에서는 220V의 콘센트를 쓰지만 필요에 따라서 110V,22V,11V에 맞춰서 다양하게 연결되어야 할 때가 있다.이럴 때 우리는 중간에 220V와 110V가 연결될 수 있도록 호환을 도와주는 인터페이스를 만들어 주어야 한다. 설계도는 다음과 같다. 클라이언트에서는 Target Interface 를 호출하는 것 처럼 보인다. 하지만 클라이언트의 요청을 전달받은 (Target Interface 를 구현한) Adapter 는 자신이 감싸고 있는 Adaptee 에게 실질적인 처리를 위임한다. Adapter 가 Adaptee 를 감싸고 있는 것 때문에 Wrapper 패턴이라고도 불린다. 예제를 만들어 보았다. 내가 220V 폰 충전기를 가지..
스프링 빈(Spring Bean)이란? 스프링 IoC(Inversion of Control) 컨테이너에 의해서 관리되고 애플리케이션의 핵심을 이루는 객체들을 스프링 빈(Beans)이라고 한다. 빈은 스프링 컨테이너에 의해서 인스턴스화 되어 조립되고 관리됩니다. 스프링 컨테이너가 관리해준다는 점을 제외하면 자바 객체이다. Singleton 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다. 코드에서 private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다. 하지만 스프링 컨테이너를 사용하면 컨테이너에 등록되는 빈들을 알아서 싱글톤으로 관리해준다. (클라이언트들이 스프링 빈을 요구할 때..
Enum(열거형) 이란? 서로 연관이 있는 상수들을 묶어 놓은 집합이다. 우리가 자바에서 상수를 정의할 때 final static 을 이용해서 정의하던 문제점들을 보완할 수 있다. Enum의 장점 코드가 단순해지고 가독성이 좋아 구현 의도를 파악하기 쉽다. 인스턴스 생성,상속을 방지하여 상수의 타입안정성이 보장된다. 허용 가능한 값들을 제한할 수 있다. IDE의 적극적인 지원을 받을 수 있다.(자동완성,오타검증,텍스트 리펙토링 등등) 리펙토링시 변경 범위가 최소화된다.(Enum 코드만 고치면 됨) Enum을 사용함으로써 얻는 장점 gender1 = EnumExample.MALE; gender1 = EnumExample.FEMALE; 를 선언한 부분까지는 문제가 없어보이나 gender1='boy' 라는 값..