티스토리챌린지8 [ArgoCD] ArgoCD란 ArgoCD ArgoCD는 쿠버네티스 환경에 사용되는 선언적 GitOps 지속적인 배포 툴이다. ※ GitOps : Git 저장소를 진실의 근원으로 사용하여 인프라와 애플리케이션의 상태를 선언적으로 관리하는 방식 ArgoCD의 저장소(Repository)는 기본적으로 Git, Github 및 Gitlab을 활용할 수 있고, 추가로 Helm 기반의 Repository도 활용이 가능하다. 위 저장소에 저장된 템플릿으로는, 아래 항목들을 이용할 수 있고, 이를 토대로 배포가 된다.kustomize applicationshelm chartsjsonnet filesPlain directory of YAML/json manifestsAny custom config management tool configu.. 2024. 11. 14. [Network] ICMP / IGMP ICMP (Internet Control Message Protocol) ICMP는 IP 네트워크의 진단과 제어를 담당하는 프로토콜이다. OSI 모델의 네트워크 계층(Layer 3)에서 작동하며, IP 패킷의 전송 과정에서 아래와 같은 역할을 수행한다. 오류 메시지 전달: IP 패킷 전송 중 발생하는 다양한 오류 상황을 보고네트워크 상태 진단: 호스트 간의 연결성과 라우팅 경로 확인네트워크 디버깅: 네트워크 문제 해결을 위한 진단 정보 제공라우팅 최적화: 더 효율적인 경로 정보를 호스트에게 제공 특징오류 보고: 패킷 전송 실패, 경로 문제 등을 알림네트워크 진단: ping, traceroute 등의 도구를 통한 연결성 테스트흐름 제어: 패킷의 속도 조절 및 혼잡 제어에 관여 IGMP (Interne.. 2024. 11. 13. [Network] MTU(Maximum Transmission Unit) MTU MTU는 어떤 데이터링크에서 하나의 프레임 또는 패킷에 담아 운반 가능한 최대 크기를 의미한다. 해당 예시로 지하도로나 터널의 높이 제한처럼 생각할 수 있으며, 높이 제한보다 높은 차량은 못지나가는 것처럼 네트워크의 MTU보다 큰 패킷은 일반적으로 해당 네트워크를 통과하지 못한다. 하지만 MTU보다 큰 데이터 패킷은 작은 조각으로 잘라 MTU에 맞출 수 있고, 이 과정을 분할(Segmentation)이라고 칭한다. 그리고 분할된 패킷은 목적지에서 조립된다. MTU의 단위는 Byte이며, 보통 MTU 사이즈는 매체마다 차이가 존재하며 Ethernet 구간의 경우, 최대 MTU 크기는 1,500bytes이다. 여기서 IP header로 20bytes, TCP header로 20bytes를 사.. 2024. 11. 12. [Data-Structure] Hash Table(해시 테이블) 1. Hash Table(해시 테이블) 해시 테이블은 (Key, Value) 쌍으로 데이터를 저장하는 자료구조이며, 일반적으로 O(1)의 시간복잡도로 빠른 속도로 데이터를 저장하고 조회할 수 있다. - 기본 구조해시 테이블의 기본 구조는 아래와 같이 이루어져 있다. Key가 되는 데이터를 해시 함수에 입력하면 인덱스가 생성이 되고, 해당 인덱스가 가리키는 버킷에 데이터를 저장하는 것이다. 인덱스 사용하기 때문에, 평균적으로 O(1)의 시간을 가지게 된다는 특징이 있다. 버킷(Bucket): 실제 데이터가 저장되는 공간해시 함수(Hash Function): Key를 고정된 길이의 해시값으로 변환하는 함수인덱스(Index): 해시값을 기반으로 계산된 버킷의 주소 2. 해시 함수(Hash Func.. 2024. 11. 11. [SRE] 통상적 컴퓨터 연산 지연 값 서론 개발자들은 제품을 개발하고 나서 가용성 증진과 쿼리 최적화 등의 다양한 방법으로 사용자 경험을 증진시키고자 노력한다. 사용자 경험을 증진시키기 위해서는 어떠한 점이 사용자 경험을 저해시키는 요소이며, 어떻게 개선시켜야 하는지 정확한 분석이 필요하다. 이번 글에서는 지연과 관련하여 개발자들이 참고하기에 좋은 컴퓨터 연산의 통상적인 지연 값에 대하여 알아볼 것이다. 차트 | Operation | Latency | Throughput | 1 MiB | 1 GiB || ----------------------------------- | ------- | ---------- | ------ | ------ || Sequential Memo.. 2024. 11. 10. [Spring-boot] JOOQ 도입 후 구동 속도가 느려지는 현상 발단 사이드 프로젝트로 스프링 부트에 JOOQ를 도입하면서 발생한 일이었다. 애플리케이션 구동 시간이 원래 10초 내외로 나왔으나, JOOQ를 도입하면서 구동 시간이 1분이 넘어가게 되었다. 자료를 조사해 보니 이는 JOOQ를 사용할 때 AOP에서 발생하는 문제였고, 해당 부분을 수정하여 해결하였다. 해결 기존 코드는 execution을 사용했었는데, 구동 시 적용되는 범위가 너무 넓어서 구동이 느려진다는 것이었다. // 기존 코드private static final String CONTROLLER = "execution(* com.myproject.app.controller..*.*(..))";private static final String SERVICE = "execution(* com.my.. 2024. 11. 9. 이전 1 2 다음