반응형

많은 시간 개발을 하면서 시스템 아키텍처에 대해서 생각을 안해왔던것은 아니었다. 하지만 그런 지식들은 공부를 해서 생기는게 아니라 실제 경험으로 해봐야만 알수 있다는 생각을 많이 했었다. 그런데 요즘드는 생각은 이론으로 알고 실제 경험을 하면 더 많은것을 할수 있고 더 잘 할수 있을거라는 생각이 많이 들었다. 그래서 최근 책을 고를때에 아키텍트 관련 서적을 많이 골랐던것 같다.

개발을 하다가 나이 먹으면 아키텍트를 해야 한다 라는 그런 의견(?) 들이 많긴 한데 개발자에서 아키텍트로 간다는 것은 생각처럼 당연하지도 않고 쉽지도 않다. 지금도 물론 개발도 하고 아키텍트 역할도 하고 있지만 솔직히 그게 아키텍트로서의 역할이 맞는지, 아니면 개발자인지 구분이 안간다. 

그리고 매번 같은 방법, 같은 형식으로만 생각하다 보니 우물 안에 개구리처럼 생각이 닫혀버린 느낌이 많이 들었다. 아마도 관련 지식과 경험의 부족이라고 생각이 든다. 그래서 "개발자에서 아키텍트로" 되기 위해서는 어떤 것들이 필요한지 책을 통해서 조금이나마 알아가보기로 했다. 

이 책은 총 3개의 챕터로 구성이 되어있다.

1부. 소프트웨어 아키텍처

소프트웨어 아키텍처가 어떤 일을 하는 사람인지 알아보는 챕터이다. 그리고 디자인 마인드셋 (이해하기, 평가하기, 탐색하기, 실현하기)은 무엇인 알려준다. 

2부. 아키텍처 설계의 기초

2부에서는 1부에서 말한 마인드셋 영역별로 아키텍처 설계를 어떻게 해야 하는지 기초 지식에 대해서 알아볼 수 있다. 요구사항 분석부터 설계, 패턴, 시각화, 문서화, 그리고 평가까지 기본적으로 알아야 할 내용들이 담겨있다. 그리고 요구사항 분석 이전에 이해관계자들과는 어떻게 대화를 해야 하는지도 알려준다. 

아래 그림은 아키텍처 패턴 부분에서 설명에 추가되어있는 그림과 표이다. 실체 패턴이 어떻게 구성되는지 알수있고 각 컴포넌트들이 어떤 역할을 하고 있는지 쉽게 알수 있다. 

 

3부. 아키텍처의 은빛 도구상자

3부는 지금까지 배운 내용에 대한 실습 과제를 해보는 부분이다. 총 38가지의 주제를 가지고 팀 활동을 해볼수 있다. 그리고 팀 활동도 위에서 말한 마인드셋 영역별로 4가지 주제를 가지고 나눠져 있다. "문제를 이해하고 싶을때", "해결책을 찾고 싶을때", "손에 잡히는 설계를 만들고 싶을때", "설계 대안을 평가하고 싶을때". 

활동의 목적이 무엇인지, 그리고 이 활동을 함으로써 얻을수 있는 장, 단점, 시간, 절차, 예시까지 아주 꼼꼼히 설명이 되어있다. 그리고 설계에 대한것 뿐만 아니라 앞에서 말한 4가지 주제에 해서도 활동이 있기 때문에 책에서 읽은 부분들을 충분히 경험해 볼수 있다. 

개발자가 아키텍트 역량을 키우기 위해 어떻게 해야 하는지 업주적인 내용부터 기술적인 내용까지 두루 살펴볼수 있는 책이다. 그리고 실습해볼수 있는 주제들을 통해 책의 이론을 경험해 불수 있다는 것이 무엇보다도 좋은 부분이었던 것 같다.

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

728x90
반응형
반응형

이 책은 소프트웨어 아키텍처 설계에 대한 다양한 방법에 대해서 써놓은 책이다. 설계 뿐만 아니라 아키텍트가 알아야 하는 것들 또는 고려해야 하는 상황들도 다양한 관점에서 설명을 해준다. 책을 읽으면서 몇가지 내가 기억해두면 좋을것 같다는 부분들을 아래와 같이 작성해봤다.

아키텍처 대 설계

- 아키텍트와 개발자를 나누는 가상의 물리장벽을 통과하는 단방향 화살표는 많은 문제를 야기한다. 따라서 아키텍처, 설계 모두 소프트웨어 프로젝트 생명 주기의 일부로서 항상 서로 동기화되어야 성공할 수 있다.

아키텍처와 코딩 실무간 균형 맞추는 방법
1. POC를 자주 해본다. 가능한 한 프로덕션 수준의 고품질 코드로 작성하는 것이 좋다.
2. 기술 부채나 아키텍처 스토리에 전념한다. 또는 버그를 수정한다.
3. 코드리뷰를 자주한다.

아키텍처 특성 식별
1. 도메인 관심사에서 아키텍처 특성도출
  - 도메인의 핵심 목표와 현재상황 고려하여 아키텍처 결정
  - 모든 아키텍처 특성을 지원하는 제네릭 아키텍처 설게 --> 가장 흔한 안티패턴
  - 가급적 설계를 단순화 하는게 좋다
2. 요구사항에서 아키텍처 특성 도출

컴포넌트 식별흐름

1. 초기 컴포넌트 식별
2. 요구사항을 컴포넌트에 할당
3. 역할 및 책임 분석
4. 아키텍처 특성 분석
5. 컴포넌트 재구성
위 그림처럼 컴포넌트 식별은 한번에 끝나는게 아니라 컨포넌트의 특성을 분석해 나가면서 계속해서 수정될 수 있다.

컴포넌트 설계
- 엔티티 함정
   각각의 엔티티를 바탕으로 컴포넌트를 만드는것. 이건 프레임워크를 데이터베이스에 컴포넌트 관계형으로 매핑한 것에 불과한것이다. (내가 항상 이렇게 설계를 하고 있지 않나 싶다... )

- 액터/액션 접근법
   애플리케이션에서 뭔가 일을 하는 액터와 그들을 수행하는 액션으로 식별
- 이벤트 스토밍
   다양한 컴포넌트가 메시지나 이벤트를 이용해 서로 통신한다고 가정.
   어떤 이벤트가 일어나는지 파악하고 컴포넌트를 이벤트와 핸들러 중심으로 구축.
- 워크플로 접근법
   이벤트 스토밍의 대안으로 DDD나 메시징을 사용하지 않고 더 일반화 한 방법.
   핵심 역할을 식별하고 이 역할이 관여하는 워크플로 유형을 결정하여 식별된 활동에 따라 컴포넌트 구축.

아키텍처 스타일 : 크게 모놀리식과 분산형으로 나누면 다음과 같은 아키텍처들이 존재한다.
- 모놀리식
   레이어드 아키텍처, 파이프라인 아키텍처, 마이크로커널 아키텍처
- 분산형
   서비스 기반 아키텍처, 이벤트 기반 아키텍처, 공간기반 아키텍처, 서비스 지향 아키텍처, 마이크로서비스 아키텍처 

아키텍처 결정의 안티패턴
- 네 패를 먼저 보여주지마

  아키텍트가 잘못된 선택을 하는 것을 두려워해서 아키텍처 결정을 회피하거나 미루는 현상
  개발팀과 지속적으로 협력하면서 결정한 내용을 의도한 대로 추진 가능함. --> 모든 이슈를 아키텍트가 혼자 다 알수 없기 때문에 개발팀과 협력은 절대적임.
- 무한반복 회의
  어떤 결정을 왜 했는지 모르고 주구장창 회의만 계속 하는것.
  무한반복 회의가 발생하는 이유는 아키텍트가 자신이 내린 결정을 정당화 하는데 실패했기 때문
  아키텍처 결정을 할때 비즈니스 가치를 제시하는 것이 중요함.
- 이메일 기반 아키텍처
  아키텍처 결정을 놓치거나 잊어버리고 심지어는 그렇게 결정됐다는 사실조차 알지 못해 아키텍처 결정을 구현하지 못하는 상태.
  즉, 아키텍처 결정을 효과적으로 전달하지 못해서 발생하는 문제.
  이메일 본문에 아키텍처 결정을 포함하지 않는다. 중요한 세부사항은 단일 기록시스템(위키페이지등)에 보관해서 링크만 제공한다.
  아키텍처 결정에 정말 관심이 있는 사람들에게만 통지한다.
 

협상과 조정 tips
- 상황을 더 잘 이해하기 위해 문법과 유행어를 사용한다.
- 협상에 돌입하기 전 가능한 한 많은 정보를 수집한다.
- 다른 모든것이 실패하면 비용과 시간으로 설명한다.
- '분할 및 정복' 규칙을 활용해서 요구사항 또는 필우 조건을 검증한다.
- 증명은 언제나 논쟁을 이긴다는 사실을 명심한다.
- 지나치게 논쟁을 벌이려고 하거나 협상 과정에서 개인정인 감정을 드러내지 않는다. 간결 명료한 추론에 차분한 리더십을 더하면 반드시 협상에 승리한다.
- 개발자가 아키텍처 결정을 수용해서 어떤 작업을 하도록 설득할 때에는 '고압적으로 지시' 하지 말고 왜 그 일을 해야 하는지 정당성을 제공한다.
- 개발자가 아키텍트의 결정에 동의하지 않을 경우 그들 스스로 해결책을 찾도록 유도한다.

위 내용들 중에서도 특히 엔티티 함정 과 아키텍처 결정 안티패턴은 읽으면서 나 자신이 반성을 많이 하게 되었다. 아마도 내가 그런 안티패턴에 빠져서 설계를 하지 않았나라는 느낌이 많이 들었기 때문이다. 아키텍처에 대한 기초 지식을 얻고자 하는 분들에게 큰 도움이 될수 있는 책이라고 생각한다. 

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

 

728x90
반응형
반응형

이 책은 마이크로서비스에 대한 이론적 지식과 실습 프로젝트를 통해서 실제 마이크로서비스를 구현해볼수 있는 내용을 담고 있다. 두가지의 서비스를 각각의 다른 언어로 설계부터 개발, 릴리즈, 배포까지 프로젝트의 한 사이클을 담아놨다. 저자가 말했듯이 실제 production 에 반영을 하기에는 부족하긴 하지만 마이크로서비스를 경험해 보기에는 충분한 예제이다. 

마이크로 서비스는 굉장히 주목받고 있는 아키텍쳐이긴 하지만 실제 구현하기는 쉽지 않다. 우선 무엇보다도 뭐부터 시작해야할지가 가늠이 안간다. 모놀리스 아키텍쳐에 익숙한 개발자에게는 어느정도를 기능단위로 나눠야 되는지 구분하는게 가장 어렵게 느껴진다. 

이 책에서도 서비스 경계 설정에 대해서 다음과 같은 고려사항들을 언급해 놓았다. 

- 느슨한 결합
  - 서비스를 변경해도 다른 서비스에 영향을 주지 않는다.
  - 독립적인 배포가 가능해진다.
- 높은 응집력
  - 하나의 기능만 담당하기 때문에 응집력이 높아진다. 
- 비즈니스 기능과 연결
- 도메인 주도 설계
  - 테이블 기준이 아닌 업무 도메인 기준으로 설계가 되어야 한다.

또 한가지 중요한 요소중 하나는 데이터 이다. 

마이크로서비스의 데이터 공유
- 물리적인 데이터베이스 클러스터 공유는 가능하다
- 여러개의 마이크로서비스가 동일한 논리적인 테이블 공간과 데이터를 수정하지 않아야 한다.


여기에서 물리적인 데이터베이스 클러스터 공유가 가능하다는 말은 예를들어 같은 데이터베이스를 사용하되 스키마는 달라야 한다정도로 이해를 했다. 

다음은 개발자 워크스페이스에 대한 내용과 가이드 라인이다. 가이드 라인 같은 경우는 책에서 제시하는 환경에 의존적인 부분이 있긴 하지만 알아두면 좋을것 같다.

표준을 수립할 때에는 기술적인 '방법' 과 '무엇'을 제시하기 전에 사람들이 프로세스의 '이유'에 대해 공감할 수 있어야 한다.

  • 짧은 시간 내에 코드 설정이 가능해야 한다.
  • 새로운 마이크로 서비스는 빠르고, 쉽고, 예측 가능하게 만들어야 한다.
  • 품질 관리는 자동화되어야 한다.

개발자 경험을 위한 10가지 워크스페이스 가이드라인

  1. 도커를 유일한 종속성으로 만든다.
  2. 실행환경이 원격인지 로컬환경인지는 중요하지 않다. -> 환경에 관계 없이 실행 가능 해야한다.
  3. 서로 다른 기술 스택의 워크스페이스를 준비한다.
  4. 단일 마이크로 서비스를 실행하는 것과 여러개의 하위 시스템으로 구성된 마이크로 서비스를 실행하는것은 간단해야 한다.
  5. 가능하면 데이터베이스는 로컬에서 실행한다. (도커 사용)
  6. 컨테이너화 가이드라인을 구현한다.
  7. 데이터베이스 마이그레이션을 위한 간단한 규칙을 정한다.
    • 데이터베이스에 대한 변경사항은 마이그레이션 스크립트에 코드화 되어있어야 한다.
  8. 실용적인 테스트 자동화 방법을 정한다.
  9. 분기 및 병합 규칙을 정한다. -> 브랜치 관리
  10. 공통사항은 makefile 에 코드화 한다.

 그리고 이 책에서는 프로젝트코드들이 있다. 환경설정부터 시작해서 필요한 리소스나 툴들의 사용법들이 차례차레 나온다. 사용되는 툴의 종류도 다양하다. 우선 클라우드는 AWS 를 사용하고 Docker, Terraform, Github, kubernetes, Node.js, Argo CD 등이 있다. 

책에 그림이나 코드들이 다 나와있긴 하지만 처음부터 끝까지 따라하기는 쉽지는 않을것 같다. 그래서 책에 나온 툴들에 대해서 자세히 알 필요는 없지만 기본적인 기능을 조금이라도 알고 있다면 프로젝트를 진행하는데 더 수월할 것이다. 

여러번 말했지만 마이크로서비스로 가는 길은 쉽지 않은 길이다. 하지만 이론부터 차근차근, 작은것부터 점진적으로 변화를 시켜나간다면 실패를 줄여 나갈수 있을 것이다. 그리고 이책을 통해서 전체적인 시스템이 어떻게 구성되는지, 그리고 무엇이 필요한지 기본적인 지식을 습득한다면 큰도움이 될것이다.

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

728x90
반응형
반응형

이 책을 읽기전에 저자의 알고리즘 동영상 강의를 몇번 본적이 있었다. 그래서 이 책이 나왔을때 어떤 내용으로 구성이 되어있을지 궁금했다. 그런데 마침 이렇게 한빛미디어 나는 리뷰어다를 통해서 리뷰를 작성하게 되었다.

- PART 01

처음에는 코딩 테스트, 또는 알고리즘 문제 풀이를 어떻게 준비를 해야 하는지 사전 지식을 알려준다. 코딩을 위한 준비라든지 최근 몇년간 코딩테스트 유형들을 설명해준다. 그리고 취업관련 프로세스나 준비 방법들도 간단히 소개해 주고 있다.

- PART 02 ~ PART 03

PART02 와 PART03 에서는 본격적으로 코딩테스트를 위한 이론과 기출을 풀어볼수 있다. PART02 에서는 주요 알고리즘에 대한 설명과 연관된 문제를 풀어볼 수 있다. 알고리즘 관련된 책들이 비슷한 구성을 가지고 있다고 생각이 되는데 각각의 특징은 설명을 어떻게 해주냐인것 같다. 이 책은 그런점에서 이해하기 쉽게 설명을 해주고 있다. 그리고 그림이나 음영을 적절하게 써줘서 읽어보는데 지루하지 않았다.

- PART 04

이 책의 코드들은 파이썬으로 되어있다. 그렇기 때문에 파이썬에 대해서 알 필요가 있는데 모른다고 해서 책을 못읽는 것은 아니다. 이렇게 부록에 파이썬 문법들을 넣어줬다. 물론 파이썬에 대한 모든 내용들이 들어간것은 아니지만 코딩테스트 문제를 풀기 위해서 이정도 알고 있으면 충분히 문제 푸는데에는 문제가 없을것이다. 그리고 코딩테스트 코드 작성시 유용하게 사용되는 패턴들도 있어서 참고하면 문제 푸는데 많은 도움이 될것같다.

그리고 앞에서 설명했던 알고리즘들 이외에도 코딩테스트에 유용한 알고리즘들이 부록에 많이 담겨져 있다. 우리가 수학으로 배웠던 내용들이 주로 포함되어 있다. 나같은 경우에도 실제로 코딩테스트 문제에서 알고 있으면 쉽게 풀었지만 막상 모르고 풀면 코드 작성하기가 힘들었던 문제 유형들이다. 

- 온라인 강의

마지막으로 이 책의 온라인 강의를 볼수 있다.  요즘 책들은 거의 온라인 강의를 포함하는 경우가 많은데 이 책도 이렇게 저자의 온라인 강의를 볼 수 있다. 책은 책대로 읽고 온라인 강의도 본다면 이해하는데 도움이 될것이다. 이 책 보기전에도 몇번 동영상 강의를 봤었는데 저자분이 목소리가 낮고 차분하고 과장되지 않아서 귀에 더 잘 들렸다. 

- 마무리

코딩 테스트라는게 아무래도 이론만 가지고는 결과를 보는건 거의 불가능한 시험이다. 얼마나 많이 풀어보고 다양한 유형의 문제를 경험해봤는지가 가장 중요하다고 생각한다. 그렇다는건 결과적으로 내가 많이 문제를 풀어봐야 한다.어떤 알고리즘책을 읽든 그것은 변하지 않는다. 하지만 처음 코딩테스트를 준비하거다 기본부터 파이썬으로 준비를 하고 싶은 분들에게는 한번쯤 읽어보면 꼭 도움이 될거라 생각이 든다.

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

728x90
반응형
반응형

우리는 매일 매일 핸드폰을 통해서, 컴퓨터를 통해서, 그리고 기타 다른 도구들을 통해서 쏟아지는 데이터의 홍수 시대에 살고 있다. 그리고 우리는 그 데이터들을 다듬어서 많은 곳에 사용을 하고 있다. 

여기에서 중요한 점은 데이터를 누구에게, 어떤 형태로 보여줘야 하는지 결정하는 일이다. 쌓아 놓은 데이터들을 그냥 보여줄수는 없는 일이다. 이 책에서는 바로 데이터를 어떻게 보여줘야 하는 지에 대한 내용을 담고 있다.

우리는 데이터를 누군가를 설득하기위한 근거 자료로 많이 사용을 한다. 결국 누군가를 설득하고 어떤 결과를 유도하기 위해 데이터를 보여주지만 그것만으로는 만족한 결과를 얻을수가 없다. 그래서 우리가 읽는 소설이나 드라마에 기승전결이 있듯이 데이터에도 이러한 이야기가 필요하다. 우리가 가지고 있는 데이터들이 좀더 극적으로 보여주기 위해서, 또는 설득하려는 사람의 마음에 조금이라도 각인 시키기 위해서는 기억에 남을 만한 이야기 구상이 필수적이다. 

또한, 데이터 하나를 보여줌에 있어서 어떤 형태, 또는 어떤 그래프로 표현을 할지, 그리고 어떤 단어나 문장을 선택할지에 대해서도 꼼꼼히 생각을 해야 한다. 

하나의 차트를 설명하는 데에도 이렇게나 많은 표현들이 존재한다. 내가 사용하는 단어들 또는 문장들이 표현에 맞는지 그리고 좀더 나은 표현들은 없는지 참고해 볼 수 있다. 

이렇게 이 책에는 데이터를 구성하는 방법, 표현하는 방법, 설명하는 방법들이 잘 정리 되어있다. 데이터에 대한 내용 뿐만아니라 발표하는 방법 또는 프리젠테이션 구방 벙법에 대해서도 설명되어 있으니 필요시 참고하면 될것 같다.

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

 

728x90
반응형
반응형

NGINX에 대한 내용은 사용할 때에만 잠깐 인터넷으로 설정이라든지 방법만 찾아 봤을 뿐 책을 읽어보는 건 처음이다.  고급 기술을 활용한다기 보다는 상황에 맞게 설정만 하고 끝나는 경우가 많아서 깊게 공부해보려는 생각은 못했던것 같다.

최근 읽어본 책들을 보면 사례를 중심으로 설명하는 책들이 많이 있었는데 이 책도 사례 중심으로 내용을 설명하고 있다. 

그중에서도 내가 관심있게 본 내용들은 인증과 보안제어 챕터이다.

인증이나 보안쪽은 어떤 환경에서든지 빠지지 않는다. 그런데 막상 인터넷을 찾아보면 방법 자체가 맞는 방법인지 알 길이 없다. 그렇다면 도뮤먼트를 읽는 수밖에는 없는데 영문으로 되어있는 도큐먼트를 빠르게 이해하기는 쉽지 않다. 그래서 이 책에 나온 여러가지 상황에 따른 사용 방법을 알고 있다면 실제 Nginx를 사용해서 운영중인 개발자들에게 많은 도움이 될것이다. 

주어진 상황에 대한 해결 방법을 위와 같이 제시해 준다. 그리고 "논의" 라는 항목을 따로 둬서 좀더 생각해야 하는 것들에 대해서 설명을 해준다. 그저 "해결" 만 하고 끝나는게 아니라 "논의" 를 통해서 이론 적인 내용이라든지, 주의 사항들을 상세히 알려주는게 이 책의 큰 장점이라고 생각이 된다. 

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

728x90
반응형
반응형

최근에는 처리해야 할 서비스들을 도메인별로 나누어서 마이크로 서비스로 구축하는 경우가 많아졌다. 그러다 보니 서비스들 간에 서로 통신을 해야 할 일들이 많아지게 되고 이런 처리를 어떻게 해야 할지 고민이 많아졌다. 그중 하나의 방법으로 이벤트 기반으로 정의를 해서 정보를 가져올 수 있는 기법들이 나오게 되었다. 

먼저 이벤트를 정의 를하고 프로듀서는 이벤트를 생성하게 된다. 그리고 그 이벤트를 필요로 하는 컨슈머들은 해당 이벤트를 소비함으로써 프로세스를 처리하게 된다. 간단하게 말하긴 했지만 이벤트를 생산하고 소비하는 과정에서 처리해야 할 일을이 많다. 특히 정상처리 상태에서는 괜찮지만 비정상적으로 처리가 잘못될 경우에 대한 생각들을 많이 해야 한다. 

이 책은 이벤트 기반 마이크로 서비스에 대해서 무엇이 필요하고 각각은 어떤 역할을 해야 하는지 알려주고 있다. 각 레이어 별로 구간구간 처리에 대한 방법, 이론적인 내용들을 잘 설명해 주고 있다. 

하지만 읽으면서 느꼈던 점은 아무래도 이론적인 내용들이 많다보니 이런 이벤트 처리에 대한 경험이 있는 상태에서 읽으면 더 도움이 될것 같다는 생각이 들었다. 그저 막연하게 마이크로 서비스가 무엇이다, 이벤트가 무엇이다 정도 알고 있다면 내용을 이해하기가 좀 어려울수도 있을것 같다. 입문자도 읽을수 있다고는 하지만 내용이 머릿속에 잘 그려지지 않았다. 그래서 프로그래밍 레벨에서 관련 내용을 구현해보거나 운영중인 사람들이 읽기에 더 적합한것 같다. 

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

 

728x90
반응형
반응형

파이썬으로 배우는 데이터 분석 입문 이라는 책을 읽어보게 되었다. 파이썬을 활용해서 주어진 데이터를 분석하는 내용을 담고 있으며 책 표지에서도 보이듯이 판다스, 넘파이, Maltplotlib 을 활용한다. 

기본적으로 책이 추구하는 방향은 데이터 분석이기 때문에 다른 책들과 비슷하다. 그래서 내가 말하고 싶은 것은 이책이 다른 책과 다른 큰 장점을 말하고 싶다. 

흥미로운 주제를 통해서 데이터 분석도 배우고 재미도 챙겼다. 

챕터 별로 큰 주제가 있다. 텍스트 마이닝, 미래예측, 데이터 분석등을 다룬다. 그리고 챕터별로 각각의 주제에 맞게 흥미로운 데이터 셋을 가지고 공부를 할 수 있다. 아래는 국가별 음주 데이터를 가지고 분석을 하고 있다.

그리고 내가 가장 관심있게 봤던 부분은 바로 아래 챕터부분이다. 요즘 가장 핫한 "비트코인" 에 대한 시세 예측이다. 챕터를 보자마자 공부할의욕이 확실히 생기게 되었다. 

파이썬을 배우면서 데이터 영역을 공부하는것은 내가 몇번 해봤는데 쉬운 일은 아니었다. 파이썬도 알아야 하고 데이터에 대한 지식도 있어야 한다. 무엇을 분석할 것이며, 어떻게 데이터를 마련해야 할지 조차도 모를 수 있다. 그런데 이 책에서는 다양한 데이터 셋을 가지고 공부를 할 수 있어서 무엇보다 접근이 손쉬워진다. 또 저자분이 동영상 강의 까지 제공해주고 있기 때문에 스스로 공부하는데 큰 도움이 된다. 

천천히 강의를 듣고 책으로 복습을 한다면 책을 다 볼때 즈음에는 충분히 혼자서도 데이터를 분석 해볼 수 있지 않을가라는 생각이 된다. 단, 파이썬 기본에 대한 내용은 포함되어있지 않으니 그 부분은 스스로 학습 해야 한다.

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

 

728x90
반응형
반응형

 

셸 스크립트는 항상 필요할때에면 검색을 해서 그때그때 찾아보기만 했다. 거의 복사 붙여넣기만 하면서 사용해왔다. 여러번 같은 내용을 찾다 보니 간단한 내용들은 알고 있는데 조금만 복잡해지면 여지없이 검색이 필요했다. 

많은 명령어들을 쓰지는 않았지만 자주 쓰는 명령어들을 자주 찾아봤던 기억들이 많다. find, grep 등 항상 자주 사용한 명령어 들인데 왜 쓸때마다 기억이 안나는지..^^

내게 가장 도움이 되었던 챕터이다. 말 그대로 리눅스 사용할 때에 가장 많이 쓰는 명령어들로 구성되어있다.

특히 이중에서도 grep, find 는 내게 많은 도움이 되었다. 기본 설명부터 시작해서 다양한 옵션을 통해 여러가지 사용방법들을 쉽게 설명을 해줬다, 옵션들이 많이 있음에도 불구하고 빠짐없이 예제들이 있어서 셸과는 친하지 않은 나에게 딱 좋았다. 

앞에서 언급했던것 처럼 이책의 가장 큰 장점은 풍부한 예제라고 할수 있다. 정말 초보자를 위해서 하나부터 열까지 다 설명을 해주고 있다. 그리고 단순한 기능 뿐만 아니라 뒤에 보안, 모니터링 등을 통해서 실제 사용하면 편할 스크립트들을 많이 준비해줬다. 이 책을 정독 한다면 리눅스를 사용하면서 셸 스크립트 사용에 대한 불편함은 없어질것 같다.

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

728x90
반응형

+ Recent posts