운명을 바꾸는 행동의 힘 - 그는 어떻게 5년 만에 100억 원을 벌 수 있었을까?
유선국 지음 / 라온북 / 2021년 3월
평점 :
장바구니담기



이 책은 삶에 관한 스토리로 구성되어 있어 쉽게 읽힌다. 읽다 보면 다른 유명한 자기계발 책에서 말하고 있는 액기스가 곳곳에 담겨있다. 많이 알려진 책이 이론편이라면 이 책은 그에 대한 실천편으로 생각이 된다.


성공하는 사람들에겐 공통적인 특징이 있다. 실패를 두려워하지 않고 계획한 것을 행동으로 옮긴다. 사람들은 대부분 많은 생각과 결심은 하지만 직접 행동하지는 않는다. 성공한 사람은 원하는 것을 얻기 위해 바로 행동한다.



저자가 20대 중반부터 학업을 내려놓고서 (주)유선식품이라는 치킨 물류기업을 운영하기까지 살아온 삶을 2 페이지(위의 사진)에 요약했다. 가만히 보고 있으면 참 다양한 일들을 해왔음을 알 수 있다. 성공의 시작은 결심이지만 행동으로 옮기기 위해서는 절심함이 꼭 필요하다. 저자는 성공하기 위해 절실함이 있었다.



돈을 벌어 부자가 되기 위해 다양한 경험을 축적하고 성공한 사람을 모델 삼아 따라 했다. 인생의 멘토가 된 책을 발견하고 책 속에서 말하는 것들을 실천하면서 행동을 습관으로 만들어 나갔다. 실패의 경험도 많았지만 결국 성공적인 사업가로 변화였다. 성공하는 사람들에게 나타나는 공통적인 특징으로 보인다.


출판사에서 도서 협찬을 받았습니다. 하지만 개인의 주관적인 견해로 작성하였습니다.


경제적 자유와 목표 달성을 원한다면 지금 당장 움직여라


댓글(0) 먼댓글(0) 좋아요(10)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
인간다운 Git
데이비드 디마리 지음, 이태상 옮김 / 웹액츄얼리코리아 / 2018년 1월
평점 :
장바구니담기


GitHub는 혼란스럽고 Git은 더 혼란스럽다. Git의 인터페이스는 내부의 작동 원리를 숨기는데 실패하여 허술하다. Git을 제대로 사용하려면 인간의 논리가 실패한 지점에 Git 자체의 논리를 적용해야 한다. 그래서 인간친화적이지 않은 Git은 짜증난다.


Git은 변경 사항을 처리하고 브랜치를 관리하는 방식이 작업자에게 유연함을 준다. Git은 작업 사본과 저장소 사이의 안전한 데이터 복제를 책임질 뿐만 아니라, 프로젝트의 서로 다른 버전을 참조할 수 있는 시스템을 제공한다. 그리고 서로 다른 버전 사이의 변경 사항을 안전하게 병합해주는 도구를 제공한다. 


Git 명령어는 다음과 같은 형식으로 되어있다.

$ git command parameter1 parameter2 --option


Git 명령을 사용하기 위해 필요한 사항은 이름과 이메일 주소이다.

$ git config --global user.name "agaepuni"

$ git config --global user.email "agaepuni@naver.com"


새 프로젝트 폴더 안에 새로운 Git 저장소를 초기화 하는 명령은 git init 이다. 프로젝트를 복제하기 위해서는 git clone 명령을 사용하는데 일련의 작업을 수행한다. 작업 디렉토리를 만들고 새로운 Git 저장소를 초기화하며, origin이라는 이름의 리모트를 추가하고, 리모트로부터 변경사항을 가져온다.


git add 명령은 주어진 파일 스냅샷을 만들어 저장소에 저장함으로써 나중에 커밋할 때 참조할 수 있게 한다. git add 이후에는 파일은 추적되지 않는 파일(Untracked file)이 아닌 커밋될 변경(Changes to be committed)목록에 보여진다. 즉 스테이징 상태가 되어 커밋할 준비가 된다. 스테이징 영역은 파일을 올린 후 커밋하기전까지 새 버전이 대기하는 장소를 말한다. 스테이징 영역은 오직 로컬 컴퓨터에만 존재한다.


$ git commit - m 'init commit'

커밋은 객체라고 하는 Git 데이터의 한 종류다. 커밋하지 않았다면 원래부터 없던 일이다. 파일을


$ git mv css/common.css css/style.css

파일 이름을 변경하기 위해서는 git mv 명령을 사용한다.


$ git rm test.txt

파일을 삭제하기 위해서는 git rm 명령을 사용한다.


댓글(0) 먼댓글(0) 좋아요(9)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
쿠브플로우! - 쿠버네티스에서 머신러닝이 처음이라면!
이명환 외 지음 / 아이생각(디지털북스) / 2020년 3월
평점 :
장바구니담기


책을 읽어보니 실무 경험이 있는 저자가 집필했음을 알 수 있다. 독자에서 필요한 정보만을 전달하려고 애쓰는 노력이 곳곳에서 보인다. 


Part 1은 두 장으로 구성되어 있는데 "1장 머신러닝의 기본 개념"은 가볍게 읽을 수 있는 내용이다.  "2장 딥러닝을 이용한 이미지 분석 실습"은 실습을 하기 위해 필요한 준비작업에 대한 내용이다. 구글 코랩으로 개발을 진행한다. 구글 코랩(Google Colaboratory)은 구글에서 제공하는 클라우드 기반의 Jupyter notebook 환경이다. Jupyter Note를 구글에서 새롭게 커스터마이징 했다. 


Part 2에서는 Kubeflow에 관해 배운다. ML 워크플로란 문제 해결을 위한 데이터를 분석/가공하고, 학습시켜 모델을 최적화시키며 그 모델을 서버에 배포시켜 예측을 하는 등의 일련의 과정을 말한다. 크게 모델 실험 단계와 모델 생산 단계로 나누어진다. ML 워크플로 툴들은 파이프라인 툴이란 형대로 구성된다. 쿠베플로우는 쿠버네티스를 사용하는 ML 툴킷이라고 정의할 수 있다. 쿠베플로우의 컴포넌트는 쿠버네티스의 오브젝트로 구성되어 있다.


쿠버네티스는 구글에서 사용하던 보그라는 컨테이너 오케스트레이션 시스템을 오픈소스로 공개한 것이다.  쿠버네티스는 클러스터 형태로 되어 있고 클러스터는 컨테이너를 실행하는 노드의 집합니다. 


댓글(0) 먼댓글(0) 좋아요(13)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
머신러닝을 위한 파이썬 한 조각 - 파이썬으로 이해하는 인공지능의 시작
박성호 지음 / 비제이퍼블릭 / 2020년 2월
평점 :
장바구니담기


이 책은 파이썬으로 머신러닝을 배우기 위해 기초부터 설명하고 있다. 1장은 머신러닝의 개요, 2장은 파이썬의 기초적인 것들로 List, Tuple, Dictionary, List Comprehension, Function, Lambda, Class 등을 다룬다. 그리고 3장은 넘파이(Numpy)에 대해서 배우며 머신러닝을 위한 기본을 준비한다. 책의 내용은 입문자를 위한 내용이라 보통의 난이도이다. 2020년 2월에 출간된 기술 서적이지만 편집된 그림들이 옛스러워 오래된 책처럼 여겨진다.


머신러닝에서 가중치와 편향을 계산하기 위해 미분은 반드시 필요한 수학이다. 머신러닝에서는 미분으로 가중치와 편향을 계산하면서 최종 값을 찾아나간다. 편미분은 미분하고자 하는 변수 1개를 제외한 나머지 변수들을 상수로 취급하여 미분하는 것을 말한다. 그리고 체인룰은 여러 개의 함수로 구성된 함수를 미분하기 위해 사용하는 방식이다.

머신러닝은 학습하는 방법에 따라 지도 학습과 비지도 학습으로 나눈다. 지도 학습은 결과를 예측하는 방법에 따라 회귀(Regression)와 분류(Classification)로 나눈다. 비지도 학습은 입력값 자체의 특성과 분포를 파악해서 그룹화 하는 군집화(Clustering)에 주로 사용한다. 회귀(Regression)는 연속적인 값을 예측하고 분류(Classification)는 이산적인 값을 가진다.


딥러닝 아키텍처는 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성돼 서로 연결되어 있는 구조이다. 딥러닝의 기본적인 예제라고 할 수 있는 MNIST 손글씨 숫자 인식을 다룬다. 입력층과 출력층의 노드 개수는 데이터에 의해 정해진다. 하지만 은닉층은 개발자가 임의로 설정할 수 있는 하이퍼 파라미터이다.


텐서플로(TensorFlow)는 구글에서 개발하여 공개한 딥러닝 프레임워크이다. 텐서플로는 스칼라, 벡터, 행렬과 같은 데이터를 텐서로 인식한다. 텐서를 흘려보내면서 딥러닝 알고리즘을 실행한다. 마지막 두 챕터에 합성곱 신경망(CNN, Convolutional Neural Network)와 순환 신경망(RNN, Recurrent Nerual Networ)를 다룬다.


댓글(0) 먼댓글(0) 좋아요(12)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 클린 코드 - 유지보수가 쉬운 파이썬 코드를 만드는 비결
마리아노 아나야 지음, 김창수 옮김 / 터닝포인트 / 2019년 2월
평점 :
구판절판


클린 코드는 단순하게 체커(checker)를 사용해 문법을 체크하거나, 린터(Linter)를 사용해 취약한 부분을 찾아내거나, 정적 분석기를 실행하는 것이 아니다. 클린 코드는 코드의 가독성을 높여 작업자 간의 이해도를 높임에 따라 코드 품질을 높이고 유지보수의 향상성을 가져온다.

PEP는 Python Enhancement Proposal을 말한다. 거기서 PEP-8은 핵심 파이썬 개발자가 만들었는데 PEP-8에 따라 코딩을 작성하여 코드의 이해도를 높이고 일관성을 유지해 코드의 품질을 높일 수 있다. PEP-8을 모두 준수한다고 해도 클린 코드의 요건을 충족하는 것은 아니다. 기본적인 코드 지침이라고 볼 수 있다. 코딩 가이드라인은 품질과 표준을 지키기 위해 따라야 하는 최소한의 요구사항이다. 가이드에 따라 코드가 일관되게 구조화되어 있으면 가독성이 높아지고 이해하기 쉬워진다.

Docstring은 주석을 다는 것이 아니라 설명을 기술하는 것이다. 코드의 특징이나 모듈, 클래스, 함수에 대한 것을 설명한다. 이전에는 소스코드에 주석을 달았는데 최근에는 코드에 주석을 다는 것은 나쁜 습관으로 본다. 생각을 코드로 제대로 표한하지 못하였기에 주석을 달아서 보충하는 것이다. 소스 코드만으로 쉽게 읽혀지고 동작하는 로직을 바로 볼 수 있도록 코딩해야 한다.

코드 리뷰에 시간을 투자하고 보다 좋은 코드가 무엇인지, 어떻게 하면 읽기 쉽고 관리하기 쉬운 코드인지 고민해야 한다. Mypy, Pylint 등과 같은 코드에 대한 검사는 자동화하는 것이 중요하다.


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