알라딘

헤더배너
상품평점 help

분류국내저자 > 컴퓨터/인터넷

이름:공용준

최근작
2022년 12월 <개발자 원칙>

리눅스 네트워크의 이해

이전에는 컴퓨터나 서버를 사면 처음 하는 일이 OS 설치였는데, 이제는 구입할 때 이미 OS가 설치된 상태이므로 가장 먼저 하는 일은 웹브라우저를 띄운 다음 인터넷이 작동하는지 확인하는 것이다. 고정 IP를 받든 DHCP를 통해 동적 주소를 할당받든 현 시대의 IT 엔지니어에게 네트워크는 없으면 안 되는 필수 요건이 됐다. 몇 년 전 소프트웨어 정의 네트워크(SDN, Software Defined Network)라는 용어가 유행하기 시작했다. SDN은 오픈플로우(openflow)라는 새로운 패킷 제어 프로토콜을 기반으로 회선 장애나 트래픽이 몰릴 경우 중앙의 오픈플로우 제어기가 이를 감지해 자동으로 정상 라인이나 트래픽 분산을 가능하게 할 수 있는 기술이라고 하여 엄청난 반향을 일으켰고, 실제로 일부 오픈플로우 제어기는 엄청난 가격에 팔리기도 했다. 시스코, 주니퍼 같은 벤더 쪽 이외에도 서비스 업체인 구글, 페이스북, 카카오 등 회사들도 자사가 사용 중인 소프트웨어 정의 네트워크를 논문이나 오픈소스로 공개하고 있다. 최근 SDN의 주요 특징은 별도의 네트워크 장비나 프로토콜을 새로 지정하는 형태가 아니라, 네트워크 하드웨어는 화이트박스라고 불리는 공용 하드웨어를 사용하고(마치 조립식 컴퓨터와 같다) 그 위에 네트워크 전용 OS라고 불리는 NOS를 위치시키는 형태로 진행되고 있다. 그리고 대부분의 NOS업체들은 리눅스를 기반으로 커널 패치, 프로그램 등을 올려 판매하고 있다. 그러다 보니 다시금 리눅스 네트워크 스택들을 알아야 하는 시대가 되었다. 기존 네트워크 장비가 CLI나 특별한 툴을 통해 설정을 했다면 이제는 리눅스 명령어들의 조합을 통해 설정해야 하고, 이전에는 네트워크 장비의 특정 프로토콜에 의존하던 것을 이제는 일반적인 프로토콜이나 프로그램을 통해 모든 네트워크 장비를 다뤄야 한다. 반대로 네트워크 장비가 리눅스를 기반으로 운영되므로 개발자들도 네트워크 장비를 설정할 수 있게 됨으로써 이제는 서버 개발자들이 네트워크 기능을 개발하기 위해 리눅스 네트워크를 좀 더 자세히 알아야 할 필요가 생겼다. 이 책은 커널 2.4 기반의 네트워크 스택과 인프라스트럭처를 기본 개념과 동작 원리, 각 스택과 계층 간의 상호작용에 대해 코드레벨까지 설명하므로 리눅스 네트워크를 이해하는 데 아주 큰 도움이 될 것이다.

카프카, 데이터 플랫폼의 최강자

현대의 컴퓨팅 아키텍처 디자인에서 가장 중요한 부분을 꼽으라면 아무래도 데이터 파이프라인이라고 하겠습니다. 여러 가상 리소스에서 나오는 데이터와, 이 리소스가 제공하는 서비스에서 생성되는 사용자의 활동 정보(클릭 수, 체류 시간, 장바구니, 구매 정보, 구매 시간 등)를 한곳으로 모아서 적절히 가공한 다음 사용자에게 적절한 정보를 제공하는 일은 꼭 요즘 유행하는 클라우드 플랫폼이 아니더라도 아주 중요한 일임에 틀림없습니다. 수년 동안 데이터 플랫폼을 만들면서 느꼈던 가장 어려운 점이라면, 매우 많은 데이터를 아주 민첩하게 받아들일 수 있고 고장감내성까지 지닌 소프트웨어 플랫폼을 만드는 일이었습니다. 파이프라이닝에서 일종의 척추 부분을 만드는 일이죠. 이런 목적의 솔루션을 이전에는 주키퍼만으로 만들었다가 성능이 기대에 미치지 못해 고민을 하고 있었는데, 카프카라는 오픈소스 솔루션을 알고 나서부터는 이 데이터 파이프라인을 만드는 일이 무척 쉬워졌습니다. 그때의 경험을 독자들과 함께 나누기 위해 이 책을 쓰게 되었습니다. 인공지능이든 자율주행차든 알고리즘으로 결정을 내리는 대부분의 장치는 외부의 정보를 모아서(Sense) 이 정보를 분석해 판단하고(Plan) 판단을 적용하는(Act) 일련의 과정으로 이어지는 흐름이 있습니다. 이 책은 특히, 데이터를 모으고 약간의 분석도 할 수 있도록 Sense-Plan 부분에 집중해서 쓰고자 했습니다. 클라우드상에서 데이터 분석을 통한 Plan-Act 부분이 궁금하다면 제 책 『클라우드 API를 활용한 빅데이터 분석』(에이콘출판, 2015)을 읽어 보시기를 추천합니다.

클라우드 전환 그 실제 이야기

2006년 3월 14일 전자 상거래로 유명했던 아마존이 아마존 웹 서비스 플랫폼(Amazon Web Service, 이하 AWS)을 시작하면서 클라우드 컴퓨팅이란 단어가 대중에게 알려지기 시작했다. 이때의 AWS는 3가지 종류뿐이었다. 스토리지 서비스인 S3, 큐(Queue) 서비스인 SQS 그리고 가상머신 서비스인 EC2가 처음 시작이었다(2020년 현재는 약 200여 가지의 제품이 만들어져 있다). 이후 IaaS(Infra as a Service), PaaS(Platform as a Service), APaaS(Application Platform as a Service), SaaS (software as a service) 등의 단어가 클라우드와 함께 등장했다. 클라우드 컴퓨팅이라는 단어와 함께 SDN(Software Defined Network), NFV(Network Function Virtualization), SDDC(Software Defined Data Center) 등의 기술 신조어가 등장했다. 그리고 클라우드 관리 측면에서 데브옵스(DevOps), SRE, DevSecOps 등 클라우드와 관련된 수많은 단어가 등장하기 시작했다. 이 책을 쓰게 된 이유는 내가 아주 오랜 기간 스스로에게 물었던 질문들이기도 하고 동료 선후배와 일하면서 수없이 했던 (또는 들었던) 질문에 답하기 위해서다. 첫 번째 질문은 '대체 클라우드란 무엇인가?'이다. 선문답처럼 느껴질 수 있지만 나를 포함해 이 책을 읽는 대부분의 독자는 신호처리/데이터 구조와 같은 IT 요소 기술을 사용해 어떤 IT 제품을 만들어 내야 하는 엔지니어이기 때문에 굉장히 중요한 질문이다. 나는 모두가 같은 답을 해야 한다고 생각하지 않는다. 각자의 상황과 목표가 다르기 때문이다. 그리고 그 답이 꼭 고도의 지혜를 담은 '정답'이어야 한다고 생각하지도 않는다. 환경은 자주 변한다. 어제의 정답이 내일은 문제를 만들기도 하는 오답이 돼 버리기도 하기 때문이다. 하지만 답이 있고 없고는 굉장한 차이다. 그때 그때의 목적에 맞도록 클라우드를 만들고 다음 목표를 세우는 데 도움을 주고자 이 책을 썼다. 두 번째 질문은 '클라우드를 만들고 유지하려면 몇 명이 필요해요?'이다. 2016년쯤 어떤 텔레콤 세미나에서 내가 발표했던 내용을 요약한 '오픈스택, 2명이 운영하다 보니'라는 굉장히 자극적인 기사 덕에 아주 많은 공격을 받았다. 대부분의 회사와 개발자가 클라우드를 자체적으로 하려다가 인력(사람의 수, 그에 따른 연봉 비용, 조직 관리 등)쪽 이슈 때문에 결국 포기하는 사례를 아주 많이 봤다. 클라우드를 어떻게 시작해야 하는지 그리고 어떻게 유지해야 하는지 그리고 이것들을 어떻게 좀 더 IT적으로 할 수 있을지 설명하려고 했다. 세 번째 질문은 '어떻게 확산시킬 수 있었어요?'라는 질문이다. 세상에 좋은 기술과 제품은 많다(나는 기술은 없고 제품만 있다고 생각하기는 한다). 하지만 기술이나 제품이 자신 또는 조직의 문제를 풀어줄 수 있느냐는 다른 이슈이다. 클라우드도 마찬가지다. 결국에는 클라우드 제품에 맞춰서 조직 구성원의 일하던 방식과 정책까지 모두 바꿔야 하는데, 이런 지난한 과정을 거치다 보면 클라우드와 같은 신제품은(게다가 벤더에서 제공하는 것이 아닌, 자신이 직접 만드는 경우는) 거의 대부분 사장되기 마련이다. 나도 현 직장 이전의 모든 직장에서는 클라우드 부서가 전부 없어졌다. 이 책을 읽는 여러분은 그 실패를 겪지 않았으면 하는 마음에 이 책을 쓰게 됐다. 많은 분이 클라우드 제품으로 문제를 잘 해결하는 데 이 책이 조그만 도움이 되길 바란다.

KVM 가상화 완전 가이드

인프라 레벨에서의 가상화는 아주 오래 전부터 사용됐다. 특히 리눅스 커널에서 KVM을 마스터 브랜치에 포함하기 시작하면서 많은 곳에서 인트라 가상화 소프트웨어로 KVM을 사용하고 있다. 특히 오픈스택이라는 클라우드 소프트웨어가 KVM을 사용하면서 KVM은 클라우드 시대에서 아주 중요한 기술로 인정받고 있다. 대부분의 인프라와 컴퓨팅 리소스 관리 쪽에서는 KVM을 많이 사용하고 있지만, 정작 그 내부 원리와 작동 방법에 대해서는 잘 모르는 경우가 많다. 이 책은 KVM의 작동 원리를 소스코드 기반에서 친절하게 설명하고 있다. 커널과 디바이스 드라이버를 잘 모르는 사람도 이해할 수 있도록 쉽고 간단하게 표현하고 있다. 그리고 KVM뿐만 아니라 KVM과 연관된 인프라 리소스에 대해서도 잘 설명하고 있다. 먼저 소프트웨어 정의 네트워크(SDN)가 KVM과 어떻게 잘 결합할 수 있는지에 대해서도 자세히 설명하고 있으며, SDN의 원리와 구성 요소 그리고 KVM과의 결합에 대해서도 자세히 설명한다. 또한 KVM에서 생성한 데이터를 저장할 스토리지에 대해서도 자세히 설명한다. 운영 시에 발생하는 장애처리에 필요한 디버깅 기술과, KVM의 성능을 개선하는 방법에 대해서도 시스템/커널/KVM 자체에 대해서 고려해야 할 점들을 자세히 설명하고 있다. KVM을 사용해서 클라우드를 만들 수 있는 오픈소스인 김치(kimchi) 와 오픈스택(openstack)에 대해서도 설명하고 있기 때문에 KVM뿐만 아니라 클라우드에 관심이 있는 분들께도 좋은 지침서가 될 것이다. 이 책에서는 KVM에 대해서 기본 원리에 대한 내용과 함께 적용과 실무에 대한 풍부한 예제를 통해 인프라 전반적인 내용까지 설명하고 있어 가상화와 클라우드를 이해하는 데 큰 도움이 될 것이다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자