인간다운 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
 
 
 
글로벌 소프트웨어를 말하다, 지혜 글로벌 소프트웨어를 꿈꾸다 시리즈
김익환 지음 / 한빛미디어 / 2014년 6월
평점 :
장바구니담기


2021년을 어떻게 준비하느냐에 따라 앞으로의 10년의 삶이 결정될거 같다. 축구경기에 비유하면 인생의 전반전을 마치고 후반전을 준비하기 위해 휴식시간을 맞이하고 있는거 같다. 익숙한 환경과 안일한 자세로 삶을 채우게 되면 소중한 시간과 세월을 낭비하게 된다. 경쟁사회에서 살아남기 위해서는 혁신을 통해 변화에 성공해야 한다. 혁신에는 고통이 따르지만 그것을 이겨내면 새로운 전기를 맞는다.


처움부터 제대로 배운다는 자세로 항상 자신을 변화시키려고 노력해야 한다. 지난 경험을 참고로 하여 자만하지 말고 자신의 능력을 잘 알고 행동해야 한다. 언제나 다른 사람으로 대체될 수 있는 AnyOne이 되지말고 그 사람이면 안되는 OnlyOne이 되야한다. 개발자에서 설계자로 분석가로 변해야 한다. 체계적인 학습과 훈련으로 분석과 설계가 가능한 개발자가 되야한다. 실제 필요한 기술을 현장에서 배워나간다.


예측은 필요하지만 예측대로 되는 경우가 거의 없다. 차라리 미래를 예측하지 말고 창조하라. 누구나 알고 있지만 실행하지 않는 몇 가지 핵심을 제대로 실행해 나가는 것이 능력이다. 우선순위를 잘 정해서 체계적으로 해나가면 된다. 소프트웨어 공학의 목적은 최소의 비용과 시간으로 좋은 품질의 소프트웨어를 만드는 것이다. 소프트웨어는 기법이 아니라 하나의 예술이라고 받아들이는 자세가 필요하다.



댓글(0) 먼댓글(0) 좋아요(8)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
게임으로 배우는 파이썬
다나카 겐이치로 지음, 김은철 외 옮김 / 영진.com(영진닷컴) / 2019년 3월
평점 :
장바구니담기


처음에는 파이썬에 대한 기초를 아주 간단히 설명한다. 아주 기본적인 내용이라 독자가 이미 알고 있다 전제하고 게임과 관련된 내용을 설명해주어도 좋은데 대부분의 서적이 아주 기초적인 내용에 대해서 다시 설명한다. 변수, 함수, 데이터형, 형변환, 리스트, 튜플, 딕셔너리, 제어문, 람다함수, 모듈, ... 등 75 페이지는 다시 복습한다는 생각으로 보면 좋다.


그리고 PyGame으로 들어간다. 윈도를 그려보고 그래픽의 기본인 사각형, 원, 타원, 선, 이미지, 문자와 관련된 간단한 예제를 소개한다. 그리고 타이머, 이벤트, 삼각함수, 스코프, 객체지향의 설명을 하고서 본격적인 게임으로 들어간다.


어릴때 한두번 정도 해보았던 고전게임들이라 잠시 어릴때 기억을 떠올리기도 한다. 동굴, 마인 스위퍼, 스네이크, 블록깨기, 슈팅, 테트리스 등 9개의 게임이 담겨있다. 게임 화면과 전체코드를 보여주고 나서 개요와 주요 코드에 대해 설명해준다. 그렇게 9개의 게임을 소개한다.


댓글(0) 먼댓글(0) 좋아요(11)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
그림과 이야기로 쉽게 배우는 소프트웨어와 코딩 첫걸음 궁리 IT’s story 시리즈
김현정 지음, 조혜영 그림 / 궁리 / 2017년 11월
평점 :
구판절판


50년전에는 컴퓨터 없이도 생활하는데 불편함이 없었는데 이제는 컴퓨터 없이는 회사에서 업무를 할 수 없게 되었습니다. 관공서, 병원, 은행, 학교...등 사회 전반에 컴퓨터를 기반으로 시스템이 움직이고 있습니다. 컴퓨터는 그렇게 우리의 생활속에 자리잡게 되었습니다. 그리고 몇년전부터 학교에서도 S/W가 필수과목이 되면서 소프트웨어 코딩이 생활속에 점점 다가옵니다.


이 책은 우리의 삶 속에 공기처럼 존재하는 소프트웨어에 대한 이야기를 하기 위해 컴퓨터에 대한 핵심 이야기 49가지에 대해 알기 쉽고 재미있게 설명하고 있습니다. 컴퓨터에 관심이 있는 사람이나 소프트웨어를 시작하려는 사람에게 도움이 되리라 생각합니다. 입문서적으로 추천합니다.


댓글(0) 먼댓글(0) 좋아요(4)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
벤츠 타는 프로그래머 - 행복한 프로그래밍을 위한 어느 선배 개발자의 조언
정금호 지음 / 제이펍 / 2013년 8월
평점 :
절판


"벤츠 타는 프로그래머"라고 하면 오래전에는 성공한 사람을 표현할 수 있었던 제목이었나 싶었는데 요즘에는 벤츠 타는 사람이 너무 흔해서 이제는 개정판으로 "포르쉐 타는 프로그래머"가 나와야 되지 않을까 생각해본다. 필자의 머리말을 읽어보면 1984년에 애플][ 호환 기종으로 울티마 5 게임을 하였다고 하니 세대가 비슷한 거 같다.


컴퓨터가 1970년대부터 대중에게 본격적으로 보급되었는데 50년이라는 시간 동안 너무나 많은 발전과 변화를 거듭해 왔다. 프로그래밍이 열악한 근무 환경과 고된 일로 힘들 수도 있는데 필자는 프로그래밍을 창의적인 활동으로 즐거운 일로 여기며 일해왔다.


대학교 때에 계약을 하여 프로그램을 만들기도 하고 공모전에도 참가하여 상도 받은 것을 보면 일반적으로 생각하는 개발자와는 다르게 살아온 거 같다. 책을 읽으며 같은 업종에 종사하면서 비슷한 시대를 살아왔는데 저자의 활동에 비해 나는 그동안 무엇을 했었나 생각해 보았다.


책의 처음에는 컴퓨터, 운영체제, 프로그래밍 언어에 대해서 설명한다. 알마인드로 간단히 정리해 본다.


책을 읽고 있으니 1986년 중학교 1학년에 애플][ 호환 기종인 애플 64를 할머니께서 사주신 게 기억이 났다. 그 당시 오락실에 너무 출입이 많아서 컴퓨터를 사주면 집에서 하지 않을까 하는 이유였다. 결국에는 집에서 컴퓨터로 실컷 게임하고 남은 시간은 오락실 가서 게임을 실컷 했다. 컴퓨터로 주로 게임만 하다가 뭔가 코딩을 해보려고 시스템 베이직을 사용하며 간단한 프로그램을 만들어 보기도 했었다.


사람의 의지에는 한계가 있기 때문에 지속적인 동기부여 유지가 중요하다. 자신의 '의지'에만 의존하지 말고 제3자에 의해서 외부적인 압력으로 인해 동기부여를 받는 것도 좋은 방법이다.

프로그램 설계도를 그릴 때 형식은 중요하지 않고 자신이 정확하게 이해할 수 있도록 만드는 것이 중요하다. 그리고 구현에 필요한 레퍼런스와 해결 방법 그리고 샘플 코드를 준비한다. 필요하다면 관련 서적도 미리 준비해 둔다.


프로그래밍을 하게 되면 시간 단위로 목표를 세우고 구현할 기능 목록을 작성해 두고 일일 소멸 차트로 관리해 나간다. 결심한 것을 행동으로 옮기는 그 순간이 바로 한 발 더 성장하는 순간이 된다. 문제에 직면했을 때 그 해답을 알고 있는지는 중요하지 않다. 그보다는 어떤 문제에 부딪히든 가설을 세우고 검증하는 과정을 통해 해답을 모색할 수 있는 해결책을 갖추는 것이 중요하다.



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