쿠버네티스는 컨테이너 오케스트레이션 도구입니다. 컨테이너는 쿠버네티스에서 파드(pod)라는 개념으로 감싸집니다. 하나의 파드는 한 개 이상의 컨테이너를 가질 수 있습니다. 즉, 애플리케이션 컨테이너 한 개와 그 옆에 사이드카 패턴으로 다른 컨테이너를 붙여서 하나의 파드로 운영하는 것이 가능합니다. 각설하고, 이번 글에서는 파드를 수평 확장(Scale-out)하는 방법인 HPA(Horizontal Pod Autoscaling)와 노드를 수평 확장하는 카펜터(Karpenter)를 엮어서 개념을 이야기해 보도록 하겠습니다. 언제나와 마찬가지로 글에 잘못된 부분이 있거나 토론이 필요한 부분이 있다면 댓글로 의견 부탁드립니다 :-) # HPA(Horizontal Pod Autoscaling) Deployment로..
지난번에 npm 과 pm2 에 대해서 살펴봤는데 이번에는 nvm 에 대해서 알아보도록 하자. 우리가 오픈소스를 개발한다면 readme 에 당연히 노드의 버전을 명시한다. 그리고 해당 오픈소스를 사용하려는 사용자는 (가급적) 명시된 노드 버전에 맞춰서 프로젝트를 돌려볼텐데 내가 설치한 버전과 상이한 버전의 노드를 실행시키기 위해서는 어떻게 해야 할까? 노드를 지우고 새로 설치? 혹은 파이썬의 virtualenv 와 같은 가상 환경이 존재할까? 아니, 그럴필요가 없다. 여기 노드 버전을 매니징 할 수 있는 nvm ( Node Version Manager )이 있다. ( 노드 공식 프로그램은 아니고 개인이 만든 프로그램인데 사실상 공식처럼 사용한다 )nvm 을 통해 우리는 다양한 노드 버전을 한 개의 시스템에..
노드의 강점은 그 홈페이지에서 찾아볼 수 있는데 아래와 같이 정의되어 있다.Node.js 는 이벤트 기반, 논 블로킹 I/O 모델을 사용해 가볍고 효율적입니다.하지만 이 강력함으로 인해 개발자는 곤욕을 치루게 되는데 그 중 하나가 콜백지옥이다. 콜백지옥이 발생하는 근본적인 이유는 노드의 비동기를 해결하고자 할 때 중첩 콜백이 이어지기 때문인데 왜 콜백을 중첩해서 사용해야 할까? 이 문제에 대해 나는 "우리 개발자 뇌가 아직 동기적으로 코드를 이해하려고 하기 때문" 이라고 이야기한다. 노드를 더 깊게 잘 이해하려면 비동기에 대한 이해를 높이고 중첩 콜백을 풀어야겠다. 각설하고 노드는 비동기에 특화되어 있는 플랫폼이다보니 무조건 동기적으로 처리해야만 하는 코드를 풀어내야 할 때 난항을 겪게 된다. 예를들어 ..
Node.js 를 올초에 처음 접하면서 바이블이 될만한 책을 못봤다. 인터넷을 뒤적거려도 근사한 자료는 사막에서 바늘 찾는 것보다 어려웠는데 이유로는 대부분의 글이 자바스크립트에 대한 배경지식이 있는 독자 기준으로 설명되고 있으며 어려운 개념을 설명하는 글은 글쓴이 본인도 무슨말을 하는지 모르는 상태에서 어설프게 지식을 공유하는 경우가 되시겠다. 그러던 도중 재미있는 책을 만났다. 책은 제목처럼 200개의 예제를 통해 노드를 차근차근 정복해나가는데 예제의 종류가 무척 다양하고 쉽게 다뤄지고 있어서 쉽고 재밌게 훌훌 읽힌다. 물론 실습 가능한 환경에서 직접 타이핑하면서 정독하는 것이 이 책을 읽는 가장 모범적인 방법이겠다. 책은 총 다섯개의 파트로 구성되어 있으며 파트 1, 2 는 기본문법과 함수등..
firebase 는 실시간 데이터베이스와 Cloud Firestore 두 가지 타입의 저장소를 제공한다. 현재 (18.04.14) 기준으로 firestore 는 베타 기간이고 공식 문서에 따르면 아직 안정성은 실시간 데이터베이스에 비해 떨어질 수 있다고 하니 상용으로 운영할 생각이라면 여러가지 상황을 고려해야겠다. 하지만 그 강력함을 보면 사용하지 않을 이유가 있을까 싶다.일단 두 종류의 데이터베이스에 대한 비교는 아래 페이지를 통해 확실하게 알 수 있다. https://firebase.google.com/docs/firestore/rtdb-vs-firestore?hl=ko여기서 우리는 node.js 기반으로 firestore 를 사용해 보도록 한다. 우선 firebase 에서 제공되는 데이터베이스는 모..
Node.js 를 시작하면서 제일 먼저, 혹은 많이 듣게 되는 이야기가 콜백지옥이다. 그런 상태로 노드를 접하고 사용하기 시작하니 혼란을 부르는 부분이 있는데 이번에 콜백(callback)을 대해 정리를 하는 시간을 갖도록 해본다. 언어든 기술이든 기초가 중요하고 기초를 탄탄히 하면 콜백지옥에서 어느순간 자연스럽게 벗어날 수 있지 않을까? 노드(정확히는 자바스크립트)에서 함수는 일급 객체로 취급된다. 위키백과를 참고하면 일급 객체가 되기 위해서는 아래 조건이 충족되어야 한다.변수나 데이터 구조안에 담을 수 있다.파라미터로 전달 할 수 있다.반환값(return value)으로 사용할 수 있다.할당에 사용된 이름과 관계없이 고유한 구별이 가능하다.동적으로 프로퍼티 할당이 가능하다.이 말을 이해하기 위해서 아..
일단 노드를 시작한지 얼마 안되서 관련 지식은 대부분 인터넷으로 접하고 있는데 여기 널린 글들에 문제점이 많다. 노드라고 하는 언어가 javascript 를 server-side 에서 동작하도록 지원하면서 백만명의 프론트 개발자를 백엔드에 설 수 있게 해줬다. 한편 웹 프레임웍 자체의 진입장벽이 다른 언어에 비해 상대적으로 낮은데 각설하고 이게 뭐가 문제냐하면 아무리 자바스크립트가 ES6 까지 진화하고 뭣했다고 해도 콜백 지옥에서 광명을 찾았다는 글을 찾기가 힘들다는 것이다. 대부분이 허덕이고 있으며 그나마 이해했다고 싸질러놓은 글도 의심스럽기짝이 없다. 대부분의 백/프론트엔드 개발자가 하나같이 두리뭉실한 지식을 인터넷에 써 놓고, 그걸 또 많은 사람들이 퍼나르고.. 여튼 제대로 된 지식이나 먹음직스럽게..
- Total
- Today
- Yesterday