알라딘

검색
헤더배너
상품평점 help

분류

이름:김영기

최근작
2026년 5월 <모던 데이터 아키텍처 설계와 구현>

개발자를 위한 웹 개발 환경 자동화

데브옵스와 CI/CD라는 용어는 클라우드와 더불어 개발자라면 누구에게나 익숙한 용어가 돼 버렸습니다. 불과 몇 년 전만 해도 데브옵스와 클라우드가 이렇게 빠르게 개발자에게 필수적인 도구 중 하나가 될 것이라고 생각하지 못하고 일시적인 유행으로 그칠 것이란 전망도 있었습니다. 그러나 이러한 기술들은 이제 개발과 분리해서 이야기할 수 없으며, 특히 웹 애플리케이션 분야와는 따로 분리해서 이야기할 수 없을 것 같습니다. 이 책은 도커(Docker) 그리고 젠킨스(Jenkins) 같은 오픈소스와 AWS, 애저 같은 클라우드 플랫폼을 기반으로 웹 개발 환경에 자동화를 적용하는 방법을 소개하고 있습니다. 독자들은 데브옵스와 클라우드, CI와 CD 등 웹 애플리케이션 개발에 필요한 기술과 시스템을 실습을 통해 직접 경험하고 이를 통해 실무에 필요한 관련 기술을 습득할 수 있을 것이라 생각합니다. 이 책에서는 많은 오픈소스를 사용합니다. 오픈소스는 빠르게 버전이 올라가면서 실제 독자들이 사용하는 버전과 책에서 사용하는 버전 사이에 차이가 발생할 수 있습니다. 문제가 발생하는 경우, 인터넷과 각종 참고 자료를 이용해 문제를 해결해 보는 것도 좋은 학습 경험이 될 것으로 생각합니다. 더불어, 웹 개발 환경의 자동화를 주제로 다루고 있어 웹 애플리케이션 프로그래밍을 위한 언어를 습득하거나 코드 작성은 주된 목적이 아닙니다. 그러나, 프로그래밍 언어와 코드 작성 방법을 학습하는 것 이상으로 개발 환경과 관련 인프라 기술을 습득하는 것도 더 나은 개발자가 되기 위한 과정이라고 생각합니다. 이 책의 내용은 웹 개발자라면 알아야 할 기초 사항을 다루고 있습니다. 이 책이 개발자로 성장하는 과정에 있어 많은 도움이 되길 바랍니다.

모던 데이터 아키텍처 설계와 구현

데이터란 추상적인 개념이나 사실을 기호, 문자, 숫자 등으로 나타낸 사실(given fact) 혹은 '기초 자료'를 의미하며, 데이터 관리는 이러한 자료를 수집, 저장, 정리해서 가치 있는 정보로 변환하는 과정을 말합니다. 데이터의 개념과 관리 방법은 저장 매체와 기술의 발전에 따라 원시적인 방법(점토판과 파피루스 등)에서 디지털 중심의 현대적인 방법(DBMS, 클라우드 컴퓨팅)으로 발전해 왔으며 앞으로도 계속 진화해 갈 것입니다. 근대적인 컴퓨터가 발명된 후 데이터의 관리는 중앙집중적 구조를 갖고 데이터를 정형적으로 관리하는 DBMS가 중심을 이뤄왔습니다. 그러나 인터넷과 빅데이터의 시대인 2000년대를 전후로 클라우드 컴퓨팅의 등장과 함께 데이터의 원격 저장과 분산화가 본격화되기 시작했고 3V(Volume, Velocity, Variety)의 특징을 갖는 빅데이터는 AI 출현의 기초가 되었습니다. AI의 출현과 더불어 데이터는 기하급수적으로 늘어났고 복잡해졌으며, 그 중요성은 과거에 비해 점점 더 커지고 있습니다. 이러한 변화에 따라 데이터 세상도 같이 변화하고 있습니다. 단순하게 모아서 잘 관리하는 것이 아닌 데이터의 공유와 활용을 위한 새로운 방법들이 모색되고 있습니다. 현재 모든 분야에서 AI를 빼고 이야기하기 어려워지고 AI의 활용도는 시간이 지나면서 더 높아지고 있습니다. 데이터는 AI 기술에서 매우 중요합니다. AI가 새로운 내용을 학습하고 올바른 답을 내기 위해서는 그 답의 원천이 되는 데이터가 잘 관리되어야 합니다. 특히, LLM은 학습 데이터의 품질에 절대적으로 의존합니다. 데이터 세상에는 "쓰레기를 넣으면 쓰레기가 나온다(Garbage In, Garbage Out)"라는 유명한 말이 있습니다. 이는 훌륭한 알고리즘이나 AI 모델을 사용하더라도, 입력되는 원천 데이터(raw data)의 품질이 낮으면 결과물도 가치가 없다는 뜻입니다. 이에, 이 책에서 강조하고 있는 데이터 거버넌스와 품질 관리가 이루어지지 않는다면 AI가 답하는 내용은 편향되거나 존재하지 않는 사실을 만들어 낼 것입니다. 요컨대, AI 시대에도 데이터의 품질과 관리는 점점 더 중요해질 것입니다. 하지만 문제는 데이터 구조를 잡고, 수집하고, 관리하는 작업이 예전과 다르게 난이도가 점점 더 높아지고 있다는 점입니다. 데이터의 양은 관리하기 어려울 정도로 늘어나고 있고 데이터의 형태 또한 다양해지고 저장 위치도 다양해지고 있습니다. 이와 동시에, 분산된 데이터의 무결성과 일관성도 유지해야 하고 보안 처리도 해야 합니다. 데이터의 수명조차 가변적입니다. 이러한 수많은 어려움에도 불구하고, AI 시대를 맞아 더더욱 데이터는 기업의 핵심 자산으로 취급되고 있고 데이터 관리는 기업이 생존을 결정하는 문제가 되어 가고 있습니다. 이 책에서 언급되는 데이터 패브릭(Data Fabric)과 데이터 메시(Data Mesh)도 데이터에 대한 새로운 시도라고 할 수 있습니다. 데이터 패브릭은 온프레미스, 클라우드 등 여러 위치에 분산된 데이터를 물리적인 통합하는 것이 아닌, 메타데이터 기술을 활용해 가상화 된 통합 계층에서 실시간으로 관리하는 데이터 아키텍처를 말합니다. 이러한 아키텍처는 흩어진 데이터 소스를 하나로 묶어서 관리하기 때문에 데이터의 파편화를 막고 데이터 민주화에도 기여하게 됩니다. 반면 데이터 메시는 도메인 기반의 분산 데이터 소유권과 조직 문화 중심으로 데이터를 관리합니다. 데이터 메시는 대규모 데이터를 중앙에서 관리하던 방식에서 벗어나 도메인별로 데이터를 분산하고 소유하는 탈중앙화 아키텍처로 도메인 팀이 데이터를 제품처럼 관리하고 이를 지원하기 위한 셀프서비스 플랫폼과 거버넌스를 통해 데이터 품질을 높이고 비즈니스 가치를 높이는 방법을 말합니다. 이 책에서는 이러한 개념을 더 발전시켜, 모던 데이터 스택과 실무적인 내용을 추가해, 단순한 이론에 그치지 않고 대규모 데이터 환경에서 데이터 품질을 보장하고 기술 부채를 줄이는 방법과 더불어 비즈니스의 성공을 위한 데이터 아키텍처와 관리 기법에 대해 설명해줍니다. 우리는 이 책을 통해 데이터 생성부터 폐기까지의 데이터 수명주기에 관련된 다양한 데이터 관리의 개념을 알 수 있습니다. 과거의 데이터 관리는 주로 어떻게 데이터를 효율적으로 보관할 것인가 하는 보관의 문제였다면, 지금은 어떻게 신뢰할 수 있는 데이터를 계속해서 제공할 수 있을 것인가 하는 데이터 공급의 문제로 바뀌었습니다. 이 책에서 이야기하는 데이터 제품과 대규모 데이터 관리 전략은 현업에서 데이터 공급망을 구축하는 이들에게 큰 도움이 될 것입니다. 또한 실무자가 꼭 알아야 할 실제 기업 환경에서 활용할 수 있는 다양한 팁들도 많이 포함되어 있습니다. 마지막으로, 이 책이 나오기까지는 여러 우여곡절이 있었습니다. 어려운 과정에서도 이 책을 꼼꼼하게 검토해 주신 출판사 관계자분들과 이 책에 관심을 가져준 많은 분께 감사드립니다. 데이터 때문에 고민하는 관련자들이 문제를 해결하고 업무를 진행하는 데 이 책이 작으나마 도움이 되길 바랍니다. - 김영기, 김현진

모두를 위한 소프트웨어 보안 설계와 구현

보안이란 주제는 다소 딱딱하고 어려운 느낌을 풍깁니다. 난해한 개념과 어려운 수학 등이 어우러져 전문가의 영역이라 간주되며, 모두가 관심은 많지만 접근하기 어려운 영역이라 여겨집니다. 그러나 이 책은 전문 보안 서적과는 다른 재미를 주는 책입니다. 이 책은 보안 엔지니어링에 대한 입문서로 보안의 기본 개념들과 소프트웨어 개발에서의 다양한 보안 사례를 풍부하게 다룹니다. 그간 보안을 주제로 한 책들은 적지 않게 출간됐지만 보안 전문가와 소프트웨어 개발자 모두를 대상으로 한 경우는 드물었다고 생각합니다. 네트워크 보안과 암호학 분야의 중요 인물로 공개 키 인프라(PKI) 개념을 제안하고, 프레리트 가그(Praerit Garg)와 함께 위협 모델링 분야의 걸출한 업적인 STRIDE 모델을 개발한 저자 로렌 콘펠더는 현대적인 소프트웨어 개발에서 보안이 매우 중요한 요소라 이야기합니다. 콘펠더는 이 책에서 소프트웨어 개발자와 보안 전문가가 소프트웨어를 설계하고 개발할 때 보안을 고려하는 방법에 대해 개념 수준부터 실사례까지 전반적으로 가이드해 줍니다. 어려운 개념을 나열하기보다는 저자가 현업에서 실제로 겪은 경험이나 각종 사례를 예로 들어 보안에 접근할 때의 장벽을 낮춰 주므로 개발 실무자들에게도 많은 도움이 될 것입니다. 이 책은 보안 개념부터 시작해, 보안 위협과 취약점 분석, 보안 모델링부터 사례 연구까지 보안에 관련한 많은 분야를 다룹니다. 또한 보안 설계 리뷰(SDR) 같은 각 조직이나 회사에서 보안을 적용할 때 도움이 되는 많은 팁이 담겨 있습니다. 따라서 이 책은 소프트웨어 개발 과정에 보안을 통합하고 싶은 개발자, 보안 전문가, 시스템 아키텍트, 보안 관리자 등 보안에 관련된 모든 이가 참고 자료로 활용할 수 있습니다. 더욱 안전한 소프트웨어를 개발하는 데 큰 도움이 될 책이라 확신합니다.

소프트웨어 개발자 테스팅

소프트웨어 개발자라면 적어도 한 번은 버그가 없는 완전한 품질의 소프트웨어를 생각해 본 적이 있을 겁니다. 그러나 소프트웨어 개발이라는 분야에 있는 개발자라면 완벽한 품질의 소프트웨어 개발이 얼마나 어렵고 난해한 목표인지 알고 있을 것으로 생각합니다. 안타깝게도 소프트웨어 테스팅은 소프트웨어 개발 관련 분야 중 가장 오래된 분야 중 하나지만 여전히 난해하고 많은 오해를 받는 분야 중 하나입니다. 이 책은 더 좋은 코드를 작성하고 버그를 방지하려는 SW 개발자를 위한 책으로, 개발자가 알아야 하는 테스팅의 기본 사항부터 고급 기법까지 다루고 있습니다. 또한 테스트 용이성을 이해하고, 이를 바탕으로 소프트웨어의 품질을 달성하는 다양한 방법을 알려주고 있어 소프트웨어 개발자라면 알아야 하는 많은 내용을 담고 있습니다. 소프트웨어를 작성해본 경험이 있다면 이 책의 내용을 실제 코드 연관시킬 수 있으며 이 책에서 말하는 내용을 최대한 활용할 수 있다고 생각합니다. 개발자들이 더 나은 품질의 소프트웨어를 더 빠르게 개발하고 체계적으로 문제점을 찾는 데 있어 이 책이 많은 도움이 되기를 기대합니다.

엔터프라이즈 데브옵스

지난 10년은 다른 어느 시기보다 빠르게 변화하는 소프트웨어 분야가 더 빠르게 변화하는 시기였습니다. 소프트웨어의 개발과 더불어 새로운 방식의 개발 방법과 문화, 인프라에 더 많은 관심을 갖기 시작했습니다. 이제 소프트웨어 분야에 있는 사람이라면 애자일, CI/CD, 컨테이너, 클라우드 등의 용어가 어색하지 않을 것입니다. 이러한 변화는 소프트웨어 개발에 있어 단순히 제품 개발 이상의 것을 요구하고 있습니다. 이와 같은 상황에서 개발 데브옵스(DevOps)의 도입은 필연적인 결과인지도 모릅니다. 많은 조직이 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경과 문화를 만들기 위해 애자일을 도입하고, 데브옵스로 확장하려고 시도했습니다. 그러나 제 경험상 조그만 성공은 있었어도, 결과적으로 애자일과 데브옵스의 도입에 실패하는 경우가 더 많았습니다. 특히 소규모 조직에는 성공적으로 도입했지만, 일정 규모가 넘어가면 도입에 실패하면서 기존 방법론으로 돌아가는 경우도 있었습니다. 이 책은 데브옵스를 대규모 조직에 도입하고 운영할 때 고려해야 하는 사항을 사례와 함께 이야기하고 있습니다. 따라서 자신의 조직에 데브옵스를 도입하려는 사람, 특히 관리자들에게 좋은 가이드가 될 것이라고 생각합니다. 이 책을 통해 조직에 데브옵스 도입을 고민하는 많은 사람이 품었던 궁금증을 해결하고 해답을 찾길 바랍니다.

엔터프라이즈 애자일 솔루션 개발

"어떻게 하면 제때에 고품질 소프트웨어를 고객에게 전달할 수 있을까?"라는 질문이 소프트웨어 개발의 주된 화두가 아닐까 합니다. 이런 질문에 답하기 위해 여러 사람들이 고민했고, 애자일 방법론 또한 이런 고민을 통해 태어났을 것입니다. 애자일을 알고 있는 대다수 개발자들은 애자일 방법론이 소규모 팀을 대상으로 하고 있기 때문에, 대규모의 개발조직에 적용하기 어렵다고 생각합니다. 그러나 애자일 방법론은 대규모 조직에도 적용할 수 있으며, 이를 위한 방법들이 이 책에 소개되어 있습니다. 조직의 특성과 수준에 따라 애자일을 적용하는 방법과 더불어, 상황에 맞추어 방법론을 최적화하는 방법까지 소개되어 있으니 이 책은 애자일의 적용을 고려하는 많은 개발 조직에 도움이 될 것입니다. 애자일을 시작하는 것은 쉽지만, 제대로 활용하는 것은 어렵습니다. 이 책이 애자일을 활용하는 데 있어 하나의 충실한 지침서가 되기를 바랍니다.

파이썬을 활용한 소프트웨어 아키텍처

소프트웨어 개발자라면 적어도 한 번쯤 SW에 대한 오랜 경험과 경력을 바탕으로 멋진 소프트웨어 제품을 만드는 것을 상상해 본 적이 있을 것이다. 소프트웨어 아키텍처 분야는 다른 소프트웨어 분야에 비해 비교적 역사가 짧아도 제대로 파악하려면 많은 험난한 과정을 겪어야 한다. 이러한 어려움 중 하나는 소프트웨어 아키텍처 자체를 알려주는 레퍼런스가 부족하다는 점과, 다른 하나는 파악한 소프트웨어 아키텍처의 개념을 실제 구현 언어로 어떻게 연결시킬 것인가다. 이 책의 각 장에서 이야기하는 주제들은 그 주제만으로도 상당한 학습이 필요한 내용들이다. 그러나, 적어도 이 책은 소프트웨어 아키텍처에 관심을 갖고 파악하고 싶어하는 개발자들에게 도움이 될 것을 확신한다. 이 책을 통해 아키텍처 관련된 주요 품질속성과 아키텍처 관련 주제를 확인하고 파이썬 예제를 하나하나 살펴보면 보면 어느새 앞서 말한 두 가지 어려움의 상당 부분 해결될 것이라고 감히 생각한다.

프로메테우스, 오픈소스 모니터링 시스템

소프트웨어라는 용어가 생긴 이후 관련 분야는 점점 더 빠르게 변하고 있고, 변화의 속도는 점점 더 빨라지고 있습니다. 빠르게 변화하는 분야 중 하나가 IT 인프라스트럭처 부분입니다. 관리해야 하는 인프라 구조는 점점 더 복잡하고 더 많은 대상을 더 빠르게 처리해야 합니다. 이러한 IT 인프라스트럭처와 함께 빠르게 진화하는 분야 중 하나가 모니터링 분야입니다. 모니터링 분야는 이전에도 있었지만, 지금은 시스템 관리자들이 모니터링 제품 없이 서비스나 서버를 운영하는 것은 상상하기도 어렵습니다. 모니터링의 필요성이 더 크게 부각된 시점은 한정된 자원을 효율적으로 관리해야 하고 자원의 상태가 끊임없이 변화하는 클라우드 환경이 본격적으로 도입되기 시작하면서부터입니다. 프로메테우스는 2012년부터 시작된 프로젝트로 쿠버네티스에 이어 2016년에 CNCF(Cloud Native Computing Foundation)의 두 번째 프로젝트가 되었습니다. 이후, 많은 사람들의 관심과 더불어 사실상의 표준 오픈소스 모니터링 시스템으로 자리잡았습니다. 이 책은 프로메테우스에 대해 알고 싶어 하는 누구나가 참고할 수 있는 책입니다. 국내에는 이제 막 알려지기 시작한 프로메테우스에 대한 책이라 기술 용어 등을 한글로 옮기는 작업은 다소 어색함도 있었지만, 독자들이 이 책을 모두 읽게 되면 프로메테우스가 상상 이상으로 간단하고 사용하기 편리한 시스템이란 사실에 공감할 것이라 생각합니다. 별도의 빌드 없이 압축만 풀면 끝나는 설치 환경, 모니터링 시스템이라고는 믿어지지 않는 단순하고 명료한 웹 기반 GUI, 그런 단순함을 완벽하게 메워주는 강력한 PromQL과 다양한 모니터링 대상을 지원하는 익스포터에 이르기까지, 이 책은 모니터링에 대한 재미있고 흥미로운 경험을 제공할 것입니다. 이 책이 프로메테우스와 함께하는 모니터링 여정에 도움이 되길 바랍니다.

GitHub Essentials

소프트웨어와 관련된 모든 분야가 빠르게 변하고 있다. 개발 언어부터 프로세스, 개발 조직과 문화 모두가 원하든 원하지 않든 빠르게 변하고 있다. 이러한 변화 가운데 가장 기본적이면서 개발의 근간이 되는 변화 중 하나는 소스 코드의 변경 관리라고 생각한다. 현재 가장 기본적이면서도 개발자들이 선호하는 코드 관리 시스템인 Git을 기반으로 하는 GitHub는 수 많은 오픈소스의 성장과 더불어 선도적인 코드 호스팅 플랫폼으로 성장했다. GitHub의 효율적인 활용을 위해서는 GitHub의 기본적인 기능과 더불어 GitHub에서 제공하는 다양한 부가 기능을 알고 있어야 한다. GitHub의 활용은 개발에 있어 기본적인 요구사항인 동시에 개발자에게는 필수적인 개발 역량이 돼가고 있다. 이 책은 개발자가 GitHub를 활용하는 데 필요한 기본적인 사항을 포함하고 있다. 이 책이 GitHub의 강력한 기능을 파악하고자 하는 개발자 분들께 많은 도움이 됐으면 합니다.

JIRA 시스템 구축과 활용

소프트웨어 개발의 성공 요소 중 하나가 개발 인프라입니다. 효율적이고, 개발자 친화적인 개발 환경의 구축은 소프트웨어 개발 기간을 단축시키고, 소프트웨어의 품질을 높일 수 있습니다. 지라(JIRA)는 효율적인 협업을 위한 이슈 트래킹 도구로, 지라를 이용하면 소프트웨어 개발자뿐 아니라 관리자, 테스터 상호 간의 의사소통과 업무 효율을 높일 수 있을 것입니다. 지라는 조직의 필요에 따라 이슈 타입의 추가, 워크플로우 정의 등 다양한 방법으로 최적화할 수 있으며, 컨플루언스(Confluence) 같은 애틀라시안(Atlassian) 사의 다양한 제품과 연동되는 장점이 있습니다. 또한, 다양한 추가 기능을 통해 이슈 관리 이외의 애자일 프로젝트 관리 등 다양한 기능을 추가할 수 있습니다. 따라서 조직의 규모나 조직이 사용하는 프로세스의 복잡성에 구애받지 않고, 대부분의 조직에서 지라를 활용하는 것이 가능합니다. 지라는 다양한 기능과 장점이 있지만, 애틀라시안 사의 방대한 분량의 지라 매뉴얼을 통해, 많은 시간과 노력을 들이며 이러한 지라의 기능을 파악하는 것은 개발자나 관리자가 겪어야 하는 어려움 중 하나였다고 생각합니다. 이 책을 통해 개발자 여러분이 지라에서 사용되는 기본 개념과 핵심적인 기능을 빠르게 파악하고 현업에서 지라를 활용하는 데 많은 도움을 받을 수 있기를 바랍니다.

JIRA Agile Essentials

이제 애자일은 유행이 아닌 필수가 됐습니다. 실제로도 많은 회사와 조직에서 애자일을 적용하기 위해 노력하고 있습니다. 애자일을 적용하는 데 있어 여러 가지 제약 사항 중 하나는 애자일 프로젝트를 관리하기 위한 도구라고 생각합니다. 실제로 (소규모로) 애자일을 적용하는 초기에는 화이트보드와 스티커 노트를 통해 과제의 진행 사항을 관리하는 것이 가능하며, 개발자들이 애자일에 대해 배워가는 초기 단계에서는 이러한 방법이 상당히 유효합니다. 그러나 애자일을 더 큰 조직이나 대규모 프로젝트에 적용하려거나 효율적인 애자일 프로젝트 관리를 위해서는 적절한 애자일 도구의 사용이 프로젝트를 성공으로 이끄는 필수 요소라 할 수 있습니다. 지라 애자일JIRA Agile은 지라의 강력한 기능을 활용하면서 애자일 프로젝트의 관리를 가능하게 해주는 지라의 플러그인입니다. 지라의 모든 기능을 활용하면서 지라 애자일을 통해 애자일 프로젝트를 관리한다면 조직의 경쟁력을 높이고, 애자일을 효율적으로 활용하는 데 많은 도움이 될 것입니다. 이 책을 통해 지라 애자일에서 사용되는 기본 개념과 핵심 기능을 빠르게 파악하고, 지라 애자일을 현업에서 활용하는 데 많은 도움이 되었으면 합니다. 마지막으로 이 책이 나오기까지 도움을 주신 많은 분과 사랑하는 가족에게 감사의 마음을 전합니다.

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