최근 컨테이너 환경에서의 애플리케이션 개발과 인프라 운영이 늘어나고 있습니다. 쿠버네티스는 컨테이너를 관리(orchestration)하는 도구로 잘 알려져 있습니다. 이러한 관리 기능뿐만 아니라 컨테이너 기반 애플리케이션 배포와 오토스케일링 등의 기능까지 수행합니다. 애플리케이션을 독립적인 컨테이너로 구성하며, 클러스터를 통해 이를 쉽게 관리할 수 있도록 지원합니다. 이번 글에서는 쿠버네티스 클러스터 내부 혹은 외부에서 컨테이너 형태의 애플리케이션에 접속하기 위한 대표적인 통신 방법에 대해 알아봅니다.
네트워크는 눈에 보이지 않습니다. 그래서 공부에 어려움을 겪는 분들이 많습니다. 대학에서는 네트워크 기초만 한 학기 동안 배울 만큼 공부할 분량도 많습니다. 하지만 저는 이번 시리즈에서 주니어 개발자가 실무에서 활용하는 데 어려움이 없을 만큼의 기본적인 이야기들을 하려고 합니다. 네트워크에서 데이터가 목적지로 전달되는 과정은, 편지를 전달하는 과정과 유사합니다. 다만 현실에서는 전달을 해주는 주체는 인간이기 때문에, 목적지가 “롯데월드타워”라면 “아, 거기” 하면서 스스로 찾아갈 수 있는 반면, 컴퓨터는 철저히 몇 가지 단계에 따라서 목적지를 찾아가야 합니다.
코드 리뷰는 어렵습니다. 주는 입장에서도 그렇고, 받는 입장에서도 그렇습니다. 만약 코드 리뷰를 난생처음 해보거나, 익숙하지 않은 환경에서 코드 리뷰에 참여해야 한다면 혼란스러움은 더 커지곤 하죠. 저는 이를 극복하기 위해 저만의 멘탈 모델을 만들게 되었습니다. 처음에는 코드 리뷰를 창과 방패의 싸움이라고 단순하게 생각했는데, 개념을 계속 확장하다 보니 어느 순간 코드 리뷰의 목표가 스포츠맨십과 크게 다르지 않다는 생각이 들었습니다. 이러한 멘탈 모델을 떠올린 덕분에 코드 리뷰에 참여하는 사람의 태도와 철학에 대해서도 고민을 해볼 수 있었죠.
일반적으로 API는 사용자가 API 클라이언트 도구를 이용해서 직접 사용하는 일은 거의 없습니다. API 호출 테스트를 할 때를 제외하고는 대부분이 자동화된 프로세스에 연동하여 사용합니다. 그렇기에 자동화된 프로세스라는 사용자의 특성으로 인해 API 개발자들은 비밀성과 가용성 부분에서의 보안적인 요소나 사용량 제어 등의 목표를 위해서 API 게이트웨이(API Gateway)를 이용합니다. 이번 글에서는 API를 제공하는 시스템에서 꼭 고려해야 하는 API 게이트웨이와 기능 중 하나인 API 스로틀링(Throttling), 관련 알고리즘에 대해 살펴보고자 합니다.
많은 사람들이 프로그래머가 되고 싶어 하고, 이미 프로그래머인 많은 사람들이 자신이 하는 일을 더 잘하고 싶어 합니다. 프로그래밍은 현시대에 할 수 있는 가장 흥미로운 일 중 하나이며, 프로그래밍을 떠나서도 어떤 일에 능숙해진다는 것은 좋은 일입니다. 여러분이 웹 개발자든, 컴퓨터 공학자든, 현재 주니어 레벨이든, 시니어든 경력에 상관없이 훌륭한 프로그래머는 여타 개발자와 차별화되는 몇 가지 특징을 항상 가지고 있습니다. 궁금하시다면 이 글을 읽어보세요. 스스로가 훌륭한 개발자인지 알 수 있게 될 것입니다.