1. 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 1. java 기본적으로 단일 상속만 지원해준다. 그래서 둘 이상을 상속받을 수가 없다. 그러한 이유는 다중 상속을 했을 때 생기는 문제점을 안고 있어서 이러한 것을 없애고자 단일상속만을 허용한다고 한다. (클래스 간의 관계가 명확해진다는 장점이 있다.) 2. Python 다중상속을 지원해준다. 순서는 오른쪽에서 왼쪽 방향으로 상속이 받아진다. 만일 오른쪽과 왼쪽이 같은 메서드가 있다고 했을 때 왼쪽의 메소드로 오버라이팅이 된다. 자바의 단일 상속은 다들 아시니 python 다중상속에 대해서 예시를 들어 설명해보겠습니다. class BaseMixins(object): def __repr__(self): return f'x는 1이고 y는 2..
Adapter Pattern(Wrapper) 의도 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응시킨다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작 side effect 가끔 적응자는 적응 대상 클래스가 제공하지 않는 기능을 제공하는 책임도 지니게 된다. 활용성 기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 때 아직 예측하지 못한 클래스나 실제 관련되지 않는 클래스들이 기존 클래스를 재사용하고자 하지만, 이미 정의된 재사용 가능한 클래스가 지금 요청하는 인터페이스를 꼭 정의하고 있지 않을 때. 다시 말해, 이미 만든 것을 재사용하지고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을 때 [객체 적응자(object adapter)만 해당됨] 이미 존재하는 여러 개의..
1. GoF 디자인 패턴 의도 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공 활용성 1. 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점으로 모든 사용자가 접근할 수 있도록 해야 할 때 2. 유일한 인스턴스가 서브클래싱으로 확장되어야 하며, 사용자는 코드의 수정없이 확장된 서브클래스의 인스턴스를 사용할 수 있어야 할 때 결과 1. 유일하게 존재하는 인스턴스로의 접근을 통제한다. 2. 이름 공간을 좁힌다. 3. 연산 및 표현의 정제를 허용 4. 인스턴스의 개수를 변경하기가 자유롭다. 5. 클래스 연산을 사용하는 것보다 훨씬 유연한 방법 2. Java Effective private 생성자나 열거 타입으로 싱글턴임을 보증하라(아이템3) 싱글턴을 만드..
1. GoF 디자인 패턴 의도 원형이 되는(prototypical) 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성하는 것 동기 책에서 나온 예제를 요약하여 설명해보겠습니다. 원래 범용적으로 쓰이던 그래픽 프레임워크가 있는데, 새로 추가하고자 하는 음표와 보표에 대한 클래스를 넣고자 했을 때 그래픽 프레임 워크는 그래픽 관련 클래스를 상속 받은 서브 클래스를 필요로 하게 됩니다. 하지만 이렇게 되면 각 음표마다 클래스를 만들게 되는데 이러한 것을 해결하는 방법 중 하나가 '프로토 타입' 이라고 한다. 기본적으로 원형을 복제하고 setXyz 를 사용하여 값을 변형해 사용하는 방식을 쓴다면 클래스를 더 줄일 수 있다는 장점을 가질 수 있게 된다. 활용성 1..
1. JavaEffective 장점 1. 이름을 가질수 있다. 반환될 객체의 특성을 쉽게 묘사할 수 있다. Enter(int, int, Random) 과 Enter.minimumLevel 중 어느 것이 더 잘 설명이 되는지 생각해보자. 2. 호출 될 때마다 인스턴스를 새로 생성하지 않아도 된다. 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있다.( 싱글 톤, 인스턴스화 불가) 3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력 구현 클래스를 공개하지 않고도 그 객체를 반환할 수 있다. 4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않..
Builder Pattern 1. GoF 디자인 패턴 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공할 수 있도록 합니다. 활용성 - 복합 객체의 생성 알고리즘이 이를 합성하는 요소 객체들이 무엇인지 이들의 조립 방법에 독립적일 때 - 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때 2. Effective Java 생성자에 매개변수가 많다면 빌더를 고려하라 일반적인 정적 팩터리와 생성자는 점층적 생성자 패턴으로 해결할 수 있지만, 매개변수가 많아지면 클라이언트 코드를 작성하거나 읽기 어려워진다. 자바빈즈 패턴(setXxxx() 형식으로 작성하는 형식)에서는 객체 하나를 만들려면 메서..
1. ps 1-1. ps aux bsd스타일로 명령을 실행하는 것. vixx@vixx-ThinkPad-P15v-Gen-1:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.3 0.0 167880 11556 ? Ss 15:37 0:01 /sbin/init sp root 2 0.0 0.0 0 0 ? S 15:37 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 15:37 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 15:37 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 15:37 0:00 [kworker/0:0H root 8 0.0 0.0 0 0 ? ..
- Total
- Today
- Yesterday
- 파이썬
- docker
- postgres
- 면접
- ubuntu
- PostgreSQL
- DRF
- 자바
- setattr
- Pattern
- Collections
- headers
- 그래프
- django
- thread
- BFS
- 프로그래머스
- Linux
- Java
- dockerignore
- Celery
- 백준
- Command Line
- Spring
- docker-compose
- 카카오
- 2021 KAKAO BLIND RECRUITMENT
- env
- Python
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |