본문 바로가기

분류 전체보기63

2021 February ~ March 2월이 끝나고 귀찮아서 회고를 안 썼는데, 다행인 것은 2~3월 동안은 그래도 무슨 날에 무슨 일이 있었는지 기록을 해 뒀어서 정리하기 아주 수월했다. 묶어서 정리해보려고 한다. 독서 2~3월에는 와 코스톨라니의 투자 총서 3권, 을 읽었다. (와! 5권!) 는 읽으면서 모르는 단어가 나오면 찾아서 정리해뒀다. 나중에 다시 보면서 단어 공부하자는 마음에 정리했지만, 단어 공부를 좋아하지 않는 내 특성 상 언제 다시 볼지는 잘 모르겠다. 코스톨라니 투자 총서는 이모부께서 선물해 주셔서 읽게 되었는데 재미있게 읽었다. 투자에 대해서 아는 것은 하나도 없지만 확실하게 알게 된 것은 단타는 좋지 않다는 것이다 ㅋㅋ 은 회사 PM님께서 선물해주신 책인데 대략 기술과 감각의 조화를 얘기하고 싶은 듯 하다. 단순히 .. 2021. 4. 5.
Autodiff with Julia 예~~전에 짜둔 코드인데, 친구가 안 예쁘다고 해서 조금 코드를 손봤다. 손 보고 나니 전체적으로 깔끔해서 매우 마음에 들었다. Autodiff 에 대한 전반적인 내용은 이전 글 (https://calofmijuck.tistory.com/28) 을 참고하면 될 것이다. 바로 구현으로 들어가자! 객체 정의 우선 DiffObject struct 를 정의해야 한다. Julia 문법이지만 대충 무슨 말인지 이해는 되니 너무 신경쓰지는 않아도 괜찮을 듯 하다. struct DiffObject 2021. 3. 22.
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.