
👀 Docker의 기본 개념 이해 ✔ 컨테이너 (Container) - 애플리케이션을 독립적으로 실행할 수 있는 가벼운 환경 - 실제 사용하는 것 (≒ 빵) ✔ 이미지 (Image) - 컨테이너의 실행 파일 및 종속성을 포함한 템플릿 - 간단히 설명하면 이미지는 컨테이너를 만드는 '빵틀'과 같다. 사용자는 빵틀이 아닌 빵틀로 만들어낸 빵을 원한다. 즉, 이미지 자체로는 큰 쓸모가 없으며 컨테이너를 만드는데 사용한다. ✔ Docker Daemon - Docker의 백그라운드에서 실행되는 프로세스 ✔ Docker CLI - 커맨드라인에서 Docker와 상호작용하기 위한 명령어 도구 ✔ Docker Hub - Doc..

코드를 새로 작성한다면 wait와 notify를 쓸 이유가 없다. 💻 java.util.concurrent 자바 5에서 도입된 고수준의 동시성 유틸리티 덕분에 새로 작성하는 코드에서는 wait와 notify는 거의 쓸 일이 없어졌다. wait와 notify는 올바르게 사용하기가 아주 까다로우니 고수준 동시성 유틸리티를 사용하자. 🤷♂️ 동시성 컬렉션 (concurrent collection) 동시성 컬렉션은 List, Queue, Map 같은 표준 컬렉션 인터페이스에 동시성을 가미해 구현한 고성능 컬렉션이다. 높은 동시성에 도달하기 위해 동기화를 각자의 내부에서 수행하므로, 동시성 컬렉션에서 동시성을 무력화하는 건 불가능하며, 외부에서 락을 추가로 사용하면 오히려 속도라 느려진다. 동시성 컬렉션에서 동..

스레드를 직접 다루는 것은 일반적으로 삼가야 한다. ✨ 실행자 프레임워크 java.util.concurrent 패키지는 실행자 프레임워크라고 하는 인터페이스 기반의 유연한 태스크 실행 기능을 담고 있다. 과거에는 단순한 작업 큐를 만들기 위해서 많은 코드를 작성해야 했지만, 이젠 아래와 같이 간단하게 작업 큐를 생성할 수 있다. // 큐 생성 ExecutorService exec = Executors.newSingleThreadExecutor(); //이 실행자에 실행할 태스크를 넘기는 방법 exec.execute(runnable); //실행자를 종료 exec.shutdown(); 실행자 서비스는 이 외에도 여러 주요 기능들을 가지고 있다. 특정 태스크가 완료되기를 기다린다. 태스크 모음 중 아무것 하나..

교착상태와 데이터 훼손을 피하려면 동기화 영역 안에서 외계인 메서드를 절대 호출하지 말자. 🧶 과도한 동기화는 피하라 과도한 동기화는 성능을 떨어뜨리고, 교착상태에 빠뜨리고, 심지어 예측할 수 없는 동작을 낳기도 한다. 응답 불가와 안전 실패를 피하려면 동기화 메서드나 동기화 블록 안에서는 제어를 절대로 클라이언트에 양도하면 안 된다. 예를 들어 동기화된 영역 안에서는 재정의할 수 있는 메서드를 호출하면 안 되며, 클라이언트가 넘겨준 함수 객체를 호출해서도 안된다. 동기화된 영역을 포함한 클래스 관점에서는 이런 메서드는 모두 바깥세상에서 온 외계인으로 느끼므로, 그 메서드가 무슨 일을 할지 알지 못하며 통제도 할 수 없다. 👻 외계인 메서드 (alien method) 외계인 메서드가 하는 일에 따라 동기..
- Total
- Today
- Yesterday
- 이펙티브자바
- IMAGE
- Retrofit2
- 완탐
- 조합
- dp
- 알고리즘
- 아이템61
- EffectiveJava
- 완전탐색
- 운영체제
- 순열
- BOJ
- 그래프탐색
- DevOps
- BFS
- cicd
- bruteforce
- OS
- 아이템59
- subset
- 백준
- dfs
- Java
- springboot
- docker-compose
- Container
- 토큰기반인증
- 아이템60
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |