그림으로 공부하는 마이크로서비스 구조
다루사와 히로유키 외 지음, 김완섭 옮김 / 제이펍 / 2022년 8월
평점 :
장바구니담기


이책은 마이크로 서비스 구조에 와 기술에 대해서 설명하는 책이다.

실질적으로 구축을 하는 내용보다는 실제 구조는 와 동향에 대해 알려주는 책이라 볼수 있다.

1. 디지털전환 : 마이크로서비스가 중요해진배경


DX보고서에 의하면 it업계나 관련회사에서 인재 부족현상이 발생하며 이는 기술,투자,비지니스에서 악영향을 끼쳐 경제적 손실을 초래 할것이라 보고 있다. 비지니스 운영 문화를 혁신하려면 시장의 빠른변화 대 대응하다록 조직구성을 하라는 내용을 담고 있다.

2. 클라우드 네이티브 컴퓨팅과 마이크로서비스


대규모이면서 복잡한 시스템이 마이크로 서비스로 추진하기에 적합하다.

대규모 비지니스 도메인의 디지털화, 100명 규모의 대규모 개발팀, 여러 시스템의 통합등 대규모 시스템 개발을 규칙을 정해서 일관성 있게 운영하는 것은 어려운일이고, 이런경우 대상영역을 분할하고, 각각을 독립적으로 개발/운영하는 마이크로 서비스가 적합하다고 말하고 있다.


3. 마이크로서비스 아키텍처의 기본


신규로 릴리스하는 서비스가 기존 모노리스에 의존하고 있다는 것은 기존 모노리스의 교체나 파기가 신규서비스 에도 영향을 줄수있으므로, 기존 모노리스에 영향으 주지 않게 설계하는것을 권한다


4. 마이크로서비스 패턴


리차드슨의 마이크로서비스 패턴에 중 중요한 패턴에 대해 설명한다.



5. 컨테이너, 쿠버네티스, 서버리스



서버리스의 장점

인프라 관리나 범용적인 서비스를 플랫폼에 위임하여 이벤트 주도 함수에 집중해서 애플리케이션을 개발할 수 있다.

배포 후에도 코드가 실제로 실행되는 시간에만 과금되.ㅁ

서버리스 단점

현재는 플랫폼이나 커뮤니티가 아직성숙하지 않은 상태다.

기존 애플리케이션을 마이그레이션하려면 난이도가 높다.

서버리스의 특징과 도커를 통해 컨테이너를 실행해보고, 쿠버네티스 기능에 대해 이번장에서는 설명해준다.


6. 서비스 메시


그물형태, 즉 메시 형으로 연결돼 있어서 마이크로 서비스 간 통신을 관리하는 구조를 서비스 메시라고 한다.

서비스 메시는 제어 플레인과 데이터 플레인이라는 두 가지 컴포넌트로 구성된다.

제어 플레인은 서비스 메시를 관리하는 것으로, 서비스 검색 등의 관리에 필요한 정보를 보관하거나 구성 변경 등의 관리 명령을 내린다.

데이터 플레인은 제어 플레인이 내린 지시를 받아서 서비스 통신을 제어하거나 관리에 필요한 정보를 제어 플레인에 전송한다.

데이터 플레인은 서비스 구현시에 내장되는 것이 아니라 사이드카 패턴이라고 하는 방법으로 각 서비스에 부속되는 형태다.

사이드카 패턴은 보조적인 기능을 서비스와 분리해서 별도의 컴포넌트로 배포하는 분산 시스템의 설계 패턴 중 하나다.


7. 마이크로서비스의 개발과운영

대규모 분산 시스템을 마이크로서비스로 구성한 경우의 장점

  1. 마이크로 서비스 방식에서는 서비스 단위로 배포할수 있어서 버그 수정이나 기능 릴리스가 쉽다.

  2. ddd 설계를 활용하므로 책임범위나 서비스 간 의존 관계를 명시적으로 나눌 수 있다.

  3. 각 서비스의 규모가 작아져서 구축, 테스트, 배포까지 적은 인원으로 개발하기 쉽다.

  4. 각 서비스의 담당 범위에서 책임 권한이 확실하다면 자유롭게 개발해서 배포를 진행할 수 있다.

여기서 자유라는 것은 기술 스택 전반을 의미한다.

5. 서킷 브레이커 등으 ㄹ구현해 두면 설령 장애가 발생해도 사용자에게 파급되는 장애 영향을 국소화할 수 있다.

6. 자신이 담당하고 있는 서비스가 다른 사람이 담당하고 있는 서비스에 주는 영향을 줄일수 있다.

8. 클라우드 배포 모델 동향

하이브리드 클라우드

서로 다른 클라우드 배포 모델을 조합하여 사용하는 형태를 말한다.

멀티 클라우드

여러 회사가 제공하는 클라우드 서비스를 동시에 사용하는 것을 멀티 클라우드 라고 한다.

분산 클라우드

분산 클라우드란 퍼블릭 클라우드 서비스를 다양한 물리 장소에 분산시켜서 퍼블릭 클라우드 제공사가 서비스의 운영, 통제, 발전에 대한 책임을 계속해서 지는 것이다.

에지 컴퓨팅

에지 컴퓨팅이란 엔터프라이즈 애플리케이션을 IOT 장비나 에지 서버 등 데이터 소스와 가까운 곳에서 실행하는 분산 컴퓨팅 프레임워크다.

서평

각장의 주요 내용을 요약해보았고, 자칫 딱딱 할수있는 주제를 읽기쉽게 그림과 필요한 내용들을 알려주는 책이다.

마이크로 서비스 등장의 배경부터 현재 동향까지 다루고 있어 마이크로 서비스가 무엇인지 접하고자 하는 사람에게 추천하고 싶은 책이다


"제이펍으로 부터 제공받은 책으로 작성된 리뷰입니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
이것이 자료구조+알고리즘이다 with C 언어 - 문제 해결 능력을 키워주는 자료구조+알고리즘 입문서 이것이 시리즈
박상현 지음 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기



자료구조 와 알고리즘에 대해 c언어 기반으로 다룬 책이다.

c를 기본적으로 문법은 익힌정도에서 넘어와야되는 책이고,알고리즘과 자료구조는 인터뷰시 단골 소재 이다.

그만큼 알고리즘과 자료구조를 이해하는 상태에서 코딩이 들어가면, 코딩에 녹아들어 좀더 좋은 코드를 만들어 낼 수 있다고 개인적으로 생각한다.


책에서 애기하는 학습로드맵이다.

자료구조와 알고리즘에 대해 이해를 하다보면 최종 알고리즘 설계기법까지 이해할수있는 로드맵을 제시하고 있다.



스택에 대한 구조에 대한 설명을 하고 있다.

해당설명과 같이 그림과 자세한 설명으로 독자의 이해를 돕고 있다.


ming64 를 설치하여,vsc 에서 코드를 실행해보았다.

datset에 정보에서 구매포인트가 671.78 인 데이터를 바이너리 서치를 통해 찾아내는 알고리즘이다.



id :1780 에서 해당데이터를 찾을수가 있다.

책에서 설명하는 최단경로 탐색이나 문자열 탐색같은 부분은 실무에서도 충분히 활용가능한 알고리즘 들이다.

c언어를 활용한 자료구조와 알고리즘을 파악하는데는 이보다 좋은책은 없는것같다.

"한빛미디어 제공으로 작성된 리뷰입니다. "





댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
쏙쏙 들어오는 함수형 코딩 - 심플한 코드로 복잡한 소프트웨어 길들이기
에릭 노먼드 지음, 김은민 옮김 / 제이펍 / 2022년 4월
평점 :
장바구니담기


요약

먼저 이책은 함수형 코딩에 대해 설명하지만 어려운 함수형 언어를 대신해 javascript 를 가지고 어떻게 코딩하면 좋은지를 소개하는 책이다.

javascript 만 가지고도, 충분히 함수형 코딩에 대해 이해할수있게 만들어준 책이고, 함수형 코딩이라는 정의가 특정언어를 지칭한다고 보기보단, 디자인패턴에 좀더 가까웠다.

함수형 프로그래밍이란

책에서 정의하는 함수형 프로그램이란 아래와 같이 설명하고 있다.

부수효과 : 함수라 리턴값 이외에 하는 모든일을 말한다.

순수 함수 : 인자에만 의존하고 부수효과가 없는 함수이다.

이책을 읽는 기본원칙

이책에서는 함수형 프로그래밍 의 세계는 방대하기 때문에 모든 지식을 다 배우기는 힘들다라는 애기를 하고 있다.

따라서 아래 원칙을 애기한다.

특정언어 기능에 의존하지 않아야 한다

실용적이라 바로 쓸수 있어야 한다

현재 가지고 있는 코드와 관계없이 쓸수 있어야 한다

계층형 설계 원칙

액션 : 호출횟수와 시저메 의존하는것

계산 : 어떤것을 결정하거나 계획하는 것

데이터 : 변경 불가능한 데이터를 가능한 많이 쓰려고 하는것


액션에서 계산빼내기


결국 여러 동작을 취하던 코드를 리팩토링하여 계산과 액션을 구분하여 사용하도록 권장하고 있다.

원래 코드에서 계산부분을 새로운 함수로 지정하여 분리한다.

이와 같은 방식을 서브루틴 추출하기 라고 한다.


계층형 설계 패턴

크게4개의 패턴을 설명하고 각장에서 패턴의 지식들을 설명한다.


타임라인 격리하기

타임라인이란 빠르게 클릭하였을대 액션이 예상과는 다르게 일어나는 경우 버그를 줄일수있는 방법을 설명하고 있다.

책에서는 전역변수를 줄임으로써 많은 자원이 공유되는것 자체를 배제하는 방법을 권하고 있다.


반응형 아키텍처와 어니언 아키텍처

반응형 아키텍처는 코드에 나타난 순차적 액션의 순서를 뒤집고 아래순서를 참고한다.

  1. 원인과 효과가 결합된것을 분리한다.

  2. 여러 단계를 파이프 라인으로 처리한다.

  3. 타임라인이 유연해진다.

책의 장점

책이 500페이지 넘도록 방대한 양을 담고있고, 현업개발자들이 한단계 더 승격할수있는 내용을 담고 있다.

틈틈히 읽어두고 실무에 반영한다면 누구보다 좋은 코드를 만들수 있을것이다.

책의 단점


번역서다보니, 예제코드를 페이지번호와 영어이름 그대로 소스를 제공한다.

문제는 저기 페이지번호가 번역서랑은 안맞다. 좀 찾기 어려운점이있어, 감안하고 봐야된다.

예제코드는 그렇게 중요하지는 않고 본문이 중요하니 그점 참고해서 보면 좋을것 같다.

추가자료 : grokkingsimplicity.com

예제코드 : https://www.manning.com/downloads/2263


"제이펍으로 부터 제공받은 책으로 작성된 리뷰입니다."





댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
실무에 바로 쓰는 일잘러의 보고서 작성법 - 한눈에 읽히는 기획서, 제안서, 이메일 빠르게 쓰기 일잘러 시리즈
김마라 지음 / 제이펍 / 2020년 11월
평점 :
장바구니담기



사실 사회생활 을 하면서 보고서에 대한 작성방법과 프로세스에 대해 크게 고민 해본적이 없는것같다.

이책은 저자가 처음부터 문서를 통해 겪었던 에피소드를 통해 문서의 필요성을 깨닫게 해준다.



제안서에는 상대에 대해 전하는 메세지를 담아야되고

문서를 가볍게 상대방에게 카톡으로 전한다고 생각하고 메시지를 꺼내라고 한다.

제안서를 작성시 말을 만들어내기가 어려운데 저자의 애기처럼 쉽게 생각해볼 필요가 있을것같다.



구성요소를 생각하되 특정 구성요소에 규정하지말고 본인이 하고싶은 이야기를 전달하라는 말이 와닿았다. 규정되는 단어가 많을수록 생각하기가 어려워진다는 느낌이 든다. 


문서의 완성도를 결정짓는 단계로는

1. 절대 눈으로 읽지 않을것.

2. 발표를 위한 문서가 아니더라도 무조건 읽어볼것.

3. 입밖으로 꺼내는 매끄러운 대화가 될때까지 무한 반복할것.

문서의 완성도는 디자인에만 신경쓸때가 많았다.


발표 문서를 매끄럽게 내용을 녹이는것도 중요할것 같다.



디자인에만 쓰지말고 가독성을 높이는데에 중점을 두라고 하고있다.



파워인트의 디자인과 배치엥 대해 before & after 로 비교하여 쉽게 설명해준다.

문서의 순서 정리.

1. 문서의 작성을 시작을 시작하려면 반드시 듣는 사람에게 내가 전할 메세지를 생각한다.

2. 메시지로부터 구성요소를 정하여 핵심 메시지, 설명/근거 , 시각 자료를 문서에 담는다.

3. 그리고는 첫장으로 돌아가 장을 넘기면서 혼잣말로 소근소근 내용을 흝으며 말을 해본다.

4. 말이 꼬인다면 순서를 다듬거나, 말이 어색하다면 자료를 더 채우거나 빼기도 하고, 말이 너무 길어진다 할때는 그 앞에 목차를 넣고, 같은 키워드를 반복해서 말하게 되면 소제목을 붙여 주기도 한다.

5. 빠르게 읽히는 한장, 한장을 위해 상대방의 이해의 단계가 짧은 커뮤니케이션으로, 내말과 문서가 읽히는 시선이 같이 갈수있는지를 검토한다.

6.이 작업을 끊임없이 반복하여 문서의 첫장부터 긑장까지 말이 매끄럽게 들리고 내가 결론적으로 하려고 했던 메시지가 잘 전달되면 가독성을 위한 문서 디자인을 한다

이책은 문서를 접근하는 법부터 파워포인트 요령까지 책은 크지 않아도 내용은 정말 알찼다.

작성전에 정리된 내용을 한번씩만 정독하고 보고서를 작성하면 좀더 나은 보고서를 만들수있을것같다.


"제이펍으로 부터 제공받은 책으로 작성된 리뷰 입니다"



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js - 자바스크립트만 알고 있다면 시작하기에 충분하다!
샨칭 차이 외 지음, 박해선 옮김 / 길벗 / 2022년 3월
평점 :
장바구니담기



사실 텐서플로우 js 를 접하면서 가장 의문스렁웠던 점이

js 로 제대로된 머신러닝을 할수있을까?

라는 의문점이었다.

이책은 그의문점을 하나씩 해결해 주는 고마운 책이었다.

결론은 js 를 활용하여 node.js 에서는 웹브라우저 밖에서 자바스크립트를 실행할수 있기때문에 RAM , 파일 시스템과 같은 네이티브 자원을 활용할수있고, tensorflow.js 는 tfjs-node 라 불리는 node.js 버전을 제공한다.

c++과 cuda 코드를 컴파일한 네이티브 텐서플로 라이브러리를 직접 방인딩 하기때문에 텐서플로가 사용하는것과 같은 병렬화된 cpu와 gpu연산 커널을 사용할수있다.

실제 저자의 경험으로는 tfjs-node로 훈련하는정도의 수준이 케라스 를 사용하는 속도와 비슷하다고 하니 놀라울수밖에 없다.



//// // Construct and compile model. //// const model = tf.sequential(); model.add(tf.layers.dense({ units: 1, inputShape: [1], })); // Use a slower learning rate for illustration purposes. const optimizer = tf.train.sgd(0.0005); model.compile({optimizer: optimizer, loss: 'meanAbsoluteError'});


그리고 예제 소스들을 보면 실제로 tensorflow 와 명령어 들이 굉장히 유사하고 패턴이 비슷하기 때문에

텐서플로우에 적응한사람들이면 크게 이질감 없이 학습할수있었다.


이론적인 설명이나 적절한 예제들이 포함되어있어 처음 tensorflow.js 를 접하는 사람도 어렵지 않게 많이 신경쓴 흔적들이 보인다.


책에서는 tensorflow js 를통해 충분히 python 에서 하던 머신러닝을 대다수 커버할수있다는것을 증명해주었고,

실무에서 파이썬에서 실행된결과를 결과파일을 만들어서

웹에서 머신러닝결과를 활용한적도 있는데 이럴때에는 tensorflowjs를 활용하며 더 편할것같다는 생각이든다.

희귀분석외에도 rnn과 cnn등 텐서플로우 js를 활용한 다양한 예제들을 다루고 있어 예제코드 역시 직접 실행해 보고

실습할수있어서 좋았다.

js 에서도 충분히 머신러닝이 가능하다는 것을 알려준 책이고 web에서 머신러닝이 필요한 사람이면 이책을 추천한다.



"길벗출판사로 부터 제공받은 책으로 작성된 서평입니다."



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