최근 우리 팀에서 누구나 간단히 쿠버네티스 리소스를 생성, 조회, 삭제할 수 있는 운영 툴을 개발하자는 의견이 나왔다. 복잡한 클라우드 인프라를 쉽고 직관적으로 관리할 수 있게 만들어 생산성을 높이자는 취지였다. 본 개발에 앞서 다양한 UI와 UX를 시도하기 위한 프로토타입 개발이 시작되었고, 나도 여기 참여하게 되었다. 쿠버네티스 API를 활용해 툴을 개발하는 과정은 매력적이면서도 도전적인 작업이었다. 이 글에서는 툴의 개발 과정을 간략히 소개하고, 그 과정에서 가진 의문과 고민을 공유하고자 한다.
메시지 큐는 컴퓨터 시스템에서 쓰이는 비동기 통신 프로토콜의 한 종류입니다. 이를 활용하면 응용 프로그램이 다른 응용 프로그램으로 메시지를 보낼 수 있습니다. 메시지 큐는 서버리스 및 마이크로서비스 아키텍처의 중요한 요소입니다. 서비스 간의 비동기 통신을 용이하게 만들어 서비스의 성능, 신뢰성, 그리고 확장성을 올려주기 때문이죠. 다만 분산 환경에서 대량의 메시지를 처리할 때 메시지 큐를 관리하는 것은 어려운 작업입니다. 그럴 때 Redis를 기반으로 구축된 Node.js 라이브러리, BullMQ의 도움을 받을 수 있습니다.
지난 3월 29일, 마이크로소프트의 소프트웨어 엔지니어 ‘Andres Freund’는 무손실 데이터 압축 유틸리티 XZ Utils(이전에는 LZMA Utils) 5.6.0과 5.6.1버전에 SSH 백도어가 존재한다고 밝혔다. XZ Utils 백도어 사태가 중요한 이유는 유틸리티에 원격 명령어 실행이 가능한 백도어가 삽입되어 있다는 점 이외에도, 백도어를 삽입하는 공급망 공격 과정에서 시사점을 찾을 수 있다. 공격자가 상호 간의 신뢰를 바탕으로 운영되는 오픈소스 생태계와 프로젝트 운영자의 신뢰를 이용했다는 점에서, 오픈소스 생태계의 소프트웨어 공급망 보안의 분수령이 될 만한 사건이다. 이번 글에서는 ‘CVE-2024-3094’라고 불리는 XZ Utils 백도어 사태에 대해 다시 되짚어보고, 나아가 오픈소스 생태계에서 발생하는 소프트웨어 공급망 공격 대응 방안을 고민해 보고자 한다.
“IT회사 CEO들 사이에는 ‘개발조직은 돈 먹는 하마’라는 이야기가 돌고 있어요. 도대체 개발팀들은 맨날 바쁘다, 밤샌다고 하는데 시스템 완성은 매번 늦어져요. 이유가 뭔지 모른 채 엄청난 개발조직 인건비를 지불하고 있어요.” 개발조직이 ‘돈 먹는 하마’로 보이는 현상이 과거 이들이 ‘전산실’이라 불리던 시절부터, 웹과 클라우드의 발전 그리고 AI 혁신이 세상을 시끄럽게 하는 요즘까지도 별 차이가 없다는 이야기입니다. 깊이 공감하는 문제이고, 이 글을 쓰게 된 계기이자 곧 주제이기도 합니다.
프론트엔드 개발자 입장에서는 개발할 때 로컬 환경에 백엔드 서버를 일일이 빌드하는 일은 다소 번거롭게 느껴진다. 그래서 최근 내가 속한 팀에서는 백엔드 서버를 브랜치 단위로 배포하고, 클라이언트를 개발하는 서버에서 직접 배포된 백엔드 서버를 향해 API를 요청하기로 하였다. 하지만 서버가 허용한다고 하더라도 브라우저 자체적으로 차단하는 리소스가 있다. 브라우저는 HTTP와 HTTPS 간 통신에서 쿠키 전송을 허용하지 않고 차단해 버린다. 자, 그럼 어떻게 해야 할까? 내가 시도한 방법을 공유한다.
‘애널리틱스 엔지니어’, 혹은 ‘분석 엔지니어’라고 들어보셨나요? 미국에서는 대략 3~4년 전부터 화제가 되기 시작했고, 한국에서는 작년부터 본격적으로 주목받고 있습니다. 간단히 말해서, 데이터 애널리틱스(분석) 엔지니어는 ‘데이터를 사용하기 쉽게 만들어주는 요리사’라고 할 수 있는데요. 그들의 고객은 바로 데이터 분석가, 마케터, 기획자 등 데이터를 손에 쥐고 일하는 모든 현업 전문가입니다. 이제 데이터 팀은 단순히 데이터를 모으고 분석하는 것을 넘어서, 누구나 데이터를 쉽게 이해하고 활용할 수 있는 환경을 만드는 데 집중하고 있습니다.