클라우드 네이티브 애플리케이션 디자인 패턴 - 애플리케이션의 배포와 운영을 고려한 7가지 설계 패턴
카순 인드라시리.스리스칸다라자 수호타얀 지음, 박수현 옮김 / 한빛미디어 / 2022년 6월
평점 :
장바구니담기


도서 '클라우드 네이티브 애플리케이션 디자인 패턴'은 새로운 클라우드 네이티브 애플리케이션을 만들거나 기존 애플리케이션에 클라우드 네이티브를 전환하려고 할 때, 개발자가 어떤 기술을 쓰고 어떤 구조를 쓸 것인지 가이드를 해주는 책이다. 같은 출판사의 '클라우드 네이티브'라는 책을 통해 클라우드 네이티브에 대해 배웠다면, 이 책을 통해 더 실용적이고 현실적인 사용을 할 수 있게 된다.



오렐리의 책답게 표지는 멸종 위기 동물인 말레이시아 소공작이 그려져 있다. 아주 제한된 범위에서 서식하는 반면, 번식률도 낮고 번식 속도도 낮다. 다른 오렐리 책들이 그렇지만, 책 내용과는 별 관계가 없다. 표지를 기획한 사람은 클라우드 네이티브 애플리케이션 디자인 패턴과 말레이시아 소공작이 무언가 관련이 있다고 생각했을지도 모르겠지만.



이 책은 클라우드 네이티브의 기본 사항을 간단하게 학습하고, API와 데이터, 이벤트 및 스트림을 이용한 실무 패턴을 익힐 수 있도록 가르쳐준다. 책의 내용을 보면 놀랍게도 그 방법이 너무나 디테일한데, 한 번 읽고 처박아 둘 책이 아니라 두고두고 찾아보기에도 좋은 구성으로 되어 있다.



이 책을 통해서 독자(개발자)는 적합한 구조와 기술 스택을 선택하고 개발에 착수하는 것뿐이다. 옮긴이의 말대로 개발을 할 때는 어떤 방향으로 나아갈지를 정하고 시작하는 것과 그렇지 않은 것에 큰 차이가 있다. 기획서를 작성할 때도 방향이 정해져 있는 기획과 뭘 해야 할지 아직 명확하지 않은 기획서를 쓸 때는 작업시간이 천지차이로 차이가 나기 때문이다. 시간이 곧 비용인 개발 현장에서 어떤 방향으로 개발할지 가이드를 받을 수 있다는 것은 훌륭한 사수와 함께 하는 것과 마찬가지다. 그런 의미에서 이 책은 정말 유용할 수밖에 없다.



'클라우드 네이티브'라는 책이 있지만, 그 책을 보지 않은 사람이라도 '클라우드 네이티브'가 무엇인지 알 수 있도록 1장은 클라우드 네이티브에 대해 배우고 지나가는 내용이 수록되어 있다. 클라우드 네이티브 애플리케이션의 주요 특성에 대해 알아보고 디자인 패턴이 왜 중요한지를 일깨워준다.


그 이후로는 다양한 패턴들을 배우게 되는데, 통신 패턴, 연결 및 구성 패턴, 데이터 관리 패턴, 이벤트 기반 아키텍처 패턴, 스트림 처리 패턴.



그리고 API 관리 및 사용 패턴의 총 6개의 패턴을 배운다. 마지막 8장에서는 클라우드 네이티브 패턴을 사용하는 실제 예제들을 통해 다양한 패턴을 알아볼 수 있다.



이 책에서는 애플리케이션의 패턴을 배우고 구조와 동작을 시각적으로 배워볼 수 있다. 실행 플로우를 그림으로 시각적으로 보여주기 때문에 글자로 되어 있는 것보다 보다 더 쉽게 이해할 수 있다.



내가 꼽은 이 책의 가장 좋은 점은 모든 디자인 패턴마다 핵심 포인트를 다뤄주고 있다는 점이다. 이 부분이 이 책의 가장 큰 강점이다. 각 디자인 패턴마다 어떻게 동작을 하는지, 어떻게 사용할 수 있는지, 고려해야 할 사항들, 그리고 관련 패턴들까지 정말 친절하게 다뤄주고 있다. 



특히 고려해야 할 사항들이 경험이 부족해 직접 배우거나 경험하지 못한 실수들을 겪지 않을 수 있도록 도와준다는 점에서 나는 이 책이 정말 친절하고 유용한 책이라고 생각했다.



그리고 앞에서 학습한 디자인 패턴들을 표로 다시 한번 정리해 준다. 문장으로 되어 있는 부분을 표로 간단하고 보리 좋게 정리해 줌으로써 활용도를 높여준다. 패턴과 함께 사용하면 좋은 경우와 사용해서는 안 되는 이유. 그리고 패턴의 이점까지 다뤄주기 때문에 개발에 드는 시간을 큰 폭으로 줄여주고 개발 비용을 줄이는 데에 한몫하기도 한다.



개인적으로 현재 업무에서 가장 실용적으로 다가왔던 부분은, 5장의 '이벤트 주도 아키텍처 패턴'이다. 특히 '딱 한 번만 처리하기' 부분이 꽤 쓸모 있었다.


클라우드 네이티브 애플리케이션을 개발하거나, 혹은 기존 애플리케이션을 클라우드 네이티브로 전환하고자 하려는 개발자에게 다른 어느 책보다 유용하게 쓰이는 책이 될 것이다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 얄팍한 코딩 지식 - 비전공자도 1:1 과외하듯 배우는 IT 지식 입문서 혼자 공부하는 시리즈
고현민 지음 / 한빛미디어 / 2022년 5월
평점 :
구판절판


프로그래머랑 같이 일하는 모든 비 프로그래머를 위한 책. 혼자 공부하는 얄팍한 코딩 지식 책이 나왔다. 사실 이 책이 처음 출시되었다고 한빛미디어의 광고메일을 보았을 때, 에... 현업에서 개발자랑 일하면서 이런 것도 모르는 사람이 있다고?!라고 생각했는데 수요를 보면 생각보다 많은 것 같다. 사실 간단하게 책 소개만 보고 나한테는 쓸모없다고 생각했던 이 책을 굳이 손에 든 이유는 그럼에도 후배 기획자들에게 추천해 주기에는 좋을 책이라고 생각되었기 때문이다. 남에게 책을 추천하기 전에 반드시 읽어보는 성격이기 때문에 책을 읽어 봤는데, 생각보다 쓸모 있는 내용들이 많았다. 현업 기획자 9년 차인 나에게도.



혼자 공부하는 얄팍한 코딩 지식 서적은 다른 여타의 '혼공 시리즈'와 마찬가지로 책등과 전면에 같은 컬러로 포인트를 준 깔끔한 디자인이다. 흰 바탕에 큼직한 글씨로 본론에 충실한 것이 참으로 개발자스러운 디자인이랄까. 저자가 운영하는 유튜브 강의를 함께 참고하며 볼 수 있다는 점이 이 책의 또 다른 장점이다.



뒷면의 추천사에서 밝히듯이 이 책은 비전공자도 이해하기 쉽도록 일러스트와 비유로 용어들을 쉽게 풀어서 설명해 준다. 하지만, 솔직히 말해서 내가 보기엔 IT 업계의 일에 대해서 전무한 사람은 용어를 설명하기 위한 용어도 이해를 못 할 가능성이 있어 보인다. 아예 전무한 사람보다는 이미 이 업계에서 비 개발자로 일하고 있고, 본인 업무 범위를 벗어난 전체 프로세스에 대한 이해를 높이고 싶거나, 프로그래머와 원활한 소통을 이어갈 지식을 원하거나, 본인이 개발자로 전향을 하고 싶어 하는 사람에게 많은 도움을 줄 것 같다.



책의 뒤에는 별책으로 용어 노트가 붙어 있다. 맨 앞의 목차에는 가나다순으로 IT 용어들이 정리가 되어 있고, 용어 노트 안에서 해당 페이지로 가면 해당 용어에 대한 간단한 설명이 적혀 있다. 이 내용만으로 부족하다면, 용어 설명 옆에 적혀 있는 본 책 페이지로 이동해서 상세한 정보를 찾아볼 수 있게 되어 있다. 노트만 분리해서 가까운 곳에 두고, 필요할 때 후루룩 찾아본 후, 내용이 더 필요하면 책을 찾아보면 된다.



책에서 배울 수 있는 내용을 한눈에 보기 좋게 그림으로 흐름을 그려 둔 학습 로드맵이 있다. 총 3장으로 이루어진 책에서 1~2장은 IT 업계에서 자주 사용하는 기초적인 용어와 개념들을 설명하고 3장은 개발자의 길로 들어서려는 독자를 위한 보다 본격적인 내용을 위주로 다룬다.



독자의 바탕 지식에 따라 개발자는 대체 뭐 하는 사람인가. 프로그래밍 언어도 외국어인가요?라는 소제목을 보면 웃음이 나올 수도 있을 것 같다. 1장의 첫 번째 챕터에서 개발자를 분류해 둔 기준이 원론적이고 실제로는 겹치는 부분들도 있지만, 기본적인 내용을 숙지한다는 것에 목적을 두고 있기 때문에 크게 무리는 아닌 것 같다.



첫 장은 프로그래머, 개발자가 하는 말을 '알아들을 수 있게 하자'라는 것에 목표를 두고 있다면 2장부터는 개발자와 소통하기 위한 본격적인 배경을 공부하게 된다. 몰라도 크게 상관없지만, 알고 있다면 개발자들의 '와- 답답하다.'라는 눈빛을 받지 않아도 되는 내용들이다.



3장은 개발자의 길로 들어서기 위한 본격적인 프로그래밍 용어 알기를 학습한다. 그렇다고 해도 현업 개발자가 보기에는 너무 뻔한 이야기들이라는 점에서 개발자 입문서로 보기에는 애매하긴 하다. 그래도 언어에 대한 원론적인 부분들보다는 너무나 당연해서 아무도 알려주지 않고 알려줘야 한다고 생각조차 하지 않을 것 같은 내용들을 다루고 있다. 그런 면에서 유용하다고 볼 수 있다. 



재미있는 질문이라고 생각하겠지만, 사실, 외국어는 맞다.



현업에서 환경에 따라 생각보다 다르게 진행되는 코드 리뷰. 원론적인 코드 리뷰는 이 책에서 말하는 내용이 맞고 현업에서의 코드 리뷰는 회사마다, 환경마다, 현장마다, 프로젝트마다 다르기도 하니까 참고만 하는 것으로. 이런 것으로 알고 코드 리뷰를 기대했다가 크게 실망하는 경우가 생길 수도 있다.


전체적으로 쓸모가 아주 많은 책. 비 개발자이면서 개발자와 함께 일하고 있다면 숙지하거나 곁에 두어야 할 책이다. 책을 직접 읽어보기 전보다 읽어보니 훨씬 더 쓸모 있는 책이었다.




 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
완성된 웹사이트로 배우는 HTML&CSS 웹 디자인 - 5개 예제로 배우는 효율적인 웹사이트 제작 노하우
Mana 지음, 신은화 옮김 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기


한참 구글 블로그의 THML과 CSS를 수정하며 블로그를 꾸미고 있던 차에 이 책을 받게 되었다. 한빛미디어의 따끈따끈한 5월 신간, '완성된 웹사이트로 배우는 HTML&CSS 웹디자인'이다. 둥글게 몸을 만 고양이 한 마리와 시크한 선인장이 덩그러니 놓인 심플하면서 예쁜 표지의 책이다. HTML&CSS를 공부하다가 보면, 내가 작업한 것의 결과물이 어떻게 나오는지 잘 몰라서 감이 잘 오지 않을 때도 있고, 완성된 부분의 어느 부분이 어떤 스크립트가 쓰였는지 찾기 어려워 수정이 어려울 때가 있다. 이 책은 완성된 웹사이트를 예제로 보면서 배울 수 있기 때문에 그런 면에서 좀 더 내가 원하는 걸 직관적으로 찾아서 볼 수 있다.



구상하고 있는 웹 사이트를 어떻게 구현해야 할지 구체적인 부분을 몰랐던 사람, 이 웹사이트의 이런 표현은 어떻게 하는 건지 구글링을 하고 소스 보기를 해보면서 남의 페이지를 탐닉하던 사람, HTML, CSS의 기초 학습은 마쳤지만 응용이 막막했던 사람, 애니메이션 등의 움직임이 있는 멋진 웹페이지를 만들고 싶은 사람, 같은 구현을 하더라도 코드를 효율적으로 작성하고 싶은 사람을 위해 이 책이 만들어졌다.



이미 HTML과 CSS를 배운 사람을 대상으로 하지만, 책은 친절하게 웹 페이지 구조부터 알려준다. 웹사이트를 만드는 순서는 어떻게 되는지부터 기초를 다시 한번 짚고 넘어간다. 솔직히 말해서 기초 교육이 안된 생초짜도 책만 따라 하면 흉내는 낼 수 있을 것 같은 수준으로 가르쳐준다.



구현을 넘어서 디자인을 어떻게 뽑으면 더 예쁘게 보이는지, 구글 블로그를 꾸밀 때 자주 사용되는 이미 제작된 웹사이트를 커스터마이징을 할 때는 어떻게 하는지 등을 책에서 배울 수 있다.



모바일 환경에서 반드시 필요한 '다크 모드'를 대응하는 방법에 대해서도 다루고 있다. 블로그 사이트를 예제로 레이아웃을 배울 수 있고 반응형 웹디자인을 하는 방법에 대해서도 다룬다. 이론으로만 배우던 HTML의 요소들을 적재적소에 어떻게 사용하는지를 이 책을 통해 배울 수 있다. 웹디자이너로서, 웹 개발자로써 일하게 되면 주로 사용할 다양한 예제들, 랜딩 페이지, 블로그 사이트, 회사 사이트, 이벤트 사이트, 갤러리 사이트 등을 예제와 함께 배울 수 있으며 관리법과 심지어 사이트 올리는 방법까지도 다룬다. 솔직히 책 분량에 비해서 책 내용이 과하게 친절하기는 하다. 그래도 책만 잘 따라 한다면, HTML과 CSS를 겉핥기로 배운 사람이라도 웹페이지 커스터마이징을 할 수 있을 정도로 만들어 주기 때문에 한 권쯤 가지고 있으면 정말 유용할 것 같다. HTML 사전류의 서적도 좋지만 이렇게 현업에서 바로 써먹을 수 있는 내용들을 충실하게 다룬 책이 소장 가치는 더 높다고 생각된다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
동시성 프로그래밍 - Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z
다카노 유키 지음, 김모세 옮김 / 한빛미디어 / 2022년 4월
평점 :
장바구니담기


동시성 프로그래밍. Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A부터 Z까지를 학습할 수 있는 책. 이 책을 읽기 위해서 필요한 사전 지식은 C, Rust를 습득한 대학교 3,4학년 또는 대학원생 이상이며 포인터를 이해하지 못했다면 이 책을 읽기 어려울 수 있다. 아 그리고 멀티 코어를 다루는 내용을 생각한다면 이 책은 해당 내용에 대해선 많은 설명이 없으니 다른 책을 찾아보길 바란다.동시성 프로그래밍. Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A부터 Z까지를 학습할 수 있는 책. 이 책을 읽기 위해서 필요한 사전 지식은 C, Rust를 습득한 대학교 3,4학년 또는 대학원생 이상이며 포인터를 이해하지 못했다면 이 책을 읽기 어려울 수 있다. 아 그리고 멀티 코어를 다루는 내용을 생각한다면 이 책은 해당 내용에 대해선 많은 설명이 없으니 다른 책을 찾아보길 바란다.



이 책은 스레드를 처음으로 사용해 보고 싶은 분들이나, 스레드를 사용하고 있으나 이렇게 사용하는 것이 맞는지 의심이 드는 분들 혹은 느낌적인 느낌으로 사용하고 있었던 부분들을 좀 더 자세하게 설명해 준다.



먼저 동시성과 병렬성을 설명하는 부분을 보면 비슷하지만 다른 것, 본인도 이 책을 읽기 전엔 동시성과 병렬성이 같은 의미인 줄 알았다. 책에는 자세히 적혀 있지만 동시성의 경우 하나의 프로세스로 동시에 여러 가지 일을 처리하는 것을 의미하고, 병렬성은 동시에 여러 개의 프로세스로 하나 또는 여러 가지 일을 처리하는 방식을 의미한다. 이론적인 설명 부분들을 지나가면 스레드의 기초부터 설명을 한다. C언어를 사용하여 스레드를 생성하는 방법. 그리고 해당 소스 코드가 어떻게 동작하는지 등 아래 그림처럼 소스코드를 자세히 설명을 해준다.




이 책을 읽다가 보면 스레드를 사용하면서 그동안 궁금했던 것들을 알 수가 있다. 예를 들면 Intel CPU의 명령어 중에 AVX 명령어에 관한 설명이다. 이 책에서 알려주려 하는 것은 스레드를 사용하면 프로그램이 더 빨라지는지 느려지는지 같은 스레드를 좀 더 잘 사용하고 활용할 수 있도록 도와주는 책이다. 이 책에서 설명하는 내용들은 뮤텍스, 스핀락, 세마포어, 데드락, 재귀락, 코루틴, async 등 프로그래밍을 하면서 한 번씩 들어보거나 사용해 본 것들을 다르고 있다.



IOCP는 한 번쯤은 들어 봤을 것이다. 하지만 이 책에서는 async를 설명해 주고 있다.



그리고 각 스레드의 락을 사용하는 방법과 효율들에 대해서도 설명이 되어 있다. 스레드를 사용하면서 의문이 남거나 스레드를 공부해 보고 싶은 사람에게 추천한다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 만나는 WSL - 개발자 및 IT 전문가를 위한 리눅스용 윈도우 하위 시스템 실무 안내서
프래틱 싱 지음, 남정현 옮김 / 한빛미디어 / 2022년 2월
평점 :
장바구니담기


처음 만나는 WSL 아마 WSL이 무엇인지 한 번이라도 들어 본 적이 있다면, 현 개발자이거나 개발자였을 것이다.

WSL은 Windows Subsystem for Linux의 약자이다. 리눅스를 잘 따르고 원활하게 사용하는 분들에게는 필요가 없겠지만, 윈도우를 주로 사용하는 분들에게는 굉장히 좋은 기능이라고 생각한다. 굳이 가상머신을 설치하여 리눅스를 사용하는 방법도 있지만, 윈도우 안에서 윈도우 프로그램으로 된 기능들을 사용하여 원하는 리눅스의 기능을 사용할 수 있는 것이다.

구조가 저렇게 되어 있다고 하는데, 구조야 어떻게 되어 있든 윈도우에서 리눅스를 실행하고 사용할 수 있는 것이다. 


책은 크게 9챕터로 구성이 되어 있다.


당연히 WSL의 이론적인 설명부터 설치 방법, 개발 환경 구축, GUI 환경에서 리눅스를 사용할 수 있도록 Xfce 등의 내용들이 정리되어 있다. 윈도우를 사용하다 갑자기 리눅스가 필요하게 되었을 때 막연하게 가상머신에 리눅스를 설치해서 하는 것보다, WSL을 활용하여 원하는 작업을 하면 굉장히 효율적일 것이다.


그리고 이 책의 장점으로는 WSL을 활용하여 할 수 있는 것들과 윈도우 사용자가 리눅스를 사용하면서 놓칠 수 있는 부분들을 친절하게도 미리 모아 놓았다.


예를 들면, 윈도우와 리눅스 간의 대소문자 처리 방식 차이라든지

윈도우에서 비주얼 코드(VSCode)를 사용하여 개발하는 방법 등


윈도우 주 사용자가 리눅스를 이용하여 뭔가 할 일이 생겼다면, 이런 편리한 방법도 있으니 리눅스를 설치하기 전에 책을 보고 WSL를 한 번 사용해 보는 것도 좋을 것 같다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo