내블로그 | 랜덤블로그 쪽지
지니랜드
http://blog.yes24.com/bumjin
리스트 | RSS
태그 & 테마링 | 방명록
지니랜드
지니랜드
프로필 쪽지 친구추가
8월 스타지수 : 별4
댓글알리미 비글 : 사용안함
전체보기
기본 카테고리
나의 리뷰
Wish List
My Story
My Favorites
나의 리뷰
기본 카테고리
나의 메모
기본 카테고리
태그
자바8인액션 한빛리더스
2020 / 08
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
월별보기
나의 친구
나의 친구들
최근 댓글
내용이 없습니다.
새로운 글
오늘 3 | 전체 857
2005-01-02 개설

전체보기
[리뷰] 고전 컴퓨터 알고리즘 인 파이썬 | 기본 카테고리 2020-07-05 17:25
http://blog.yes24.com/document/12689470복사Facebook 보내기 트위터 보내기

[도서]고전 컴퓨터 알고리즘 인 파이썬

데이비드 코펙 저/최길우 역
한빛미디어 | 2019년 12월

내용     편집/구성     구매하기

파이썬으로 작성한 알고리즘 퀴즈풀이

위 상품을 구매하면, 리뷰등록자에게 상품판매대금의 3%가 적립됩니다. (상품당 최대 적립금액 1,000원) 애드온 2 안내

이번에 리뷰할 책은 "고전 컴퓨터 알고리즘 인 파이썬" 입니다.

이 세상에는 수많은 퀴즈 문제들이 있습니다. 아주 오래전부터 사람들은 주어진 조건하에서 문제들을 풀어왔습니다.
이런 문제풀이 과정을 컴퓨터가 처리할 수 있도록 코드화하는건 막막하고 쉽지 않습니다.
세월이 흘러 어느정도 풀이 과정에 대한 일반화등이 가능해지게 되어 수많은 알고리즘들이 쌓이게 되었습니다.

피보나치, 압축, 암호화, 하노이탑등으로 시작하여
미로찾기, 선교사와 식인종 강건너기, 4색 나라색칠하기, 
K평균 군집화, 신경망, 틱택토같은 적대적탐색등 수많은 흥미로운 문제들에 대한 풀이법을 단계별로 설명해줍니다.
그림이나 그래프등이 적절히 잘 들어가 있습니다.


코드는 길지 않지만  설명이 적당하다면 적당하고 짧다면 짧게 느껴지는거라 내부적으로 사용되는
stack, queue, DFS,BFS, a* 알고리즘, 이진탑색 등등 내부적으로 자료구조등이나 문제 혹은 풀이방법을 이해하지 못하면 
진도나가기가 쉽지 않은거 같습니다.
요새는 인터넷상에도 설명이 잘 되어있으므로  책을 읽으면서 이해가 안가거나 궁금한 알고리즘등은 웹검색 혹은 유투브검색을 병행하는것도 
괜찮을거 같습니다.
신경망관련 부분도 짧은 분량으로 다루다보니  너무 피상적으로만 다룬거 같습니다.


일단 알고리즘 혹은 자료구조 책의 특성상 말로 설명하고 pseudo code등으로 구현을 표현해야 하는데
파이썬의 간결한 문법 및 라이브러리로  pseudo code가 아닌 온전한 코드 구현체를 볼 수 있어서 좋았습니다.
다만 타입힌트는 변수나 함수등이 어떤 타입인지 명확하게 보여주는 장점은 있지만 코드가 장황해져 가독성이 떨어지는 단점이 있었습니다.
해답이 없는 연습문제는 딱히 도움이 안될 거 같습니다.


이 글이 좋으셨다면 SNS로 함께 공감해주세요.
댓글(0) 트랙백(0)
이 리뷰를 | 추천 0        
[리뷰] HeadFirst Go | 기본 카테고리 2020-05-27 12:20
테마링
http://blog.yes24.com/document/12543341복사Facebook 보내기 트위터 보내기

[도서]Head First Go

제이 맥가브렌 저/권민재 역
한빛미디어 | 2020년 03월

내용     편집/구성     구매하기

go언어를 재밌게 시작하고 싶다면

위 상품을 구매하면, 리뷰등록자에게 상품판매대금의 3%가 적립됩니다. (상품당 최대 적립금액 1,000원) 애드온 2 안내

이번에 리뷰할 책은 "HeadFirst Go"입니다.

Go는 구글에서 만든 프로그래밍 언어입니다. 
go 혹은 golang으로 불리우며 컴파일하면 각각의 플랫폼에 맞는 바이너리 실행파일이 생성됩니다.

이 책 또한 헤드퍼스트 시리즈답게  쉽게 쓰여졌습니다
500페이지 분량의 책이지만, 큼지막한 글씨의 코드 많은 그림으로 이루어진 부가설명등으로
마치 글을 읽고 있기보다는 PPT나 그림등을 보고 있다는 느낌이 드네요.

대상독자는 초급자대상 입문용이라고 생각됩니다. 
책의 목차는
문법기초, 조건문과 반복문, 함수, 패키지, 배열, 슬라이스, 맵, 구조체, 사용자 정의 타입, 캡슐화와 임베딩, 인터페이스,
실패 복구하기, 고루틴과 채널, 자동 테스트, 웹앱, HTML템플릿 으로 이루어져 있습니다.

이 책에서 좋았던 부분은 "부수면서 배우기"라는 코너가 중간중간 나오는데
초심자나 다른언어를 쓰다 go 언어를 쓰게되면 코드를 잘못 작성하거나 해서 오류가 났을때
익숙치 않은 에러메시지가 나와서 당황할 수 있는데, 이 코너에서 정상적인 코드 설명 후에
조금씩 코드를 망가뜨리고 그랬을때 어떤 오류가 어떤 이유로 실패하는지를 몇가지씩 보여주는데
언어를 처음 익힐때 도움이 많이 될 거라고 생각됩니다.

챕터마다 코드 퀴즈도 (객관식이긴 하지만) 내가 챕터를 제대로 이해했는지 판단할 수 있는 좋은 방법인거 같습니다.

C언어 이후에 간만에 포인터를 사용하는 코드를 봐서 걱정도 됐지만 예제수준의 내용으론 파악하기 문제가 없었고,
컴파일러에서도 어느정도 미리 잘못쓰여진 코드를 체크해주는거 같았습니다.

고루틴을 통한 동시성 지원, 코드의 타입과 변수명 순서가 다르다던지 struct구조체는 있는데 class는 없고, exception은 지원안하고 그대신 error를 리턴하게 하는등 여러가지 다른점이 있어서 go 언어를 배우려면 기본문법외에 별도의 best practice같은 걸 배워야 할 거 같습니다.

요새 나온 언어라서 쉽게 웹서버를 만들 수  있다던지, 자동테스트를 위한 패키지가 기본으로 들어가 있어서 토이프로그램을 만드는데는 
일단 좋을거 같은데, 뭐랄까 어플리케이션을 개발한다고 했을때 기존 파이썬, node, 자바등에서 go로 넘어가야 할 이유를 딱히 찾지는 못했습니다.
컴파일속도가 빠르다한들 각각의 플랫폼마다 별도 빌드를 해야한다는 점도 있고.


이 글이 좋으셨다면 SNS로 함께 공감해주세요.
댓글(0) 트랙백(0)
이 리뷰를 | 추천 0        
[리뷰] 배워서 바로 쓰는 14가지 AWS구축 패턴 | 기본 카테고리 2020-04-30 14:44
http://blog.yes24.com/document/12428685복사Facebook 보내기 트위터 보내기

[도서]배워서 바로 쓰는 14가지 AWS 구축 패턴

가와카미 아키히사 저/정도현 역
한빛미디어 | 2020년 03월

내용     편집/구성     구매하기

AWS의 서비스를 어떻게 조합하여 설계하면 좋을지에 대한 패턴들

위 상품을 구매하면, 리뷰등록자에게 상품판매대금의 3%가 적립됩니다. (상품당 최대 적립금액 1,000원) 애드온 2 안내

AWS는 아마존에서 제공하는 클라우드 웹 서비스입니다.
웹사이트 구축, 스토리지,  콘텐츠전송, 데이타베이스등을 민첩하고 탄력적으로 유연하면서도 보안성있게
제공해줍니다. 
우리가 선택에 따라 비용,사양, 제공서비스등이 엄청나게 차이가 날 수 있기에
처음 설계단계부터 목적에 맞는 사이트 구성이 필요합니다.

이 책은 여러가지 시나리오(목적)별로 AWS의 서비스를 어떻게 조합하여 설계하면 좋을지에 대한 것을 14가지의 패턴으로 정리하였습니다. (웹 시스템, 스토리지 시스템, 데이터분석시스템, 클라이드 네이티브 , 하이브리드 클라우드등등을 구축시)

챕터는 패턴별로 사이트 개요 , 인프라 핵심 설계 사항 , 사이트 구성도 => 구성 설명, 유의사항등의 내용으로 이루어져 있습니다.

사이트 개요에선 구축하려는 사이트의 요구사항(비용,서비스기간등등)이나 고려사항(고사양, 다중화, 멀티리전, 백업등)에 대한 내용을 적고
인프라 핵심 설계 사항에선 사이트 개요에서 나온 내용에 따라 리전 선택, EC2, 도메인 접속, 네트웍, LAMP등과 같은 필요한 AWS서비스들을 적습니다
그리고 AWS서비스들로 도식화하여 사이트 구성도를 보여줍니다.

그리고 용어설명, 구조 설명 , 가격이나 서비스사양 비교, 유의사항등등에 대한 내용을 다룹니다.

전체적으로 그림이 많고, 표나 그림을 먼저 본 후 설명을 읽게되니 좀 더 잘 이해되는거 같습니다.
EC2나 S3, RDS같은 일반적으로 많이 접해본 서비스구성도 외에 
람다, 게이트웨이등의 서비스나 인공지능서비스, 코드파이프라인을 통한 배포 자동화 구성도등의 구성에 대해서도 알 수 있게 되어 좋았습니다. 

이책은 따라하기 식으로 되어있지는 않습니다.  무엇을 해야한다 식의 설명은 있으나 단계별로 무슨 화면에서 뭘 누르고  그런식의 화면은 들어있지 않습니다. 그래서  많은 내용에도 책이 200페이지정도로 얇습니다.
직접 사이트를 구축하는 분들은 각 서비스에 대해 별도로 공부하셔야 할 거 같고,  의사결정권자나 실무진이 설계를 검토할 때  필요한 책인거 같습니다.


이 글이 좋으셨다면 SNS로 함께 공감해주세요.
댓글(0) 트랙백(0)
이 리뷰를 | 추천 0        
[리뷰] 고객이 보이는 구글 애널리틱스 | 기본 카테고리 2020-03-21 13:15
http://blog.yes24.com/document/12241512복사Facebook 보내기 트위터 보내기

[도서]고객이 보이는 구글 애널리틱스

문준영 저
한빛미디어 | 2020년 02월

내용     편집/구성     구매하기

좋은 도구가 있습니다. 그리고 그 도구를 설명하는 좋은 책도 있구요.

위 상품을 구매하면, 리뷰등록자에게 상품판매대금의 3%가 적립됩니다. (상품당 최대 적립금액 1,000원) 애드온 2 안내




경영학자 피터 드러커는 다음과 같은 말을 했습니다.
"측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다"


본인들이 블로그나 전자상거래 사이트같은 웹사이트를 운영하고 있다고 했을때,
웹로그분석은 방문자가 어떤 행동을 하는지 기록하고(웹로그)
만약 방문자수를 늘리고 싶다면, 현재 방문자수를 측정하고, 이벤트나 웹사이트에 변화를 주는 행동을 하고
다시 측정 분석을 하는식으로 이루어집니다.

웹로그분석
[목적 => 수집 => 분석 => 행동]  => [목적 => 수집 => 분석 => 행동] => [목적 => 수집 => 분석 => 행동 ] 의 반복

이런 웹로그분석시스템을 각자 구축해서 운영하기는 매우 어려울 것입니다.
구글애널리틱스는 누구나 쉽게 별도 설치없이 웹상에서 웹로그분석을 할 수 있게 해주는 도구입니다.
(분석에 필요한 프로그래밍코드, 로그관련 데이타베이스, 통계등의 SQL등을 직접 할 필요가 없습니다.)

이 책은 
쉬운 설명과 (파워포인트류 서적같은) 단계별 따라하기식의 구성으로 되어있어서
구글애널리틱스를 처음 접하는 사람 혹은 IT쪽에 있지 않은 일반인이라도 무리없이 따라갈 수 있도록 되어있습니다.
최신내용이 반영된 개정판입니다.

챕터마다 기능을 소개하기 전에 담당자M의 이야기, 담당자M을 도와주세요. 와 같은 내용으로 담당자입장이 되어 봄으로써
뒤에 나오는 기능 설명이 좀 더 와닿을 수 있었던 거 같습니다.

마케터, 기획자, 디자이너, CEO의 관점에서 말한 내용을 구글애널리틱스에서 측정가능한 단위로 바꾼 목표로 바꿔 등록하고, 
구글애널리틱스로 수집하고, 이벤트를 발생시키고 이벤트를 받고, 구글애널리틱스로 보고서를 생성하고, 보고서를 해석하고, A/B 테스트를 하는 등의 과정을 배워볼 수 있었습니다. 

보면 볼수록 구글애널리틱스(https://analytics.google.com/)는 정말 잘 만들어진 도구같습니다.
그리고 구글애널리틱스데모페이지 https://ga-dev-tools.appspot.com/enhanced-ecommerce/  는 웹로그를 쌓을때 
어느 어느부분에 데이터 수집을 위한 코드를 넣어야 하는지를 잘 알려주는거 같습니다.


데이타분석을 위해 별도의 실습 웹사이트를 제공합니다.
구글애널리틱스에서 기본 제공하는 google merchandise store로는 몇 년치의 수많은 데이타가 있어서 유용하고,
실습웹사이트는 데이타는 없지만 내가 실습한 내용을 바로 확인할 수 있어서 좋았습니다.(
google merchandise store라면 다수의 사용자가 이용하니 내가 방문해서 올라간 페이지뷰인지, 내가 클릭해서 발생한 이벤트인지, 
확인이 어렵지만 실습사이트는 웬만하면 사용자가 나밖에 없으니 ..)

일부 실습예제에서 https://jsfiddle.net/ 를 통해 쉽게 수정, 확인할 수 있게 한 것도 좋은 아이디어 같습니다.
ex) /*
추적 코드 입력
1. 아래 GA_TRACKING_ID를 자신의 추적 코드로 변경해주세요.
*/

gtag('config', 'GA_TRACKING_ID');

/*
완성된 코드의 모습은 다음과 같아야합니다.
gtag('config', 'UA-*********-*');
*/

딱히 문제는 안되지만
과거의 동일기간의 데이타(2017. 7. 3. ~ 2017. 7. 9.)라도 책에 나온 숫자와 요즘 데이타가 조금 차이가 납니다.
책을 쓸 시점과 현재시점의 구글머챈다이즈 데이타가 좀 달라진 듯.


아쉬운 점

책의 인덱스 페이지가 있었으면. 뭔가 봤던 내용 다시 찾아보려는데 아쉽네요.

gtag를 이용해서 데이타가 쌓이는데 테스트데이타 혹은 잘못만들어진 데이타가 쌓였을때 이를 보정하거나 삭제하는 방법등이 있었으면 좋았을 듯 합니다.

실습웹사이트 turtlebooks.co.kr/ga 의 소스들을 제공해주시면 안될까요..


이 글이 좋으셨다면 SNS로 함께 공감해주세요.
댓글(0) 트랙백(0)
이 리뷰를 | 추천 0        
[리뷰] 엔터프라이즈 자바 마이크로서비스 | 기본 카테고리 2019-09-16 00:31
http://blog.yes24.com/document/11627376복사Facebook 보내기 트위터 보내기

[도서]엔터프라이즈 자바 마이크로서비스

켄 피니건 저/오현석 역
한빛미디어 | 2019년 07월

내용     편집/구성     구매하기

마이크로 서비스에 대한 좋은 길잡이

위 상품을 구매하면, 리뷰등록자에게 상품판매대금의 3%가 적립됩니다. (상품당 최대 적립금액 1,000원) 애드온 2 안내

이번에 리뷰할 책은 "엔터프라이즈 자바 마이크로서비스" 입니다.

http://www.hanbit.co.kr/data/books/B8925824072_l.jpg


마이크로서비스가 도래한 배경부터 장점, 그리고 마이크로서비스를 위한 기반기술(환경), 테스트, 클라우드 deploy, 서비스 discovery, 내 고장성과 모니터링, 보안 등등을 다루고 있습니다.

또한 아주 오래된 웹 어플리케이션에 하이브리드패턴을 통해 새로운 마이크로서비스를 덧붙여가는 과정을 통해 하나씩 필요한 개념들을 배울 수 있습니다. 300페이지의 분량으로 꼭 필요한 부분만 알찬 내용을 담고 있습니다. 



기존 (모든 컴포넌트가 한번에 deploy되는 형태의)모노리스방식의 단점을 얘기하면서, 제한된 context단위의 서비스별로 분산처리하는 마이크로서비스의 개발방식이 생겨나게 되었습니다.


일반적인 WAS는 j2ee등을 지원하기 위해 상당히 많은 기능을 포함하고 있어 매우 무겁습니다.  이에 JeAS(Juest Enough Application Service)라는 실행에 꼭 필요한 기능들만 패키징한 런타임이라는 개념이 생겼고 JAX-RS, CDI, JSON-P 정도의 기능들이 가볍게 동작합니다.

드롭위저드, 파야라 마이크로, 스프링 부트, 손테일 등등이 이런 JeAS런타임들이며 어느것을 선택하느냐에 따라 패키징방법 및 소스의 annotation이 달라집니다.


테스트는 일반적으로 알고 있는 단위 테스트 및 통합 테스트외에 소비자 중심 계약 테스트라는 마이크로서비스 소비자와 마이크로서비스 사이의 계약을 정의하는 합의 문서(pact document)를 기반으로 하는 테스트에 대해서도 다루고 있습니다.


기존 사용하고 있던 서비스에서 마이크로 서비스를 찾아서 호출하는 케이스를 위해 하드코딩된 URL을 통해 호출하는 형태부터 추상화된 라이브러리사용 그리고 최종적으로 레지스트리에 등록된 서비스를 찾아서 이용하는 방법을 넷플릭스 리본을 통해 설명해준다.


마이크로서비스의 보안에 대해선 키클록 오픈소스를 통해 설명한다.


마이크로서비스가 여러 런타임으로 분산되어 있으면 필연적으로 네트웍에서 문제가 발생하는 경우가 많은데 이런 여러 문제상황별로 설명하고 히스트릭스라는 오픈소스를 통해 설명합니다.


그리고 마지막으로 카프카를 통해 데이터 스트리밍에 대한 내용을 다루고 있습니다.




회사에서 여러 컴포넌트로 이루어진 웹서비스를 모노리스방식으로 개발하면서

마이크로 서비스로의 전환이나 도입은 막연히 힘들지 않을까 생각하고 아예 관심도 갖지 않고 있었는데

하이브리드방식으로 기존시스템에 영향을 주지 않고 마이크로서비스형태의 서비스를 추가하는것이 생각보다 어렵지 않을 수 있겠구나 하는 생각이 들었습니다.





메이븐 apache-maven-3.6.2 버전으로는 빌드 및 실행에 문제가 있네요.

[ERROR] Failed to execute goal io.thorntail:thorntail-maven-plugin:2.2.0.Final:package (package) on project chapter1: Execution package of goal io.thorntail:thorntail-maven-plugin:2.2.0.Final:package failed: An API incompatibility was encountered while executing io.thorntail:thorntail-maven-plugin:2.2.0.Final:package: java.lang.AbstractMethodError: null


전 메이븐 3.5.3으로 했을때 이상이 없었습니다.

이 글이 좋으셨다면 SNS로 함께 공감해주세요.
댓글(0) 트랙백(0)
이 리뷰를 | 추천 0        
1 2 3 4
진행중인 이벤트
나의 북마크
이벤트 세상
지니랜드-이글루