본문 바로가기

백엔드개발자20

[쿠버네티스/k8s] 크론잡(cron job) 작업 실행되지 않는 문제 해결 - Cannot determine if job needs to be started: too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew 문제 상황 크론잡 스케쥴이 되었지만 더이상 작업이 실행되지 않음 크론잡 이벤트 메세지중 cronjob-controller 에 의해 발생된 Cannot determine if job needs to be started: too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew 라는 메세지 확인 문제 발생 이유 이전에 크론잡이 스케쥴에 맞춰 잡을 생성하고, 해당 잡에 의해 파드가 관리됨 파드에서 실행 된 애플리케이션에 이슈로 인해 작업이 종료되지 않아서 파드가 계속 실행 상태로 남아있었음 해당 크론잡에는 concurrencyPolicy: Forbid 설정이 되어있었음 위 설정으로 인해.. 2023. 3. 27.
[회고] 사계절을 함께 한 TIL 스터디 회고 - 개발하는 지토 https://github.com/Today-I-Learn 사계절을 함께 한 TIL 스터디에 대해 돌아보며 끄적여본다. 시작 올해 2월에 다니던 회사를 퇴사하고 취준생 신분으로 전환되었을 무렵, 개발자 취업 관련 정보들을 찾기 위해 여러 카카오톡 오픈 채팅방을 들어가게 되었다. 첫 시작은 단순하고 평범했다. 오픈 채팅을 통해 스터디원을 구한다는 글이 올라왔고, 기존에 몇 번의 스터디를 이미 진행했던 그룹이라는 걸 알게 되었다. 스터디 레포를 통해 어떤 사람들이 있고, 스터디의 진행 방식은 어떤지 확인하고 이력서를 던졌다. 사실 이쯤 우아한테크캠프pro 1기 과정이 막 끝났을 때여서 취업준비를 위해 이력서 및 깃허브를 정리해놨던 터라 당시에도 스터디를 이끌고 있던 시원님이 좋게 봐주셔서 바로 합류하게 되었.. 2022. 1. 3.
[Spring] 스프링 데이터 AbstractAggregateRoot 를 통해 도메인 이벤트 등록하고 테스트 하기 DDD 스터디중 구현해본 AbstractAggregateRoot를 통해 도메인 이벤트를 등록하고 테스트하는 방법을 간단하게만 정리함 (나중 참고용) 아직 깊은 지식이 없으므로 도메인 이벤트, AbstractAggregateRoot 에 대한 자세한 내용은 공식문서 & 타 블로그 정리 글을 참고하는 게 좋을 것 같음 https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/AbstractAggregateRoot.html https://www.baeldung.com/spring-data-ddd https://daddyprogrammer.org/post/14797/springboot-domainevent/.. 2021. 10. 31.
[회고] 토비의 스프링 온라인 스터디 회고 - 개발하는 지토 Link: https://github.com/Today-I-Learn/dev-reading-record 책 한 권을 읽고 지식을 공유했던, 온라인 그룹 스터디를 돌아보며 회고를 작성해본다. 서론 처음 스터디를 시작한 건 퇴사 후 취준생으로 전직했던 2021년 3월이었다. 첫 스터디의 시작은 책을 읽는 게 아닌, 개발자로서 지식을 쌓기 위해 스터디를 진행했다. 그렇게 약 한달정도 CS 관련 스터디를 진행하던 중, 스터디원 누군가가 같이 책을 읽고 토론을 해보는 건 어떻냐는 제안을 했던 것 같다. (사실 해당 스터디의 트리거는 자세히 기억나지 않는다. 그냥 그렇다고 해두자...ㅋㅋ) 그렇게 우리는 자바 스프링 개발자라면 한 번쯤은 들어본, 토비의 스프링을 읽게 되었다. 스터디 진행 방식 읽을 책 선정 매주 .. 2021. 6. 17.
[MSA] MSA 환경 분산 로그 트레이싱 (분산 트랜잭션&시스템 추적) - 개발하는 지토 마이크로 서비스 아키텍처 환경에서의 분산 로그 트레이싱 MSA 구조에서는 하나의 HTTP 호출이 내부적으로 여러 개의 서비스를 거쳐서 일어나게 되고, 트랜잭션이 여러 컴포넌트의 조합을 통해서 발생하기 때문에 전통적인 APM(Application performance Monitoring) 도구를 이용해서 추적이 어렵다. → 이런 문제를 해결하기 위해, 별도의 분산 로그 추적 시스템이 필요하다. OpenTracing이란 애플리케이션 간에 분산된 호출 흐름을 공개적으로 추적하기 위한 표준 해당 OpenTracing spec을 기준으로 여러 Tracer들(Zipkin, Jaeger)등이 존재함 분산 로그 추적 시스템의 작동 원리 통상적으로 Trace 와 Span이라는 개념을 사용함 Trace: 클라이언트가 서버.. 2021. 5. 22.
[알고리즘] 위상 정렬(Topological Sort) - 개발하는 지토 위상 정렬(Topological Sort) 위상 정렬은 순서가 정해져 있는 작업을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘이다. 즉, 방향 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것 이다. 위상 정렬을 가장 잘 설명할 수 있는 예시는 대학의 선수과목 구조 또는 게임에서의 스킬트리 중 선행스킬이 존재하는 경우이다. 앞선 대표 예 두가지 중 각자 더 이해가 쉬운 예시를 떠올려 보면 쉽게 이해할 수 있을 것이다. 위상 정렬이 성립하기 위해서는 반드시 그래프에 순환이 존재하지 않아야 한다. 즉, 비순환 방향 그래프(Directed Acyclic Graph, DAG) 여야 한다. 그리고 하나의 방향 그래프에 대해서 위상 정렬을 수행한 결과 값이.. 2021. 3. 18.