반응형

그동안 리액트를 공부하면서 느꼈던 점을 생각해보면 생각보다 어렵다는 거였다. 컴포넌트를 그리고 재사용 하기 위해서 리액트를 사용하려면 무작정 만들어서 되는것도 아니고 전체적인 구조를 생각해 가면서 만들어야 하기 때문이다. 물론 처음부터 모두 생각하고 만들수 없기 때문에 만들면서 리팩토링을 하는것이 필수이다. 하지만 언어가 갖고 있는 기능만 알고 있다고 해서 해결될 문제는 아니다. 무엇보다도 무언가를 만들어보면서 느낄수 있는 것들이 있기 때문이다.

이런 이유에서 이 책은 리액트를 공부한 사람들에게 프로젝트를 따라 해보면서 기능들을 활용해 볼 수 있는 좋은 참고서가 될 수 있다. (기본적인 지식은 반드시 알고 있어야 한다.)

무언가를 하나 만들려면 하루 아침에 뚝딱 만들어지는 것은 아니다. 먼저 생각해야 할 것들이 있고 만들면서 생각해야 되는 것들이 있다. 그런 모든 과정이 이책에 있는 프로젝트를 따라 만들면서 경험해 볼 수 있다. 공통 기능을 만드는 시점, 비지니스 기능을 만드는 시점등 각각의 단계에서 필요한 기능과 주의 사항들을 알아 볼 수 있다.

이 책에서는 계산기, Todo 리스트, 여행사진 공유앱 이렇게 3가지를 만들게 된다. 3가지밖에 안된다고 생각할 수도 있지만 책 두께를 보면 그런 생각이 안들것이다. ^^;; 900 페이지가 되는 이 책에는 그만큼 많은 내용들이 담겨 있으니 시간을 갖고 천천히 따라해보면서 익히면 리액트 지식을 습득하는데 많은 도움이 될 것이다.

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

728x90
반응형
반응형

최근에 타입스크립트에 관심이 생겨서 공부를 해보려고 했었는데 마침 나는 리뷰어다 책 목록에 "러닝 타입스크립트" 신간이 있어서 읽게 되었다. O'Reilly 책 표지에 밝은 색깔이 들어가 있는것은 정말 오랜만에 본것 같다. 

책은 생각보다 쉽게 읽혀진다. 설명과 코드로 이루어진 책이긴 하지만 따라하기도 쉽고 이해하기 쉽게 설명이 되어있다. 

특히 코드 부부은 주석과 오류에 대한 내용이 컬러로 표기되어있어서 눈에 더 잘 들어왔다. 소스코드도 다 제공이 되긴 하지만 간단한 코드들이니 직접 해보는것이 좋다. 

저자가 책 서문에 말한대로 이책은 한번 가볍게 1독을 한 후에 레퍼런스 처럼 활용하는게 가장 좋은 활용법인것 같다. 간단한 문법과 설명들이지만 다 외울수 있는 양은 아니다. 보다보면 내용이 생각이 안나는 경우도 생기기 때문에 우선 한번 끝까지 읽어보고 실제 타입 스크립트를 사용할때 모르는 부분을 찾아보는 형식으로 활용하면 큰 도움이 될것 같다. 

아직 천천히 공부중이라서 다 읽지는 못했지만 다 읽고 나면 타입 스크립트에 대한 기본적인 이해와 사용 방법에 대해서는 익숙해 질수 있을 것 같다.

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

 

728x90
반응형
반응형

구글이 제공하는 다양한 기능들을 사용해 왔지만 공부를 해봐야겠다는 생각을 했던적은 없었던것 같다. 파워포인트나 엑셀과 비슷한 기능을 이용해서 문서작성만 간단히 하고 그 이상을 활용해본적은 없었다. 그래서 이책에서 보여주는 다양한 스크립트를 활용해서 기능을 사용할수 있다는 것을 처음 알게 되었다.

우선 이 책은 600 페이지가 넘는다. 총 23개의 챕터로 이루어져 있는데 목차를 살펴보면 스크립트 관련 내용이 많다. 자바 스크립트와 비슷한 형태이지만 분명 차이점이 있는 언어이다. 그렇기 때문에 프로그래밍을 하거나 자바스크립트를 할줄 아는 분들은 쉽게 이해를 할수 있을 것이다. 그리고 모르는 분들도 책 내용에 처음부터 끝까지 언어에 대한 설명과 예제를 보여주고 있으니 부담 갖을 필요는 없다.

이런 사전 지식들이 바탕이 되어서 다음 챕터들에서 나오는 지메일이나 스프레드시트, 드라이브등 구글의 서비스들을 스크립트를 통해서 조작이 가능해진다. 

책을 읽으면서 느꼈던 점은 스크립트를 통해서 어떻게 조작하느냐도 중요하지만 이런 것들을 어떻게, 또는 어떤 부분을 자동화해서 편하게 사용할수 있을지를 더 고민해 봐야겠다는 생각을 했다. 

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

728x90
반응형
반응형

오랜만에 다시 읽게 되는 알고리즘 책이다. 이 책에 나오는 주요 알고리즘에 대한 내용은 다음과 같다. 

문제해결, 알고리즘 분석
해싱, 힙, 정렬, 이진트리, 그래프

우리가 알고리즘 공부를 할때 기본적으로 배워야 하는 알고리즘 들이다. 약간 전공서적 같은 느낌이 들긴 하지만 그것보다는 내용이 좀더 친절하게 나와 있다.

히자만 읽다보면 어려운 내용들이 많이 섞여 있다. 기초에 관련된 책이긴 하지만 난이도는 있는 책이다. 그리고 주요 코드들은 파이썬으로 되어있는데 파이썬을 모른다고 하더라도 크게 문제가 될것 같지는 않다. 코드 부분에 대한 설명은 거의 라인 단위로 설명을 해주고 있기 때문에 어떤 언어든 프로그래밍을 해본 사람이면 이해할수 있을 것이다. 

복습 차원에서 각 장 마지막에 있는 연습문제들은 한번씩 스스로 풀어보면 도움이 많이 될것이다. 어찌됐건 알고리즘 관련된 내용들은 이해도 이해 이이지만 한번씩 스스로 풀어보는게 중요하기 때문이다. 

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

728x90
반응형
반응형

아키텍처 관련 책들을 요즘 많이 읽어보고 있다. 책을 읽는다고 완벽하게 습될수 있는 범위는 아니지만 여러번 읽으면 좋아지겠지라는 생각으로 읽고 있다. 

이 책은 아래와 같이 등장인물이 나온다. 그리고 그들의 시스템을 변경시켜가는 과정을 아키텍처 이론과정과 함께 설명을 하고 있다. 아마도 우리가 관리 또는 개발하는 시스템을 변경하려 할때 이 등장인물들이 겪는 경험을 하게 되지 않을까 생각이 든다. 

등장인물들의 대화를 통해서 요구사항과 현재 시스템의 상황들을 파악할 수 있다. 아마도 이부분이 다른 책들과 큰 차이점인것 같다. 딱딱한 이론만 있는것보다는 시나리오가 있는 이야기가 있다보니 이해를 잘 할수 있다. 각 챕터마다 처음 시작과 끝에 위와 같은 대화들을 주고 받는 내용들이 나온다. 이 이야기 속에서 나오는 내용들만 이해를 한다면 각 챕터를 잘 공부를 했다고 생각해도 될것 같다. 

그리고 어떤 책이든 글과 그림이 적절히 섞여 있어야 이해하기가 쉽다. 특이 아키텍처 책들에서는 내용이 어렵다 보니 그림이나 도표를 활용한 설명들이 독자들에게는 중요한 참고 자료들이다. 

내용을 이해하면서 읽어야 했기 때문에 전체를 다 읽은 상황은 아니다. 하지만 그만큼 시간을 투자해서 꼼꼼히 읽어야 하는 내용이기 때문에 급하게 읽을 필요는 없다고 생각된다. 아키텍트를 공부하는 분들은 한번쯤 읽어보면 실력향상에 도움이 될 책이다.

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

 

728x90
반응형
반응형

코드로 인프라를 관리하기 위해서는 어떤 것들이 필요할까. 어쩌면 우리는 이미 어느 순간 자기도 모르게 코드를 인프라로 관리하고 있을지도 모른다. 가장 간단한 예로 설정파일을 Git에 push 하고 운영, 검증, 개발로 나누어서 관리하는 것도 코드로 인프라를 관리하는 것이다. 단지 그 범위가 좁을 뿐이다. 

코드리 인프라를 관리하기 위해서는 다음과 같은 것들이 필요하다.

1. 모든 것을 코드로 정의한다.

우리가 생각하는 것 보다 코드로 관리를 할수 있는 것들이 정말 많다. 간단한 설정파일 부터 시작해서 인프라를 구성하는 요소들 까지 말하기 시작하면 한도 끝도 없다. 그리고 최근에는 클라우드를 많이 사용하기 때문에 정의해야 할 요소들이 더 많아졌다. 퍼블릭 클라우드에서 화면에서 직접 마우스를 클릭하면서 리소스를 생성할 수도 있지만 그러한 모든 작업을 코드로 정의해서 한번에 실행해 버리면 우리가 마우스를 여러번 클릭하는 수고를 덜어줄수 있다. 그리고 정의한 내용이 파일로 남아있기 때문에 언제든지 반복작업이 가능하다. 

2. 코드를 지속적으로 테스트 하고 딜리버리 한다.

코드를 작성하기 전에 테스트 코드를 만들고 수십개의 테스트 코드들을 자동으로 실행시켜서 변경에 대한 영향이 없는지 확인하는 작업은 우리가 코드를 작성할 때 자주 하는 일들이다.  인프라를 정의한 파일들도 하나의 코드들과 유사하다. 실제 정상적으로 작업이 되는지 오류는 없는지 검증이 필요하고 테스트가 필요하다. 결국 그걸 확인하기 위해서는 테스트를 해봐야 하고 실제 생성해보기도 해야 한다. 우리가 모르는 순간 리소스의 명칭이 바뀔수도 있고 정의하는 문법들이 변경되어있을 수도 있다. 자주 확인하고 테스트 해보는 노력이 필요하고 자동화가 필요하다.

3. 시스템을 작고 간단하게 빌드한다. 

인프라의 리소스를 코드로 작성해 놓은것을 찾아보면 상당히 길다. 몇줄만 가지고 끝나지는 않는다. 최소 수십줄에서 수백줄에 이를수 있다. 어느 순간 무엇이 어디 정의되어있는지 한참 찾아야 될 수도 있다. 그런 것들을 피하려면 어떻게 해야 할까. 최대한 모듈로 나눠서 작성하는 것이다. 덩치가 커지만 연관관계가 늘어나고 시간도 오래 걸린다. 그리고 실패할 경우 다시 생성해야 되는 리소스들이 많아진다. 

클라우드 사용이 늘어나면서 수많은 리소스들을 컨트롤 해야 하는 일들이 많아졌다. 그런 리소스들을 관리하기 위한 방법이 필요하고 그게 바로 코드로 인프라를 관리하는 것이다. 특정 툴을 이용한 방법을 알아본건 아니지만 이 책을 통해서  어떤 방법이 있는지, 어떤 패턴들이 있는지 공부할 수 있다. 

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

 

728x90
반응형
반응형

책 표지에 보면 "비유와 이야기로 풀어낸 비전공자를 위한 필수 IT 교양서" 라고 써있다. 책 내용의 대부분이 IT 관련 용어들, 상황들에 대한 이해를 돕기위한 이야기들로 구성되어있다. 

IT 교양서인만큼 읽는데 어려움은 없었다. 물론 전공자의 입장에서 책을 읽었기 때문에 더 쉽게 느껴졌을 수는 있다. 책에 나오는 내용들에 대해서 이미 알고 있거나 최소한 한번정도는 들어봤던 용어들이었기 때문이다. 하지만 비전공자라고 해서 이해하지 못할 내용은 없어보였다. IT 용어들 중에서도 일상생활에서 충분히 들어봤을 정도의 용어들이 나오기 때문이다. 수학적 지식이나 프로그래밍 관련 전문 지식들이 많이 섞여서 내용이 구성되었다면 읽다가 어려움을 느꼈을 분들이 많을지 모르겠지만 이책은 그런 부분은 거의 없어서 일반 교양서처럼 쉽게 읽을 수 있다.

책 구성을 보면 여러개의 주제들이 있는데 그중에서도 내가 맘에 들었던 부분은 지식 전달 전에 짧막하게 이야기를 써준 부분이었다. 용어 설명에 앞서서 이런 이야기들이 그림과 함께 담겨있어서 재미있었다. 그리고 그 이야기들이 앞으로 나오는 설명에 대한 이해를 돕기 위한 내용이기 때문에 실제 본문을 읽을때 도움이 됐다. 

이 책의 가장 큰 장점은  IT 서적임에도 불구하고 알기쉽게 설명해서 다양한 독자들이 읽을수 있게 한 부분인것 같다. 성인 뿐만 아니라 중고등학생이 읽어도 교양지식을 쌓을수 있는 재미있는 책이다.

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

728x90
반응형
반응형

우리가 책을 읽다 보면 어떤 책은 잘 읽힌다(?) 라는 느낌을 받는 책이 있다. 그런데 어떤 책은 아무리 집중을 하고 읽어도 내용에 집중을 할수가 없고 이해가 되지 않는 책들도 있다. 개발자로서 코드를 읽다보면 비슷한 느낌을 경험하게 된다. 어떤 코드들은 따라 읽기만 해도 이해가 되는가 하면 어떤 코드들은 아무리 디버거를 걸어봐도 이해가 안되는 코드들이 있다.

수많은 개발자들이 각자의 개성과 경험을 바탕으로 코드를 작성한다. 그렇다 보니 똑같은 기능을 하는 코드이지만 정말 다양한 모습의 코드들을 찾아 볼 수 있다. 그렇다 보니 우리는 자연스럽게 어떤 코드들이 좋은 코드인지, 좋은 코드를 작성하기 위해서는 어떻게 해야되는지 관심을 갖을 수 밖에 없다. 

"좋은 코드, 나쁜 코드" 이 책은 우리가 좋은 코드를 작성하는데 참고할 만한 다양한 내용을 담고 있다. 각각의 기술이나 기법들이 많이 설명되어 있지만 그중에서도 중요한 키워드는 아래 4가지가 아닌가 싶다.

코드의 가독성
코드의 모듈화
코드의 재사용성 및 일반화
테스트 용이성 및 적절한 테스트

표현은 다르지만 비슷하게 책 표지에도 나와있다. "읽기 쉽고, 기억하기 쉽고, 적용하기 쉬운 코드".  결국 코드의 가독성을 위해서는 모듈화가 필요하고, 모듈화를 하면 재사용성이 높아지고, 일반화를 해야 한다. 그리고 이렇게 모듈화된 코드들은 단위 테스트를 하기도 쉬워진다. 꼬리에 꼬리를 무는것처럼 선순환 구조인 것이다. 반대로 말하면 하나가 잘못되기 시작하면 모든것이 꼬이게 된다. 

이 책은 크게 3가지 파트로 나뉜다. 이론, 실전, 테스트.

이론 부분에서는 좋은 코드를 만들기 위해서 필요한 사전 지식들을 알려준다.

두번째 파트는 이 책의 핵심인 실전파트이다. 실전 파트이다 보니 코드로 설명해주는 양이 점점 많아진다. 그렇기 때문에 코드에 대한 지식이, 특히 자바 기반 지식이 있으면 이해하는데 도움이 될 것이다. 

그리고 이 책을 읽으면서 좋았던 점은 여러가지 문제들을 제시하고 해결책에 대해서 제시해주는 설명 방법이있다. 여러가지 케이스들이 있다보니 실제 코드를 작성할때 알아 두면 좋은 기법들이 많이 있었다. 읽으면서도 이런것 까지 생각을 해야 하는 구나 라는 것들이 많이 있었다. 

마지막으로는 테스트이다. 여러가지 종류의 단위 테스트에 대해서 설명을 해준다. 테스트 부분에서는 기법도 기법이지만 테스트에 대한 철학이 어떻해야 한다라는 내용들이 더 많았던것 같다. 테스트를 해야 되는 부분이 무엇이고 테스트 코드를 작성할 때에는 어떤것에 더 집중을 해야 하는지에 대한 설명이 많았다. 

코드를 작성하는 개발자들은 코드로 대화를 한다. 그렇기 때문에 작성된 코드를 잘 읽을 수 있어야 하고, 또 잘 읽을 수 있도록 작성을 해야 한다. 말은 쉽지만 결코 쉽지 않다. 하지만 이 책에 나와 있는 내용들을 이해하고 기억하고 있다면 충분히 도움이 될 것이다. 

 

728x90
반응형
반응형

 클라우드를 이용한 개발 및 운영이 지금은 당연한 것으로 생각되고 있다. 그만큼 클라우드는 어느 순간 개발에 대한 영역에서 중요한 포지션을 차지하고 있다. 프로젝트를 시작하게 되면 코드관리, 배포, 운영에 대한 모든 인프라 환경이 클라우드로 변경되어가고 있다. 하지만 우리의 어플리케이션은 그런 환경에 맞게 개발되고 있는가라고 질물을 한다면 대답하기가 쉽지 않다.

이러한 어려움들을 해결하기 위해서 우리는 패턴이라는 것을 사용한다. 각각의 요건과 환경에 맞게 이미 시도해본 사람들의 경험을 바탕으로 만들어진  형식들이 바로 패턴이다. 이 책에서는 우리가 클라우드 환경에서 어플리케이션을 개발하고 운영하고 배포하기 위해서 적합한 패턴들이 어떤것들이 있는지 알려준다. 이 책을 통해 알게 되었는데 패턴이 생각보다 정말 많다.

많은 패턴들을 총 6가지의 큰 주제로 묶어서 설명을 해주고 있다.

통신패턴
연결성 및 조합 패턴
데이터 관리 패턴
이벤트 주도 아키텍처 패턴
스트림 프로세싱 패턴
API 관리 및 사용 패턴

각각의 패턴 하위에 관련된 수많은 패턴들이 있는데 다음과 같은 형식으로 설명을 해주고 있다.

패턴 정의 ---> 동작방법 ---> 사용방법 ---> 고려사항 ---> 관련 패턴

동작 방법에 대한 설명은 아래와 같이 그림들을 통해서 이해를 도와주고 있다. 아무래도 패턴이 어떻게 동작되는지 이해하기 위해서는 글보다는 전체적인 그림을 보는게 더 나은데 각 패턴마다 이렇게 동작에 대한 그림들이 있어서 이해하는데 도움이 된다.

위에서도 말했듯이 각 주제별로 정말로 많은 패턴들이 있다. 그래서 읽다보면 각 패턴에 대한 내용이 헷갈릴 때도 있다. 그래서 이책에서는 각 패턴에 대한 주제 안에서도 또 묶어서 설명을 한 후에 그 내용이 끝날때마다 비교를 해준다. 간략하게 정리가 되어있어서 앞에서 봤던 내용들을 정리도 할수 있고 차이점을 한눈에 볼 수 있다. 

그리고 제일 마지막 8장에서는 "클라우드 네이티브 패턴 적용하기" 라는 주제로 "온라인 쇼핑몰" 를 설계를 할때 어떤 패턴들을 적용하는지 나와있다. 쇼핑몰에 필요한 기능들과 그 기능들을 연결하기 위해서 어떠한 아키텍처들이 필요하고 어떤 패턴들이 알수 있다. 이부분을 통해서 직접 코드로 구현을 해보면 쇼핑몰이라는 주제를 통해 다양한 패턴들을 경험할 수 있어서 좋을것 같다. 

계속해서 말하지만 정말 많은 패턴들을 다루고 있기 때문에 각각의 패턴들에 대한 상세한 내용들이나 유즈케이스를 원한다면 다시 찾아보는 수고로움이 필요하다. 하지만 이런 패턴들이 존재한다는 것을 알고 찾는것과 모르고 찾는것은 시작점부터가 다르다고 생각한다. 그래서 클라우드 네이티브 아키텍처에 관심이 있는 분들이라면 각각의 패턴을 이해하는데 도움이 될거라 생각된다. 

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

 

728x90
반응형

+ Recent posts