공부하고 기록하는, 경제학과 출신 개발자의 노트

분류 전체보기 499

If Kakao 2021 - Cloud Native의 미래

Things for Post Cloud Native연사 공용준 님. 이제는 클라우드를 적용하는 기업이 많이 늘었고, 클라우드로 전환해서 효과를 보고 있는 기업도 있다. 아직까지는 '전환'에 전체적인 방점이 찍혀 있다고 볼 수 있지만, 변화는 서서히 일어나고 있다. 그렇다면 클라우드 '전환' 다음 단계는 무엇일까? Cloud Native의 의미는 무엇인지, Cloud Native의 끝은 무엇일까? 클라우드를 적용하는 정도, 수준을 진단해볼 수 있는 지표로 CMMI가 있다.Level 1 : 불확실한 상태에서 PoC 또는 가볍게 시도해보는 정도의 단계. '찍먹'Level 2 : 도입을 조금씩 확대해가는 단계.Level 3 : '표준화' 단계. 개발자 사이에서의 약속이 확립되는 시기라고 보면 된다. 개발 플랫폼..

강연 2021.11.18

경력 9개월차로 카카오 이직하기까지 - (2) 1차 인터뷰 (完)

https://tech.kakao.com/2021/03/10/kakao-career-boost-program-for-cloud/ kakao Career Boost Program for Cloud - 클라우드 하고 싶지만, 잘 모르겠는 분 얼른 오세요!!!! “이번에 카카오에서 클라우드와 관련된 많은 분들을 모시고 있습니다.클라우드를 잘한다. 당연히 지원하세요! 클라우드를 하고 싶은데, 뭐 하는지 모르겠어, 근데 나 개발은 하는데….얼른 지 tech.kakao.com 2021년 3월부터 진행되었던 카카오 클라우드 부스트 경력채용 공고에 지원했고, 최종 합격했다. 카카오 경력직 채용절차 자체는 원격 인터뷰 -> 1차 면접 -> 2차면접 순으로 대부분 동일하게 진행되는 걸로 알고 있다. 신입공채로 들어간 지 ..

일상 속 생각 2021.10.21

경력 9개월차로 카카오 이직하기까지 - (1) 원격 인터뷰

https://tech.kakao.com/2021/03/10/kakao-career-boost-program-for-cloud/ kakao Career Boost Program for Cloud - 클라우드 하고 싶지만, 잘 모르겠는 분 얼른 오세요!!!! “이번에 카카오에서 클라우드와 관련된 많은 분들을 모시고 있습니다.클라우드를 잘한다. 당연히 지원하세요! 클라우드를 하고 싶은데, 뭐 하는지 모르겠어, 근데 나 개발은 하는데….얼른 지 tech.kakao.com 2021년 3월부터 진행되었던 카카오 클라우드 부스트 경력채용 공고에 지원했고, 최종 합격했다. 카카오 경력직 채용절차 자체는 원격 인터뷰 -> 1차 면접 -> 2차면접 순으로 대부분 동일하게 진행되는 걸로 알고 있다. 신입공채로 들어간 지 ..

일상 속 생각 2021.10.09

Kubernetes Deep Dive - (8). Storage

Storage Container File System ephemeral. 컨테이너를 삭제하거나 재실행하면 컨테이너 file system의 데이터도 같이 삭제됨. 컨테이너가 계속 사용해야 하는 데이터라면 Volumes를 사용하는 편이 좋다. Volumes Runtime에는 컨테이너가 접근 가능한 outside-container storage. real time change - 컨테이너가 참조하고 있는 파일 값이 변경될 경우 external storage의 값도 같이 바뀐다. Persistent Volumes 보다 추상화된 형태. k8s object처럼 Persistent Volumes를 생성해서 pod이 사용할 수 있게 한다. runtime 때, 컨테이너는 storage에 직접 접근하는 대신 Persist..

Kubernetes Deep Dive - (7). Service

Service 외부에서 사용자가 Application Pod에 접근할 수 있도록 하는 k8s Object. 클라이언트의 요청을 받고 pod에게 로드밸런싱으로 트래픽을 전달하는 역할도 겸한다. 실제로 사용자 (클라이언트)가 사용하게 될 ip주소와 Port가 Endpoint. Service Types Service에는 여러 타입이 있고, 각 타입마다 애플리케이션을 어떻게 / 어디로 expose 시킬 것인지의 Rule이 조금씩 다름. Service Type의 디폴트는 ClusterIP. CKA에는 LoadBalancer와 ExternalName도 범위에 들어간다고 함 ClusterIP 클러스터 내에서 Pod끼리 통신하고자 할 때 사용. 클러스터 외부 노출이 아니라 클러스터 내부에서의 노출임. 즉 Same cl..

Kubernetes Deep Dive - (6). Network

K8s Network pod끼리 통신은 어떻게 할 것인가? 에 관련된 문제들. Network Implementation으로 여러 종류가 있지만, kubeadm을 사용한다면 Calico가 가장 적절함. 기본적인 규칙 모든 pod는 Network Address Translation (NAT) 없이 다른 Pod과 통신이 가능해야 한다. (어느 node에서 동작하건 상관없이) IP / DNS 또는 localhost로 접근이 가능해야 함 같은 Single Cluster 내부에 있다면, 어느 노드에 있는 pod이라 해도 IP주소나 local DNS로 서로 통신이 가능하다. CNI Plugins k8s의 Network Implementation을 제공하는 여러 plugin 중 하나. k8s 공식문서에서 cluster..

Kubernetes Deep Dive - (5). Deployment

Scaling Application in k8s Application scalability : 애플리케이션의 트래픽이 증가할 때 / 감소할 때 유연하게 대처할 수 있는 능력 Stateless App : 클라이언트 데이터를 서버에서 세션 단위로 저장하지 않는 애플리케이션. Horizontal Scale에 유리한 구조 (Pod 개수를 늘려서 트래픽에 대응할 수 있음) Stateful App : 클라이언트 데이터를 서버에 저장하고, 서버의 interal state가 로직에 필요한 형태. K8s에서는 ReplicationController를 사용해서 pod의 개수를 조절함. ReplicationController의 형태 apiVersion: v1 kind: ReplicationController metadata..

Streamlink로 유튜브 멤버십 스트리밍 영상 다운로드하기

멤버십에 가입되어 있고, 유튜브에 로그인할 수 있는 계정이 필요하다. Streamlink라는 오픈소스 프로젝트를 활용해서 유튜브의 멤버십 전용 스트리밍 영상을 다운로드받는 방법. 21.09.26 현재 streamlink 프로젝트의 latest 버전은 2.4.0이다. 우선 https://github.com/streamlink/streamlink/releases 로 들어가서 latest Version을 선택한다. Releases · streamlink/streamlink Streamlink is a CLI utility which pipes video streams from various services into a video player - streamlink/streamlink github.com Win..

Kubernetes Deep Dive - (4). Pods and Containers

Pods / Containers in k8s Manage Application Configuration in k8s 일반적으로 Application의 Config는 Dynamical하게 관리되는 경우가 많음. k8s의 경우 runtime 시점에서 config을 자유롭게 변경해서 적용할 수 있도록 지원하고 있다. Non-sensitive : 토큰이나 auth key 등 confidential을 제외한 데이터들 ConfigMap과 pods / containers는 M:N 관계. 숫자나 범위 제한 없이 자유롭게 매핑이 가능하다. secret 파일 생성에 쓰인 username.txt와 password.txt는 secret을 생성한 뒤에는 서버에서 삭제해도 된다. Secret 객체가 encoded username..

Kubernetes Deep Dive - (3). Object Management

k8s Object Management kubectl get kubectl describe kubectl create kubectl apply kubectl delete kubectl exec : docker exec와 비슷하게 쓰인다고 보면 됨. create와 apply의 차이? 이미 존재하는 Object일 경우 create로 명령어를 실행하면 에러 리턴, apply는 해당 object를 수정함. Rule Based Access Management (RBAC) Role: 특정 namespace를 기반으로 Role 설정 ClusterRole : namespace 관계없이 클러스터 기준으로 Role 설정. 생성한 Role을 사용자 (User)와 Bind하는 객체가 존재한다. Role과 User는 M:N 매..