![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RHd29/btrlCR3VYdV/BhVAaklZRUfr9gAU9csRo0/img.png)
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..
Adapter Pattern(Wrapper) 의도 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응시킨다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작 side effect 가끔 적응자는 적응 대상 클래스가 제공하지 않는 기능을 제공하는 책임도 지니게 된다. 활용성 기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 때 아직 예측하지 못한 클래스나 실제 관련되지 않는 클래스들이 기존 클래스를 재사용하고자 하지만, 이미 정의된 재사용 가능한 클래스가 지금 요청하는 인터페이스를 꼭 정의하고 있지 않을 때. 다시 말해, 이미 만든 것을 재사용하지고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을 때 [객체 적응자(object adapter)만 해당됨] 이미 존재하는 여러 개의..
1. GoF 디자인 패턴 의도 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공 활용성 1. 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점으로 모든 사용자가 접근할 수 있도록 해야 할 때 2. 유일한 인스턴스가 서브클래싱으로 확장되어야 하며, 사용자는 코드의 수정없이 확장된 서브클래스의 인스턴스를 사용할 수 있어야 할 때 결과 1. 유일하게 존재하는 인스턴스로의 접근을 통제한다. 2. 이름 공간을 좁힌다. 3. 연산 및 표현의 정제를 허용 4. 인스턴스의 개수를 변경하기가 자유롭다. 5. 클래스 연산을 사용하는 것보다 훨씬 유연한 방법 2. Java Effective private 생성자나 열거 타입으로 싱글턴임을 보증하라(아이템3) 싱글턴을 만드..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cdLM6o/btrjIZ3l5p0/KkyOx5YzVwdcXRyfn53K9K/img.png)
1. GoF 디자인 패턴 의도 원형이 되는(prototypical) 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성하는 것 동기 책에서 나온 예제를 요약하여 설명해보겠습니다. 원래 범용적으로 쓰이던 그래픽 프레임워크가 있는데, 새로 추가하고자 하는 음표와 보표에 대한 클래스를 넣고자 했을 때 그래픽 프레임 워크는 그래픽 관련 클래스를 상속 받은 서브 클래스를 필요로 하게 됩니다. 하지만 이렇게 되면 각 음표마다 클래스를 만들게 되는데 이러한 것을 해결하는 방법 중 하나가 '프로토 타입' 이라고 한다. 기본적으로 원형을 복제하고 setXyz 를 사용하여 값을 변형해 사용하는 방식을 쓴다면 클래스를 더 줄일 수 있다는 장점을 가질 수 있게 된다. 활용성 1..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b7LjTJ/btrjAeswmJ5/In6agk8QaoikS6Cq2BKH6K/img.png)
1. Slack 자체설정 1. 앱 만들기 2. Bots 선택 3. 좌측 OAuth & Permissions 클릭 4. Token 복사 5. 토큰 범위 쓰기 까지 설정 6. 알림을 보내고자 하는 채널 우클릭 우클릭을 하면 링크 복사가 있는데 거기에서 https:/testtest.slack.com/test/C234KDSF932DF C234KDSF932DF이 부분이 채널이다. 2. 스프링 부트 1. application.yml slack: token: xoxb-???????????????????????????????????????????? channel: monitor: ??????????? 와 같이 저장을 하자. 각 자신의 토큰과 채널을 넣어주면 된다. 2. AlertService.java @Service ..
참고 : https://programmers.co.kr/learn/courses/30/lessions/12927 이 문제를 풀고나서 다른 사람들과 풀이방식이 조금 다르기에 이렇게 올려본다. 처음에 이 문제를 보았을 때 최댓값을 계속 뽑아내서 -1을 해주면 되겠구나라고 생각을 해서 바로 최대 힙을 생각했다. 파이썬에서는 최대힙을 구현하는 방법은 다들 아시겠지만 원래 숫자에 -1을 곱하면 그렇게 구현할 수 있다. 그래서 다음과 같이 구현하였다. import heapq from functools import reduce def solution(n, works): if n>=sum(works): return 0 heap = [] for v in works: heapq.heappush(heap, -v) while..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zmLW2/btrjdOtuyT0/PlktgKADkos1j0Y47N62pk/img.png)
1. JavaEffective 장점 1. 이름을 가질수 있다. 반환될 객체의 특성을 쉽게 묘사할 수 있다. Enter(int, int, Random) 과 Enter.minimumLevel 중 어느 것이 더 잘 설명이 되는지 생각해보자. 2. 호출 될 때마다 인스턴스를 새로 생성하지 않아도 된다. 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있다.( 싱글 톤, 인스턴스화 불가) 3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력 구현 클래스를 공개하지 않고도 그 객체를 반환할 수 있다. 4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않..
- Total
- Today
- Yesterday
- postgres
- 프로그래머스
- docker-compose
- docker
- setattr
- Java
- Python
- Command Line
- 그래프
- 파이썬
- 백준
- Celery
- PostgreSQL
- Pattern
- ubuntu
- DRF
- Linux
- 카카오
- Collections
- thread
- Spring
- 2021 KAKAO BLIND RECRUITMENT
- dockerignore
- 알고리즘
- 자바
- BFS
- headers
- 면접
- env
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |