일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- CI
- 해시맵
- Spring
- CI/CD
- java
- CKA
- Oracle
- superBuilder
- 자바
- Kubernetes
- programmers
- IntelliJ
- k8s
- dabase
- SpringMVC
- 프로그래머스
- JPA
- 뷰
- map
- hibernate
- builder-pattern
- DevOps
- vuejs
- cd
- ORM
- docker
- Vue
- Di
- 코딩테스트연습
- Today
- Total
목록개발 (72)
문홍의 공부장
Statefulset Statefulset 은 Pod를 Scaling Up/Down 또는 Deploy 할 때, 각 파드의 기존 스펙을 유지시켜준다. 즉, Statefulset 은 sticky 값을 유지하고 생성할 때 기존 값을 사용하여 그대로 만들어준다. 안정적이고 고유한 네트워크 식별자 사용 안정적이고 지속적인 스토리지 사용 안정적인 파드 배치 및 확장, 자동 롤링 업데이트 설정 Statefulset app. web server: 모든 application 이 같은 역할을 함 (단순 복제), 하나의 볼륨에 모두 연결 가능 Statefulset app. database: 각 application 마다 다른 역할을 하며, 애플리케이션 특징에 맞게 트래픽이 분산됨. 애플리케이션마다 각각 다른 볼륨 사용 ap..
Service Headless Service 서비스는 접근을 위해 ClusterIP 또는 ExternalIP 를 지정받는다. 즉, 서비스를 통해 제공되는 기능들에 대한 엔드포인트를 쿠버네티스 서비스를 통해 통제하는 개념인데, MSA 에서는 기능 컴포넌트에 대한 엔드포인트를 찾는 기능을 Service Discovery 라 하고, 서비스의 위치를 등록해놓는 서비스 디스커버리 솔루션을 제공한다. (Etcd, consul 등) 이 경우, 쿠버네티스 서비스를 통해 컴포넌트를 관리하는 것이 아니라, 서비스 디스커버리 솔루션을 사용하기 때문에, 서비스에 대한 IP 주소가 필요없다. 이러한 시나리오를 지원하기 위한 쿠버네티스의 서비스를 Headless Service 라 한다. Headless Service 생성 시, ..
Pod Lifecycle 파드는 아래의 생명주기를 가진다. Pending 최초의 단계 Status는 Phase, Conditions, Reason 으로 구성됨 Phase: Pending, Running, Succeeded, Failed, Unknown Conditions: Initialized, ContainerReady, PodScheduled, Ready Reason: ContainersNotReady, PodCompleted 컨테이너를 초기화하고, 노드 스케쥴링을 설정 Running Pending 이후 파드가 실행되는 단계 Succeeded Job/CronJob 으로 생성된 파드의 경우, 일을 마치면 더이상 돌지(Running) 않고 Succeeded / Failed 상태로 전환 파드의 모든 컨테이..
k8s Architecture 쿠버네티스는 중앙(Master)에 API 서버와 상태 저장소를 두고, 각 서버(Node)의 에이전트(kubelet) 과 통신하는 구조. master: 전체 클러스터를 관리하는 서버 node: 컨테이너가 배포되는 서버 Master 구성 요소 API 서버 (kube-apiserver): 모든 요청을 처리하는 API 서버 분산 데이터 저장소 (etcd): key-value 저장소 스케쥴러, 컨트롤러 (kube-scheduler, kube-controller-manager, cloud-controller-manager) Node 구성 요소 kubelet: 노드에 할당된 파드의 생명주기 관리 kube-proxy: 파드로 연결된 네트워크 관리 추상화: 컨테이너(containerd, r..

docker를 사용하여 Jenkins 설치하기 1. docker 이미지 다운로드 & 실행 $ docker run -itd --name jenkins -p 9000:8080 jenkins/jenkins:lts 2. Jenkins 접속 도커 이미지 실행 시 설정한 port 로 접속한다. (127.0.0.1:9000) 초기 패스워드를 젠킨스 컨테이너의 /var/jenkins_home/secrets/initialAdminPassword 경로에서 확인한다. docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword Install suggested plugins 를 클릭하여 기본 플러그인을 설치한다. 3. Github 과 연동하기 [git toke..
Cookie vs. Session vs. Token 개념 정리 http 프로토콜의 비연결성(Connectionless) 과 무상태(Stateless): 서버로 가는 모든 요청은 이전 리퀘스트와 독립적으로 진행됨. 클라이언트 요청 - 서버 응답이 완료되면 바로 연결은 끊어지며, 연결이 해제됨과 동시에 서버와 클라이언트는 이전 요청/결과에 대해 잊어버린다. 요청 상태를 잊어버리게 된다면, '인증'은 어떻게 구현해야하나? 매번 클라이언트는 데이터베이스를 왕복하며 인증을 해야 하는 걸까? cookie, session, token 의 차이점을 알고 인증 구현에 사용하자! cookie 브라우저에서 요청 -> 서버에서 응답 시, 브라우저에 저장하고자 하는 내용을 쿠키에 [key:value] 형태로 담아..
Division by Zero in Java: Exception, Infinity, or Not a Number 제수의 자료형이 Integer 일 때, divide by zero - ArithmeticException 을 발생시킨다. // throws ArithmeticException assertThrows(ArithmeticException.class, () -> { int result = 12 / 0; }); 제수의 자료형이 float/dobule 일 때, exception 을 발생시키지 않으며 infinity/NaN 으로 리턴한다. // exceptions 을 던지지 않으며, return NaN, POSITIVE_INFINITY, and NEGATIVE_INFINITY. assertDoesNotT..
Java Object 를 Map 으로 변경하기 (ObjectMapper) Jackson databind 라이브러리를 사용하여 객체를 Map 타입으로 변환할 수 있다. pom.xml 에 디펜던시 추가 com.fasterxml.jackson.core jackson-databind 2.11.0 클래스 생성 @Data public class Person { private int age; private String name; public Person() {} public Person(int age, String name) { this.age = age; this.name = name; } @Override public String toString() { return "Person {" + "age=" + age ..