![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b9bN1A/btrbIowtTRM/PLtstUXEiKpS0kRiXPv2Fk/img.png)
최근 Serverless 애플리케이션들을 개발하면서 그것에 초점이 맞춰진 Framework들을 살펴본 적이 있다. 그 때 봤던 것이 quarkus, micronaut 인데, 때마침 국내 quarkus 온라인 컨퍼런스가 열려 참여한 적이 있다. 여러 신박한 기능들이 있어서 다음에 꼭 써봐야하지 했다가 오늘 생각나서 getting started를 해봤는데... Spring boot (Spring native)에선 상상도 못했던 부분들이 많았다. (좋았던 부분이 많았다) - native에 대한 문서화가 잘되어있음 - 개발 중 수정이 가능함... 미쳤음.... 코드 변경을 감지하자마자 테스트도 바로 돌림 (멈춤 가능)..... - 개발자 감성 FANCY 그 자체... 사실 아직 native로 실행은 못해봤는데,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/19u6w/btrbPLjAupK/kpRQC4i9uIHShCp5WrEoX1/img.png)
이 글은 쿠버네티스 공식문서의 '로깅 아키텍처'를 바탕으로 요약 및 생각정리를 한 글 입니다. 잘못된 부분이 있다면, 자유롭게 피드백 부탁드립니다 :) 더 자세한 내용이 보고 싶으시다면, 아래 공식문서를 참고해주세요. 로깅 아키텍처 애플리케이션 로그는 애플리케이션 내부에서 발생하는 상황을 이해하는 데 도움이 된다. 로그는 문제를 디버깅하고 클러스터 활동을 모니터링하는 데 특히 유용하다. 대부분의 최신 애플리케 kubernetes.io 컨테이너 엔진들도 로깅을 지원하도록 설계되었다 → 표준 출력, 표준 에러 스트림 작성 일반적으로 컨테이너 엔진이나 런타임에서 제공하는 기본 기능은 완전한 로깅 솔루션으로 충분하지 않다. 예를 들어, 컨테이너가 crash 되거나, Pod가 축출되거나, Node가 종료된 경우에..
개발하다보면 구동 중인 Docker 내로 접속해 내부 파일들을 확인해야 할 때가 있다. Kubernetes에서도 마찬가지로 Pod 내부로 들어가야 할 때가 있다. 이때 bash를 실행시켜 접속하면 된다. Docker의 경우, docker exec -it container_id /bin/bash Kubernetes의 경우, kubectl exec -it pod_name /bin/bash '-it'의 의미는 다음과 같다 - i: STDIN 표준 입출력을 사용하겠다. - t: STDIN에서 pseudo-TTY를 사용하겠다.
특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶으면 영속성 전이 기능을 사용하면 된다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. 쉽게 이해하자면 부모 엔티티를 저장할 때(영속화할 때), 자식 엔티티도 함께 저장할 수 있다. 코드 예제 한 부모에 여러 자식이 존재하는 상황으로 다대일(ManyToOne, OneToMany) 관계를 가진다. // Parent.java @Entity public class Parent { ... @OneToMany(mappedBy = "parent") private List children = new ArrayList(); ... } // Child.java @Entity public class Child { ... @ManyTo..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bMnK9W/btraDAyQUOo/zCs1pEeNIVYXoOPnXAXhn0/img.png)
이번 글은 기본이 부족해 삽질한 경험이 바탕이 되는 글입니다. 🥲 docker-compose에서 multiple commands를 사용하는 법에 대해 알아보겠습니다 😸 docker-compose 에서 multiple commands 가 왜 필요해 ? 아래와 같은 docker-compose 파일을 작성해 개발 중이었습니다. version: "3" services: some_service: container_name: some_service build: . volumes: - ~/some-data:/some-data - ~/some-info:/some-info - ~/some-script:/some-script 위 docker-compose 파일에 대해 설명드리자면, docker registry에 등록된 이..
Javadoc 오류가 발생 ! Open source에 특정 기능을 구현하고 있었습니다. 특정 기능을 구현하고, 메서드 설명(javadoc)에 아래 예시처럼 작성을 완료하였습니다. /** * ~ * ~ * ~ when maxQueueSize > 0 * ~ * ~ */ public void specificMethod(int maxQueueSize) { ... } 기능 테스트 상 이상은 없었으나 build시 제목과 같은 `error: bad use of '>'` javadoc 에러가 발생했습니다. javadoc은 사실 많이 작성해보지 않은 터라, 이런 에러에 대해서도 당황했고, "'>' 문자가 잘못된 사용이라는 건가?", "왜?"라는 의문이 먼저 들었습니다. 그러다보니 '>' 사용 에러가 아닌 다른 오류겠지 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cjnBlj/btrax79a8Bn/7Y6xDJoEIpkXDvgVMEmwo1/img.jpg)
RabbitMQ, Kafka를 들어보기도 하고, 사내에서 사용하기도 하다보니 찾아보며 공부하는 것이 좋겠다 싶어 이렇게 정리하게 되었습니다. 뭐, 대충 어떠한 역할을 하는지는 알고 있었지만, 제일 중요한 "왜 필요한지?"에 대해서는 확실히 대답하지 못하는 것 같아 찾아보며 공부해보고자 합니다. RabbitMQ, Kafka 등 이러한 메세징 SW들을 찾다보니 이들을 이루는 구조, 이론 등이 있었고, 이를 먼저 정리해보고자 합니다. 3가지 단어가 자주 등장을 하는데요, 이걸 먼저 조금씩 알고 넘어갑시다. MOM (Message Oriented Middleware): 메시지 미들웨어의 이론, 개념, 설계도를 의미 Message Queue: 메시지 큐에 대해선 어떻게 보냐에 따라 의견이 나뉘는 것 같습니다. 단..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bD9AtI/btq8U2pAV9R/nrkMEdu61v4byrejkpmCfK/img.png)
Destination Rule Configuration affecting load balancing, outlier detection, etc. istio.io apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: DestinationRule-example spec: host: svc-apply-example trafficPolicy: loadBalancer: simple: ROUND_ROBIN outlierDetection: consecutive5xxErrors: 5 consecutiveGatewayErrors: 0 interval: 10s baseEjectionTime: 30s maxEjectionPercent: ..
- Total
- Today
- Yesterday
- jasync
- gradle
- Spring boot
- 알고리즘
- boj
- tag
- Clean Architecture
- 하루
- java
- k8s
- 쿠버네티스
- Log
- python
- 클린 아키텍처
- WebFlux
- Algorithm
- MySQL
- OpenTelemetry
- container
- c++
- 백준
- Kubernetes
- Istio
- Spring
- Intellij
- docker
- 비동기
- 로그
- HTTP
- 일상
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |