전체 글

Paint the World
최근에 주변 지인이 진행하는 프로젝트의 배포를 돕는 과정에서 Docker의 환경 변수를 주입하는 방법을 이것저것 설명해 주었다. 주된 내용은 빌드 타임의 환경 변수 주입과 런타임의 환경 변수 주입이 다르다는 이야기였는데, 결과적으로는 잘 해결이 되었으나 설명하면서도 살짝 애매한 부분이 있었다. 환경 변수라는 것을 넣어줄 수 있는 부분은 굉장히 많다. (1)Dockerfile에 정의해 줄 수도 있다. ENV나 ARG가 이에 해당한다. 그리고 (2). env 파일을 만들어서 dotenv를 사용해 애플리케이션에서 환경 변수를 끌어다 쓸 수 있게 해 줄 수 있다. 그리고 마지막으로는 (3) 바깥쪽의 오케스트레이션 툴(Kubernetes, docker-compose)도 환경 변수를 주입해 줄 수 있는데, 만약 ..
자바스크립트는 이견이 없는 태생부터 싱글스레드지만, node.js를 싱글스레드로 보느냐 멀티스레드로 보느냐에 대해서는 관점 차이가 조금 있다. 어떻게 보느냐에 따라서 사람마다 싱글스레드라고 하는 사람도 있고, 멀티스레드라고 하는 사람도 있다. 다음의 레퍼런스에 따르면, 사람들의 답변은 "뭐 그럴 수도 있고 아닐 수도 있다."로 일축된다. Is Node js single threaded or multi threaded : https://www.quora.com/Is-Node-js-single-threaded-or-multi-threaded Is Node.js single threaded or multi-threaded?Answer (1 of 4): A2A. Javascript in itself is si..
다양한 프레임워크를 통해서 서버를 개발하다 보면 자바는 멀티스레드라는 사실을 어디선가 듣게 될 것이다. 나 또한 인프런에서 김영한 선생님의 스프링 강의를 들으며, 스프링은 50개의 스레드풀을 관리하고 있고, 200개까지 늘릴 수도 있다는 이야기를 들었다. 그 당시에는 스프링으로 API를 구현하는게 급급했기 때문에, 그냥 그렇구나 하고 넘어갔지만 지금 생각해 보면 자바스크립트와 비교했을 때, 싱글 스레드 언어인 자바스크립트와 대체 어떤 부분이 다르기 때문에 스프링은 스레드풀을 지원하는 걸까? 자바는 대체 뭐길래 스프링이 이렇게 멀티 스레드를 사용할 수 있게 도와주는 걸까? 이번 포스팅에서는 스프링부트가 어떻게 멀티스레딩을 지원하는 지에 대해서 조사한 내용을 포스팅해보려고 한다. CS에 대한 내용이 꽤나 ..
· 회고
들어가며요즈음에는 당신의 웃는 모습을 자주 보곤 합니다. 당신은 웃는 얼굴로 요즘 많이 아프다는 이야기를 많이 합니다. 그럴 때에는 함께 웃어줘야 하는지 함께 울어줘야 하는지 헷갈리곤 합니다. 당신이 이내 보여왔던 의연함을 생각하며 웃는 얼굴로 당신을 맞이합니다. 당신은 아마 본인 스스로가 아프다는 사실보다, 아프지 않은 모습을 보이는 것만으로도 행복해하는 것 같습니다. 당신은 약이 많이 늘었습니다. 이제 더 이상 항생제로는 감당이 안 돼 치아를 뽑는 방법밖에 없다고 합니다. 병원비가 많이 늘었고, 약 없이는 잠에 들기 힘들다고는 합니다. 그러한 말들을 내려놓기 이전에 제게 요즘은 잘 지내는 지 돈은 부족하지 않은 지 밥은 잘 먹고 다니는지 이것저것 먼저 안위를 물어봐주시곤 합니다. 학창 시절을 상상하고..
갑자기 동료 개발자에게 docker에 심각한 버그가 있다는 말을 들었다. 멀웨어 관련 이야기가 나오고 있길래, 우리 도커가 그럴 일이 없다고 생각했지만... 전 세계적인 어뷰징이 발생하고 있었다. 아래와 같은 팝업이 지속적으로 뜨며 개발자를 괴롭힌다. 악성 코드가 차단됨, 'com.docker.vmnetd'에 악성 코드가 포함되어 있어서 열리지 않았습니다. 이 소프트웨어는 악성 코드를 포함하고 있을 수 있습니다. 이 소프트웨어는 다운로드된 후 수정되었을 수 있습니다. 이 소프트웨어를 실행하면 컴퓨터에 손상을 줄 수 있습니다.악성 코드가 차단됨  'com.docker.socket'에 악성 코드가 포함되어 있어서 열리지 않았습니다. 이 소프트웨어는 악성 코드를 포함하고 있을 수 있습니다. 이 소프트웨어는 ..
· 후기
CKA라는 자격증에 대한 정보는 오래전부터 알고 있었다. 다만 쿠버네티스를 그렇게까지 사용하지 않았을 때였고, 공부를 해볼까라는 생각은 전혀 못했던 것 같다. 하지만 CKA를 주최하는 Linux Foundation은 매년 12월에 사이버 먼데이라고 50% 시험 할인 쿠폰을 제공하는데, 사악한 비용을 자랑하는 CKA 시험을 싸게 칠 수 있는 기회가 있었다. 이전에 AWS 자격증을 딴 적이 있다. AWS 자격증을 따면서 좋았던 점은 공부하기 전에는 그냥 구현만 어느정도 꽤 할줄 알았고 자세한 디테일은 잘 몰랐다. 예를 들면 서브넷이나 VPC에 대해서 신기했던 점은 AWS로 들어오는 트래픽은 무료지만 나가는 트래픽에 전송 비용이 든다는 점이다. 동일 Region에 동일 AZ끼리는 무료, 다른 AZ끼리는 약간의..
CKA 시험을 보면서 기출 문제가 굉장히 중요하다는 것을 알게 되었다. 인터넷에서 살펴본 기출 문제들에서 다 고만고만하게 나오는 느낌이 있었고 살펴본 결과 약 1~2년 전부터 쓰인 블로그들을 통해서 기출 문제들을 분석했는데, 실제 시험과 비슷하게 나왔다. 나 또한 CKA 시험을 보고 난 후에 기출 문제를 정리함으로써 CKA를 준비하는 사람들에게 많은 도움이 되고자 내용을 정리했다. 본론CKA의 시험 환경은 생각보다 많이 친절하다. 아마도 killer.sh나 Kodekloud를 통해서 mock exam을 본 사람들이 많을텐데, 이에 비해서 엄청나게 친절하다. 키워드들(pod name, path) 등에 복사를 편리하게 해줄 수 있게 클릭으로 복사를 지원하거나, 관련된 문제의 레퍼런스를 직접 달아두어 바로 접..
예전에 선언형과 명령형에 대한 이야기를 한 적이 있다. Kustomize는 선언형으로 쿠버네티스 오브젝트를 사용자가 원하는 대로 변경할 수 있게 도와주는 도구이다. 쿠버네티스의 버전 1.14 이후로, kubetctl에서 kustomize 명령어를 지원하게 되었다. 가장 큰 특징은 overlay 구조로 기본이 되는 구조에 추가적인 오브젝트 설정들을 오버라이딩하여, 다양한 스테이지에 배포할 수 있다는 점이다. base 디렉토리에 기본이 되는 쿠버네티스 리소스를 정의하고, overley를 통해서 환경별(dev, prod, alpha 등) 차이점을 정의하여 여러 가지 환경에 맞게 사용할 수 있게 도와주는 역할을 한다. 이러한 Kustomize가 없다면, 직접 하나하나씩 kubectl apply -f 명령어를 통..
marsboy
marsboy blog