의도 부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성. 사용자로 하여금 개별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 하는 패턴 활용성 부분-전체의 객체 계통을 표현하고 싶을 때 사용자가 객체의 합성으로 생긴 복합 객체와 개개의 객체 사이의 차이를 알지 않고도 자기 일을 할 수 있도록 만들고 싶을 때. 사용자는 복합구조의 모든 객체를 똑같이 취급 참여자 Component: 집합 관계에 정의될 모든 객체에 대한 인터페이스를 정의. 모든 클래스에 해당하는 인터페이스에 대해서는 공통의 행동을 구현. 전체 클래스에 속한 요소들을 관리하는 데 필요한 인터페이스를 정의한다. 순환 구조에서 요소들을 포함하는 전체 클래스로 접근하는 데 필요한 인터페이스를 정의하며, 적절하다면 그 인터페이스..
1. 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 1. java 기본적으로 단일 상속만 지원해준다. 그래서 둘 이상을 상속받을 수가 없다. 그러한 이유는 다중 상속을 했을 때 생기는 문제점을 안고 있어서 이러한 것을 없애고자 단일상속만을 허용한다고 한다. (클래스 간의 관계가 명확해진다는 장점이 있다.) 2. Python 다중상속을 지원해준다. 순서는 오른쪽에서 왼쪽 방향으로 상속이 받아진다. 만일 오른쪽과 왼쪽이 같은 메서드가 있다고 했을 때 왼쪽의 메소드로 오버라이팅이 된다. 자바의 단일 상속은 다들 아시니 python 다중상속에 대해서 예시를 들어 설명해보겠습니다. class BaseMixins(object): def __repr__(self): return f'x는 1이고 y는 2..
1. 기본지식 클래스변수: 클래스가 메모리에 로딩(loading) 될 때 생성되어 프로그램이 종료될 때 까지 유지되며, public을 앞에 붙이면 같은 프로그래 내에서 어디서나 접근할 수 있는 전역변수의 성격을 갖는다. 지역변수: 메서드 내에 선언되어 메서드 내에서만 사용 가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 된다. 1. 클래스 변수를 활용한 케이스 public class StaticClass { private static final Pattern PATTERN = Pattern.compile("^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&+=])(?=\\S+$).{8,}$"); public static boolean validPassword(String passwor..
1. GoF 디자인 패턴 의도 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공 활용성 1. 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점으로 모든 사용자가 접근할 수 있도록 해야 할 때 2. 유일한 인스턴스가 서브클래싱으로 확장되어야 하며, 사용자는 코드의 수정없이 확장된 서브클래스의 인스턴스를 사용할 수 있어야 할 때 결과 1. 유일하게 존재하는 인스턴스로의 접근을 통제한다. 2. 이름 공간을 좁힌다. 3. 연산 및 표현의 정제를 허용 4. 인스턴스의 개수를 변경하기가 자유롭다. 5. 클래스 연산을 사용하는 것보다 훨씬 유연한 방법 2. Java Effective private 생성자나 열거 타입으로 싱글턴임을 보증하라(아이템3) 싱글턴을 만드..
1. GoF 디자인 패턴 의도 원형이 되는(prototypical) 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성하는 것 동기 책에서 나온 예제를 요약하여 설명해보겠습니다. 원래 범용적으로 쓰이던 그래픽 프레임워크가 있는데, 새로 추가하고자 하는 음표와 보표에 대한 클래스를 넣고자 했을 때 그래픽 프레임 워크는 그래픽 관련 클래스를 상속 받은 서브 클래스를 필요로 하게 됩니다. 하지만 이렇게 되면 각 음표마다 클래스를 만들게 되는데 이러한 것을 해결하는 방법 중 하나가 '프로토 타입' 이라고 한다. 기본적으로 원형을 복제하고 setXyz 를 사용하여 값을 변형해 사용하는 방식을 쓴다면 클래스를 더 줄일 수 있다는 장점을 가질 수 있게 된다. 활용성 1..
Builder Pattern 1. GoF 디자인 패턴 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공할 수 있도록 합니다. 활용성 - 복합 객체의 생성 알고리즘이 이를 합성하는 요소 객체들이 무엇인지 이들의 조립 방법에 독립적일 때 - 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때 2. Effective Java 생성자에 매개변수가 많다면 빌더를 고려하라 일반적인 정적 팩터리와 생성자는 점층적 생성자 패턴으로 해결할 수 있지만, 매개변수가 많아지면 클라이언트 코드를 작성하거나 읽기 어려워진다. 자바빈즈 패턴(setXxxx() 형식으로 작성하는 형식)에서는 객체 하나를 만들려면 메서..
적용 문제: https://leetcode.com/problems/merge-intervals/ Merge Intervals - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 문제에 적용하기 해당 문제를 풀었을 때 정렬 안하고 풀었더니 다음과 같은 테스트 케이스에서 막혔었다. Input: [[1,4],[0,4]] Output: [[1,4]] Expected: [[0,4]] 그래서 해당 input을 먼저 정렬한 다음에 솔루션을 적용해보기로 했다. 우선 저는 ..
- Total
- Today
- Yesterday
- 면접
- env
- BFS
- 2021 KAKAO BLIND RECRUITMENT
- 알고리즘
- Pattern
- ubuntu
- docker-compose
- 자바
- Celery
- thread
- 프로그래머스
- 그래프
- Linux
- dockerignore
- Spring
- docker
- PostgreSQL
- Java
- Python
- 카카오
- setattr
- django
- postgres
- DRF
- headers
- 파이썬
- 백준
- Command Line
- Collections
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |