본문 바로가기

전체 글

[Time Series] Preface to this read-along 예측 될 수 있는 것이란? 어떤 사건이나 수량의 예측가능성은 몇 가지 요인에 의존한다.1. 영향을 주는 요인을 얼마나 잘 이해할 수 있는지2. 사용할 수 있는 데이터가 얼마나 많은지3. 예측이 우리가 예측하려는 것에 영향을 줄 수 있는 여부 예를 들어, 전기 수요 예측의 경우 전기 수요가 기온에 영향을 받는 것을 알고 있으며, 날씨에 대한 충분한 데이터가 있기 때문에 정확하게 예측할 수 있다. 하지만 환율 예측의 경우, 데이터는 많지만 환율에 영향을 주는 요인을 잘 모르고, 전 날의 환율은 다음날의 환율에 영향을 미치기 때문에(efficient market hypothesis), 동전 던지기와 비슷한 예측을 할 수 있다.따라서, 주가 예측(Stock Forcasting)과 같은 작업은 전날의 주가를 다음.. 더보기
[K8s] Pod & ReplicaSet & Deployment PodPod은 쿠버네티스에서 관리하는 가장 작은 배포 단위이다. Docker와 비교해보면, Docker는 컨테이너를 만들지만 쿠버네티스에서는 Pod을 바탕으로 컨테이너를 관리한다. 또한, Pod에는 여러개의 컨테이너를 포함할 수 있다. 일반적으로 쿠버네티스는 YAML 설정파일을 만들어서, 작업을 하기 때문에 이를 통해 Pod을 만들어 보자.아래 조건의 Pod을 만들자.apiVersion: v1kind: Podmetadata: name: mongodb labels: app: mongospec: containers: - name: mongodb image: mongo:4 해당 Pod을 생성하고, 조회 해보자.# Pod 생성kubectl apply -f echo-pod.yml# Pod.. 더보기
[YAML] 기본 문법 들여쓰기(indent)들여쓰기는 기본적으로 2칸 또는 4칸이다. 2칸을 일반적으로 사용한다.person: name: SEONGSU KIM job: Data Scientist skills: - docker 데이터 정의 (Map)데이터는 Key: value 형식으로 정의한다. 여기서 중요한 것은 key: 다음에 한 칸을 띄워줘야 한다는 것이다.person: name: Chungsub Kim job: Developer skills: - docker - kubernetes 아래 Skills에 "-"이 배열로 표시되고 있다. 이는 json 구조에서 , "Skills" :["docker", "kubernetes"]에 해당하는 구조이다.개인적으로 YAML 구조가 json보다 직관적인것 같.. 더보기
[K8s] 쿠버네티스 알아보기 쿠버네티스는 사람이 관리하는 것을 자동화해주고, 다양한 업체의 노하우가 모여있는 시스템이다. 쿠버네티스 아키텍처 Desired State : 상태 체크(Observe) -> 차이점 발견(Diff) -> 조치(Act) 쿠버네티스는 시스템 내부적으로, 상태를 체크하고 차이점을 발견한다. 예를 들어, 컨테이너가 1개 떠있어야 하는 상황이라면, 실제로 1개가 정상적으로 떠 있는게 맞는지 체크를 한다. 만약에 차이점을 발견하면(Diff), 이를 조치(Act)하는 Loop를 지속적으로 수행한다. 쿠버네티스에서는 이러한 Desired State를 유지하기 위해서 다양한 구성요소가 있다. 크게 1) 마스터와 2) 노드가 있으며, 세부 요소에는 아래와 같은 구성요소가 존재한다. 마스터: Scheduler, Control.. 더보기
[K8s] 왜 쿠버네티스일까? 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼 1. 쿠버네티스의 인기Open Source로, 커뮤니티가 발달되어 있으며, 카카오나 라인과 같은 국내 대기업에서도 쿠버네티스를 많이 활용하고 있음 2. 무한한 확장성Kubeflow, TEKTON 등 쿠버네티스가  하나의 플랫폼이 되고, 그 위에서 머신러닝, CI/CD 등이 동작특히, 머신러닝 서비스를 배포하고 관리하는 kubeflow를 이해하려면 쿠버네틱스 필수임. 아니면 돈주고, AWS 세이지 메이커 활용 3. 사실상 표준쿠버네티스이 표준이며, 그 위에 본인들만의 장점을 커스터마이징 하는 소프트웨어가 많아지고 있음또한, 중요한 것은 아마존(EKS), 에저, 구글이 쿠버네티스를 매니지드 서비스를 제공하고 있음 But, .. 더보기
[k8s] 컨테이너 오케스트레이션 등장과 개념 컨테이너 오케스트레이션의 등장은 서버의 상태를 관리하기 위한 노력이다.여기서 서버(Server)는 서비스를 제공하는 컴퓨터나, 소프트웨어이다. 만약에, 본인의 컴퓨터 환경이 바뀌거나, OS가 변경이 되면  아무리 문서화를 잘 하여도 서버를 관리하는 것이 어렵다.예를 들어서, 기존 설치 프로그램과 충돌이 난다던가, 하나의 서버에서 다른 프로그램 버전을 이용해야 한다면? 매우 큰 문제가 발생할 수 있다.  따라서, 예전에는 CHEF, Puppt과 같은 관리 도구로, 서버의 상태를 확인하고 설치되지 않은 프로그램 혹은 설정이 있으면 서버에 설치를 도와주는 도구가 존재하였다.   또 초기의 해결 방법은 가상 머신(Virtual Machine, VM)이다. 가상 머신 지금도 여전히 OS에 리눅스나 다른 운영체제를.. 더보기
[Git] 3 way merge 아래와 같은 케이스를 생각해보자. 동일한 소스코드(Base)에서 나(Me)와 다른 사람(Ohter)이 소스 코드를 아래와 같이 수정하였다. MeBaseOther2 way merge3 waymerge1AA내용 삭제Conflit내용 삭제2BBBBB31C2ConflitConflit4내용 삭제DDConflit내용 삭제 위 테이블을 하나로 병합하는 방식은 2 way 그리고 3 way merge 방식이 있다.2 way merge는 Base를 보지 않고 2개의 차이점을 비교해서 병합하는 것이며, 3 way merge는 Base를 참고하여 달라지는 내용을 병합하는 것이다.  결과를 보면, 2 way merge는 Me와 Other이 다르면, Merge를 수행할 때 Conflit를 도출하게 된다. (같은 라인에 다른 내용.. 더보기
[Git] git stage area + log + diff + reset 왜 commit 전 add를 해야 하는 것인가?프로젝트를 하다보면 여러 소스코드를 수정하게 된다. 이때 자연스럽게 commit하는 시기를 놓칠 수 있으며, 수정되는 version이 매우 커질 수 있다. 이때 git은 add라는 과정을 통해서 내가 해당 version에서 수정 반영하고 싶은 파일만을 반영할 수 있다.  아래 내용을 담고 있는 f1, f2라는 파일이 있다고 가정하자.  git status를 통해, 어떠한 변화가 있는지 확인해보자. f1과 f2가 모두 modified (빨간색)으로 표시되어 있다.  새로운 version으로 만들고 싶은, f1.txt만 add로 추가해보고, status 확인 Add한 파일에는 Changes to be comitted: 에 초록색으로 표시되고, add를 하지 않은.. 더보기