본문 바로가기

분류 전체보기52

Chapter 4. Replication and other controllers: deploying managed pods 3장에서는 pod 를 직접 관리하는 방법에 대해 살펴봤다. 하지만 실무에서는 pod 의 관리가 자동으로 되길 원한다. 이를 위해 ReplicationController 나 Deployment 를 사용한다. 4.1 Keeping pods healthy Pod 내의 컨테이너가 (오류로 인해) 죽으면, Kubelet 이 자동으로 해당 컨테이너를 재시작한다. 하지만 컨테이너의 프로세스가 종료되지 않았는데 어플리케이션이 동작하지 않는 경우가 있고, (JVM OOM 에러) 어플리케이션이 deadlock 이나 무한 루프에 빠져서 동작하지 않는 경우가 생길 수도 있다. 이런 경우에도 컨테이너가 자동으로 재시작되게 해야한다. 물론 앱이 자체적으로 에러를 감지해서 프로세스를 종료할 수도 있겠지만, 내부적으로 에러를 감지하.. 2021. 3. 21.
Autodiff 직접 구현하기 원래 Julia 로 구현해둔 것이 있었는데, 친구가 코드가 안예쁘다고 해서 파이썬으로 다시 짰다. Julia 구현은 calofmijuck.tistory.com/30 참고! Disclaimer. 저는 torch, tf 등의 라이브러리에서 autodiff 를 어떻게 하는지 모릅니다. Autodiff Autodiff (Automatic Differentiation) 는 주어진 함수의 미분계수를 자동으로 계산하는 방법이다. 예를 들어, 함수 \(f(x) = x^2\) 에 입력 \(x = 2\) 를 주면 미분계수 \(f'(2) = 4\) 를 출력한다. 주로 ML 에서 역전파(backpropagation) 할 때 사용한다고 들었다. Forward 한 번 할 때 미분계수가 자동으로 계산돼서 좋을 것 같다. (잘 모른.. 2021. 3. 21.
Chapter 3. Pods: running containers in Kubernetes 다양한 쿠버네티스 오브젝트 (resources) 를 살펴보는 단원이다. 가장 기본이 되는 Pod 부터 시작한다. 이외의 모든 것들은 pod 를 관리하거나, pod 를 노출하거나, pod 에 의해 사용된다. 3.1 Introducing Pods Pod 는 컨테이너의 모임이며, 쿠버네티스의 기본적인 building block 이 된다. 하나 기억할 사실은, 하나의 pod 는 하나의 노드 위에 있게 되므로, pod 내부의 모든 컨테이너는 같은 노드에 존재하게 된다. 3.1.1 왜 Pod 를 사용하는가? 그냥 하나의 컨테이너 안에서 모든 것을 실행하면 안 되는 것인가? 하나의 프로세스라면 하나의 컨테이너 안에서 실행해도 괜찮지만, 여러 프로세스가 한꺼번에 동작하는 앱의 경우 한 컨테이너 안에서 돌아가게 되면 관.. 2021. 3. 17.
Chapter 2. First steps with Docker and Kubernetes 도커와 쿠버네티스를 사용하여 간단한 어플리케이션을 배포해 보자! 2.1 컨테이너 이미지 생성, 실행, 공유하기 2.1.1 도커 설치 도커 공식 홈페이지에 있는 대로 설치한다! Mac 이나 Windows 를 쓰면 도커가 VM을 세팅하고 VM 안에서 도커 데몬이 실행된다. (왜일까... Linux 가 아니면 안 돼서 그런가) 컨테이너 실행 $ docker run :[TAG] [COMMAND] 이미지를 다운받고 실행해주는 명령 예시로 docker run busybox echo "Hello world" 가 있는데, 별거 아닌 것 같아 보여도 한 줄로 앱이 통째로 설치되고 실행이 되고 있기 때문에 생각보다 대단한 것이다! docker run 이 실행될 때... 우선 해당 이미지의 latest version (IM.. 2021. 3. 8.
Chapter 1. Introduction to Kubernetes 후기 쿠버네티스를 공부하기 위한 motivation 을 잘 제공해 주는 듯 하다. 왜 쿠버네티스가 등장했으며, 왜 사용하며, 쿠버네티스가 어떤 것들을 해주는지 큰 그림을 볼 수 있게 해준다. 더 구체적으로 설명할 수도 있었지만, 저자가 일부러 디테일은 숨기고 큰 그림을 보여주려고 노력한 것 같다. GKE에서 쿠버네티스를 사용해본 적이 있고, 업무에도 사용하다 보니 아주 이해와 공감이 잘 됐다. 리눅스 컨테이너 기술이 namespace 와 control group 으로 가능해진다는 사실과 쿠버네티스 노드의 구성을 새롭게 알게 되었다. 쿠버네티스를 소개하는 장이기에 구체적으로 좀 정리해서 힘들었다. ㅎㅎ. Chapter 1. Introducing Kubernetes 기존에는 소프트웨어가 커다란 덩어리였지만 .. 2021. 2. 28.
2021 January: Pause 작성 후기 사실 간략하게 작성할 생각이었는데 뭐 했나 돌아보며 쓰다 보니 내용이 길어졌다. 생각 안 나는 것들도 많은데 2월에는 좀 매일 짤막하게라도 뭔가를 기록으로 남겨야 할까? 정리 안된 의식의 흐름 주의 1월에는 무엇을 하고 지냈는가? 회사 제품 출시 기념(?)으로 12월 마지막 주부터 1월 3일까지 10일 정도 쉬기는 했는데 이후에 엄청난 후폭풍이 몰아칠 줄은 몰랐다. 분명 새해 버프를 받아서 야심 차게 시작했는데, 삐그덕 거리더니 바로 터져버렸다. 컴퓨터 프로그램처럼 지웠다가 다시 설치하고 싶다. 정 안되면 껐다가 켜보던가? 회사 일 이야기는 생략. 이제 회복기가 끝난 것 같고, 2월부터는 본격적으로 일을 다시 시작한다. 일단 확실히 집이랑 회사만 왔다 갔다 한 듯하다. 코로나 3차 여파가 지속.. 2021. 2. 1.
2020 Year Review 요새 주변 지인들 사이에서 회고록을 작성하는 것이 유행이다. 안 그래도 새로운 회사에서 4분기 회고를 작성하면서 개인적으로도 2020년 회고를 작성해야겠다고 생각했는데, 잘 됐다. 내가 뭘 했는지 궁금하면 github commit history 를 보면 된다. ㅋㅋ 블로그 & 기록하기 기록을 남기지 않으면 많은 것들이 기억 속에서 사라지는 것을 경험했다. 어쩌면 내가 노트 필기와 자료 정리에 끔찍하게 집착하는 것도 그런 이유가 아닌가 싶다. 일을 하는 경우에도 마찬가지. 문서화의 힘은 매우 강력하다. 올해부터 기록을 남기자는 생각으로 블로그를 시작했다. 처음에는 github.io 를 사용하려 했으나 불편하다고 느껴서 tistory 로 이주했다. 좋은 시도였지만 생각보다 글을 많이 쓰지는 않았다. 다 어디.. 2020. 12. 31.
메이플스토리 본캐 삭제 Games 섹션에 쓰는 첫 글이 이런 주제일 것이라고는 생각도 못했다. 아무튼, 제곧내. 진짜 본캐를 삭제했다. 삭제 전 마지막으로 그동안 했던 노력의 결과물을 캡쳐해 두었다. 열심히도 했다. 아케인 심볼을 버리는 영상 절대 돌아오지 않기 위해 모든 5차 스킬 코어는 분해했고, 심볼도 버렸다. 그래도 마지막까지 과 친구들이 함께해 주었다. 참 고마운 사람들이다. 친구들에게 유산(코어 젬스톤 100개씩)을 남긴 뒤 모든 아이템을 정리했고, 캐릭터 삭제를 했다. OTP를 사용하면 즉시 삭제할 수 있다. 아래는 삭제 영상이다. 본캐 삭제 완료 메이플스토리를 접기 위한 오랜 여정이 이제 끝났다. 매번 말로만 공부해야지, 메이플 접어야지 라고 했는데 연말이 되니 버프를 받아서 결단력이 생겼고 이 생각이 드니 메이.. 2020. 12. 25.
Derivative of log determinant 이 포스트에서 증명하려는 등식은 Bishop의 PRML 책의 부록 C에서 발견한 다음 등식이다. \[\DeclareMathOperator{\tr}{tr}\newcommand{\inv}{^{-1}}\newcommand{\A}{\mathbf{A}} \frac{\partial}{\partial x} \log (\det \A) = \tr \left(\A \inv \frac{\partial \A}{\partial x}\right)\] 본문에서는 책에 주어진 명제 몇 가지를 이용하여 해당 등식을 증명하라고 했다. 저자의 의도대로 증명을 했으나, 증명에 약간 부족한 부분이 있다고 판단하여 추가로 증명을 했고, 결과를 정리하여 남긴다. 당연히, LaTeX 이다. 파일과 함께 이미지도 첨부한다. 2020. 8. 9.