분류 전체보기

Study

Dart 기본 개념 정리 ( 노마드 코더 Dart 시작하기 강의 정리)

참고 노마드 코드의 무료 강의 Dart 시작하기를 들으면서 정리한 요약본입니다. 링크에서 강의를 들을 수 있으며, 저작권 상 문제가 있다면 댓글로 알려주시면 조치하겠습니다. Dart Why Dart? UI 에 최적화된 언어 빠름 두가지 컴파일러 Dart Native ( 여러 cpu 의 아키텍처에 맞게 변환 = iOs, Android, Windows, Linux, Mac … ) 거의 모든 곳에서 동작하도록 컴파일 가능 just in time(JIT, 코드의 결과를 바로 화면으로 볼 수 있음. 가상 머신에서 동작하는 거여서 조금 느릴 수 있음. ) > 개발 도중에만 쓰임 빠른 피드백이 가능함 ahead of time (AOT, 컴파일 먼저 > 그 결과인 바이너리 배포 ) > 배포할 때 쓰임 하지만 최종 결과..

회고/회사

인터널 개발 3년차🏡 운영팀 1년차📞 다 날리고 실패에서 배운 점

* 인터널 개발 : 대상이 외부가 아닌 내부인 서비스를 개발 😫 문제 인지는 하고 있었지만, 우선순위가 밀렸던 중요한 기능들 새로운 기능을 빠르게 개발하고 싶었던 욕심때문에 모래성을 쌓았다 🥲 ❌ 재발 방지 대책 개발환경과 운영환경의 완전한 격리 문제 예방 오늘 발생했던 문제도 운영환경과 개발환경이, 적어도 DB 라도 분리되어있었다면 발생하지 않았다. DB, NGINX, ETC. DB 백업 이슈 발생 시 복구 오늘 발생했던 문제도 백업이라도 되어있었으면, 바로 복구할 수 있었다. 아무리 테스트를 해도 완벽하게 할 수 없기 때문에(코너케이스...), 백업은 필수적이다. SOFT DELETE 테크닉 Hard delete vs. Soft delete Soft delete Hard delete 데이터 보존 여부..

Algorithm

[leetecode 오늘의 문제] 446. Arithmetic Slices II - Subsequence

오늘의 문제 알고리즘 문제를 풀다보면 영어로 수학 용어를 알 필요를 종종 느끼게 된다. Arithmetic subsequences 는 등차수열이다. 이 문제에서는 nums 라는 배열에서 부분 등차 수열의 개수를 찾아야 하는데, 등차 수열은 적어도 세 개의 요소를 가지고 있으며, 연속하는 두 요소 사이의 차이가 동일하다는 것을 의미한다. 각 요소에 대한 defaultdict 초기화 배열의 각 요소에 대해, 특정 공차로 끝나는 부분 수열의 개수를 저장할 defaultdict을 생성한다. subsequences = [defaultdict(int) for _ in nums] total_count = 0 * defaultdict 를 사용하는 이유 - 존재하지 않는 키 처리 이 문제를 풀 때에는 공차( diff =..

Algorithm/Python

[leetecode 오늘의 문제] 1235. Maximum Profit in Job Scheduling

오늘의 문제 링크 오늘의 문제는 Job Scheduling 을 하면서, Maximum Profit 을 찾는 문제였다. 얼핏 봤을 때는 지난번에 풀었던 Interval Scheduling Algorithm 이 생각났다. Interval Scheduling Algorithm 은 일반적으로 각 간격과 관련된 이익을 고려하지 않고 겹치지 않는 간격(또는 작업)의 수를 최대화하는 것이었다. 하지만 이번 문제에서는 총 이익을 극대화해야 하므로 복잡도가 올라갔고, 다른 방법으로 접근해야 했다. 1. 종료 시간을 기준으로 정렬 Interval Scheduling Algorithm 이랑 비슷한 부분은 종료 시간을 기준으로 정렬하고 시작한다는 것 종료 시간을 기준으로 정렬하는 것은 현재 직업 이후에 선택할 수 있는 다음 ..

DevOps/Docker

[Docker] VM vs Container

VM ( Virtual Machine ) 구조 VM은 하이퍼바이저를 사용하여 하드웨어를 가상화 하이퍼바이저는 가상화를 가능하게 하는 소프트웨어 이는 물리적 하드웨어와 가상 머신(VM) 사이에서 작동하며, 여러 개의 VM이 동일한 물리적 하드웨어 위에서 독립적으로 실행될 수 있도록 함. 각 VM은 완전한 운영 체제를 포함하며, 하이퍼바이저는 이러한 VM들이 하드웨어 자원을 효율적으로 공유하고 관리할 수 있도록 도움. Type 1 (네이티브 하이퍼바이저): 이는 직접 하드웨어 위에 설치되며, 운영 체제 없이 독립적으로 작동함. ex. VMware ESXi, Microsoft Hyper-V, Xen Type 2 (호스티드 하이퍼바이저): 이는 기존 운영 체제 위에 설치되며, 일반적인 애플리케이션처럼 작동함..

DevOps/Kubernetes

[Kubernetes] Auto Healing / Auto Scaling / HPA / Probe / Health Checks

1. Auto Healing 1) 개념 Kubernetes 클러스터 내에서 실행되는 컨테이너나 노드가 실패했을 때, 시스템이 자동으로 이를 감지하고 복구하는 기능 2) 사용 애플리케이션이 실패하거나 예상치 못한 오류가 발생했을 때 사용 3) 작동 방식 Kubernetes의 Health Checks를 통해 애플리케이션의 상태를 지속적으로 모니터링 문제가 감지되면, 시스템은 자동으로 문제가 있는 컨테이너를 재시작하거나 교체 (1) Health Checks Health Checks는 Kubernetes 클러스터 내에서 실행 중인 컨테이너의 상태를 모니터링하고, 문제가 발생했을 때 적절한 조치를 취하는 데 중요한 역할을 함 주로 두 가지 유형의 프로브(Probe)를 사용 - Liveness Probe, Read..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Proxy

더보기 Within Kubernetes Cluster, every pod can reach every other pod, this is accomplish by deploying a pod networking cluster to the cluster. Kube-Proxy is a process that runs on each node in the kubernetes cluster. pod network ( service cannot connected to pod network because it is not real - no interface and no process - only in the kubernetes memory => how to use ? => use kube-proxy ) every po..

DevOps/Kubernetes

[Kubernetes][CKA] Kubelet

Kubelet is the sole point of contact for the kubernetes cluster - The kubelet will create the pods on the nodes, the scheduler only decides which pods goes where. - register node - create pods - monitor node and pods Kubelet은 쿠버네티스 클러스터와 개별 노드 간의 소통을 담당하며, 파드의 생명주기 관리와 노드 상태의 모니터링을 수행한다. Kubelet의 역할 Kubelet은 쿠버네티스 클러스터와 노드 간의 유일한 접점 Kubelet은 노드에 파드를 생성하며, 스케줄러는 파드가 어느 노드에 배치될지만 결정 노드 등록 Kubelet..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Scheduler

kube-scheduler is responsible for scheduling pods on nodes. The kube-scheduler is only responsible for deciding which pod goes on which node. It doesn't actually place the pod on the nodes, that's the job of the kubelet. why do you need a scheduler? - filter nodes - rank nodes resource requirements and limits taints and tolerations node selectors/affinity Kube-Scheduler는 쿠버네티스 클러스터에서 파드의 효율적인 배치..

DevOps/Kubernetes

[Kubernetes][CKA] Kube Controller Manager

Kube Controller Manager manages various controllers in kubernetes. - In kubernetes terms, a controller is a process that continuously monitors the state of the components within the system and works towards bringing the whole system to the desired functioning state. Node Contoller responsible for monitoring(using kube-apiserver) the state of the Nodes and taking necessary actions to keep the app..

DevOps/Kubernetes

[Kubernetes][CKA] Kube-API Server

더보기 kubectl ( kube-apiserver - ETCD Cluster - kuber-api server) or api kube scheduler - kube-apiserver - kubelet ( worker nodes ) kubectl is center of all the different takes needs to be done to make a change in the cluster kube-api server authenticate user validate retrieve data update ETCD scheduler kubelet kube-apiserver.service options kubeadmin kube-api 서버의 중심 역할 kube-apiserver는 etcd 데이터 저장..

DevOps/Kubernetes

[Kubernetes][CKA] ETCD

Overview of ETCD Definition: ETCD is a distributed, reliable key-value store that is simple, secure, and fast. It is primarily used in clustered environments for configuration and state management. Key-Value Store Explained: Unlike traditional databases that use tables, ETCD stores data in a key-value format. Each key-value pair (or 'document') can have a different structure, and changes to one ..

박한결
'분류 전체보기' 카테고리의 글 목록