목록전체 글 (467)
나의 잡다한 노트 및 메모
내 생각에는 일을 잘한다는 것은 “주어진 일을 열심히 하는 것”이 아니라, 조직이 원하는 결과를 적은 비용과 적은 위험으로 만들어내는 것에 가까워.조금 더 본질적으로 들어가면 이렇게 볼 수 있어.1. 일을 잘한다 = 문제를 정확히 정의한다많은 사람이 바로 해결책부터 찾으려고 해."이거 어떻게 구현하지?"그런데 일을 잘하는 사람은 먼저 묻지."우리가 지금 해결해야 하는 문제가 정확히 뭐지?"예를 들어 서버가 느리다고 하면,CPU가 부족한 건가?DB 쿼리가 문제인가?네트워크인가?사용자가 갑자기 증가한 건가?애초에 이 시스템을 이렇게 설계한 게 문제인가?를 먼저 파악해.잘못 정의한 문제를 아무리 열심히 해결해도 좋은 결과가 나오지 않아.2. 그다음은 중요한 것을 구분하는 능력일을 하다 보면 할 일이 무한히 생..
Traffic요청량 ( Requests per second ) → O초당 처리되는 HTTP 요청 수동시 접속 수 ( Active Connections )현재 서비스에 연결된 클라이언트 수대역폭 사용량 ( Throughput )초당 들어오고 나가는 바이트 수Latency평균 응답 시간 ( Average Latency )전체 요청의 평균 응답 시간백분위 응답 시간 → O사용자 체감 성능을 나타내는 지표지연 시간 분포 히스토그램topk느린 api top 10 이런식으로 확인가능할듯Erros오류율전체 요청 대비 4xx/5xx 응답 비율Availability서비스 헬스 체크외부/내부 헬스 체크 HTTP 응답 상태Saturation애플리케이션에 한정해서 해야하는걸까??리소스 사용률. 이거는 node-exporter..
Grafana Alloy는 Grafana Labs에서 개발한 오픈소스 Telemetry Collector로, 특히 OpenTelemetry Collector(OTel Collector)의 분배판(distribution)이면서, Prometheus 파이프라인 등도 내장한 제품입니다. 즉, 로그(logs)·메트릭(metrics)·트레이스(traces)·프로파일(profiles)까지 “모든 신호(all signals)”를 수집·처리·전송할 수 있도록 설계된 통합형 수집기로 볼 수 있어요. 주요 기능 및 특징다양한 신호 유형 지원: 메트릭, 로그, 트레이스, 프로파일을 모두 수집하고 처리할 수 있어요.Prometheus 및 OpenTelemetry 호환성: Prometheus 스크래핑 및 원격 쓰기(remote..
Postgrest PG DB를 REST API 서버로 만들어주는 웹 서버.그래서 테이블/뷰/함수를 REST 엔드포인트로 자동 매핑해준다.예시를 들면, SELECT, INSERT, UPDATE, DELETE 같은 SQL 작업을 GET/POST/PATCH/DELETE 같은 HTTP 메서드로 노출하는 API 게이트웨이, 미들웨어 역할을 한다.자동 생성된 API 사용 예GET /tasks → SELECT * FROM tasks;POST /tasks → INSERT INTO tasks ...PATCH /tasks?id=eq.10 → UPDATE tasks SET ... WHERE id = 10DELETE /tasks?id=eq.10 → DELETE FROM tasks WHERE id = 10무엇을 보고 API를..
1. Executor의 역할Airflow 아키텍처를 아주 크게 보면:Webserver: UIScheduler: 언제 어떤 Task를 실행할지 결정Metadata DB: DAG/Task 상태 저장Executor: Task 실행을 위한 “실행 명령”을 담당Worker(있을 수도, 없을 수도): 실제로 Task를 수행하는 프로세스/컨테이너여기서 Executor는 Scheduler와 Worker 사이의 브리지 역할을 합니다.조금 더 구체적으로:Scheduler가 TaskInstance를 “scheduled/queued” 상태로 만든다.Executor는 이 정보를 보고:어떤 Task를 지금 실행할지 결정 (슬롯, pool, concurrency 고려)어떤 방식으로 실행할지 결정 (로컬 프로세스, Celery 큐,..
rye shell 제거예전엔 rye shell로 가상환경에 진입했었는데 rye 개발팀이 shell 명령은 터미널 간의 PATH, SIGWINCH 등 복잡한 제어를요구하기 때문에 구현이 불안정하다며 제거 의사를 밝혔다.그래서 가상환경 활성화는 직접 source .venv/bin/activate 하도록 권장하고 있다. 최신 Rye 주요 명령어 정리아래는 현재 Rye에서 제공하는 주요 명령어들이에요 (공식 문서 기준)명령어 역할 / 설명rye init새 프로젝트 초기화 (pyproject.toml 생성 등)rye pin 프로젝트에 사용할 Python 버전 고정rye fetch (또는 rye toolcha..
1. kind이 리소스가 무슨 종류의 오브젝트인지를 지정합니다.Kubernetes는 여러 가지 리소스 타입(kind) 을 지원합니다. 대표적으로:🔹 워크로드 (Workloads)PodDeploymentReplicaSetStatefulSetDaemonSetJobCronJob🔹 서비스 및 네트워킹 (Services & Networking)ServiceIngressEndpointSliceNetworkPolicy🔹 설정 및 보안 (Configuration & Security)ConfigMapSecretResourceQuotaLimitRangeRole, ClusterRoleRoleBinding, ClusterRoleBindingServiceAccount🔹 스토리지 (Storage)PersistentVolu..
1. TCP backlog란?서버 소켓(listen())을 열면, 커널은 **연결 대기 큐(listen queue)**를 만듭니다.backlog는 그 큐의 최대 길이를 말합니다.즉, 클라이언트가 SYN을 보내고 → 서버가 SYN-ACK까지 보냈지만 → 애플리케이션이 아직 accept()하지 않은 연결이 몇 개까지 쌓일 수 있느냐를 결정하는 값입니다.👉 쉽게 말하면: “동시 접속자가 몰릴 때 대기열의 크기”2. 연결 큐는 두 가지 단계가 있음SYN queue (half-open queue)TCP 3-way handshake 중 아직 완료되지 않은 연결 (클라 SYN, 서버 SYN-ACK 후, 클라 ACK 대기 상태).커널 파라미터: net.ipv4.tcp_max_syn_backlog.accept queu..