HOME > Detail View

Detail View

깃허브를 활용한 다양한 도구 개발 : 개발 워크플로 최적화

깃허브를 활용한 다양한 도구 개발 : 개발 워크플로 최적화 (Loan 6 times)

Material type
단행본
Personal Author
Dawson, Chris Straub, Ben, 저 김영기, 역 곽서연, 역
Title Statement
깃허브를 활용한 다양한 도구 개발 : 개발 워크플로 최적화 / 크리스 도슨, 벤 스트라우브 지음 ; 김영기, 곽서연 옮김
Publication, Distribution, etc
서울 :   에이콘,   2018  
Physical Medium
410 p. : 삽화 ; 24 cm
Series Statement
에이콘 오픈소스 프로그래밍 시리즈
Varied Title
Building tools with GitHub : customize your workflow
ISBN
9791161752273 9788960771031 (Set)
General Note
부록: A. 깃허브 엔터프라이즈, B. 깃허브와 루비, NodeJS(그리고 셸)  
색인수록  
Subject Added Entry-Topical Term
Git (Computer file) Computer software --Programming
000 00000cam c2200205 c 4500
001 000045966847
005 20190108123353
007 ta
008 190107s2018 ulka 001c kor
020 ▼a 9791161752273 ▼g 94000
020 1 ▼a 9788960771031 (Set)
035 ▼a (KERIS)BIB000014961723
040 ▼a 222003 ▼c 222003 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 006.78 ▼2 23
085 ▼a 006.78 ▼2 DDCK
090 ▼a 006.78 ▼b 2018z2
100 1 ▼a Dawson, Chris
245 1 0 ▼a 깃허브를 활용한 다양한 도구 개발 : ▼b 개발 워크플로 최적화 / ▼d 크리스 도슨, ▼e 벤 스트라우브 지음 ; ▼e 김영기, ▼e 곽서연 옮김
246 1 9 ▼a Building tools with GitHub : ▼b customize your workflow
260 ▼a 서울 : ▼b 에이콘, ▼c 2018
300 ▼a 410 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a 에이콘 오픈소스 프로그래밍 시리즈
500 ▼a 부록: A. 깃허브 엔터프라이즈, B. 깃허브와 루비, NodeJS(그리고 셸)
500 ▼a 색인수록
650 0 ▼a Git (Computer file)
650 0 ▼a Computer software ▼x Programming
700 1 ▼a Straub, Ben, ▼e
700 1 ▼a 김영기, ▼e▼0 AUTH(211009)18563
700 1 ▼a 곽서연, ▼e
900 1 0 ▼a 도슨, 크리스, ▼e
900 1 0 ▼a 스트라우브, 벤, ▼e
945 ▼a KLPA

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 006.78 2018z2 Accession No. 111802067 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Sejong Academic Information Center/Science & Technology/ Call Number 006.78 2018z2 Accession No. 151343910 Availability Available Due Date Make a Reservation Service
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 006.78 2018z2 Accession No. 111802067 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 006.78 2018z2 Accession No. 151343910 Availability Available Due Date Make a Reservation Service

Contents information

Book Introduction

GitHub의 활용에 대한 가이드로 소프트웨어 도구를 개발하기 위해 GitHub 워크플로우를 최적화하는 방법을 보여준다. 각 장에 있는 실습 내용은 다양한 GitHub를 활용해 애플리케이션을 개발하는 데 도움이 되는 사항을 다루고 있다. GitHub에 익숙한 숙련된 프로그래머라면 GitHub API의 활용 방법과 Jekyll(사이트 빌더), Hubot(Node JS 챗봇) 및 Gollum(위키) 같은 오픈소스 도구의 학습을 통해 GitHub를 활용하는 방법을 학습한다.

★ 이 책에서 다루는 내용 ★

- Gist API 명령행 도구와 루비의 Octokit API 클라이언트로 간단한 루비 서버 구축
- 이미지 관리 애플리케이션을 만들기 위한 Gollum 명령행 도구 활용
- GitHub 검색을 위한 파이썬 GUI 도구 작성
- 서드파티 도구와 자체 코드 사이의 상호 작용에 관한 문서화
- Jekyll을 이용해 GitHub 저장소 자료를 갖고 완전한 기능을 갖는 블로그 생성
- Jekyll 저장소 내의 정보를 읽고 쓰는 안드로이드용 모바일 애플리케이션 작성
- GitHub에 완전한 단일 페이지 자바스크립트 애플리케이션 호스팅
- Hubot을 사용한 풀 리퀘스트 리뷰 자동화

★ 이 책의 대상 독자 ★

깃이나 GitHub를 사용해온 사람들과 관련된 기술을 "레벨 업(level-up)"하길 원하는 사람들에게 흥미로운 정보의 소스가 될 것이다. GitHub나 깃을 사용해본 경험이 없는 사람들은 이러한 기술을 소개하는 책으로 시작해야 한다.
이 책을 읽기 위해 전문적인 프로그래머가 될 필요는 없지만, 어느 정도 프로그래밍에 대한 경험이 있어야 하며, 적어도 하나 이상의 언어에 익숙해야 한다.
독자는 HTTP 프로토콜의 기본 사항을 이해하고 있어야 한다. GitHub 팀은 GitHub API에 대해 매우 표준적인 RESTful 접근 방법을 사용한다. 독자들은 GET 요청과 POST 요청 사이의 차이점과 최소한 HTTP 상태 코드가 무엇을 의미하는지 이해하고 있어야 한다.
이 책은 재미있고 강력한 도구를 작성하는 기반이 되며, 면밀히 검토되고 잘 설계된 그리고 잘 테스트된 웹 API를 생성하는 방법에 대해 가이드를 제공한다. 다른 웹 API에 대해 익숙하다면 이 책의 내용을 쉽게 이해할 수 있다. 웹 API를 광범위하게 사용해보지 않았지만 다른 유형의 API를 사용한 경험이 있다면 아무런 걱정할 필요가 없다.

★ 이 책의 구성 ★

1장, '기본 GitHub API'에서는 먼저 명령행 HTTP 클라이언트인 cURL을 통해 API에 대해 살펴본다. 응답 형식과 명령행에서 응답을 파싱하는 방법에 대해 알아보고, 문서 인증 방법도 살펴본다. 1장은 제시된 기술로 애플리케이션을 작성하지 않는 유일한 장이다.
2장, 'Gists와 Gist API'에서는 명령행 도구와 루비 언어 "Octokit" API 클라이언트 그리고 Gist API에 대해 다룬다. 그 후, 이 API를 사용해 gist를 저장하고 gist를 표시하는 간단한 루비(Ruby) 서버를 구축한다.
3장, '골룸과 깃허브 위키'에서는은 골룸 명령행 도구와 깃 저장소에 접근하기 위해 C 언어를 바인딩하는 Grit가 지원하는 루비 라이브러리(gem)의 사용법에 대해 설명한다. 또한 깃 저장소 형식에 대한 일부 내용과 깃 저장소 내부에 대규모 파일을 저장하는 방법도 확인한다. 이러한 정보를 사용하기 위해 깃 명령행 도구의 사용 방법을 살펴보고 골룸과 Grit 라이브러리를 사용해 일반적인 골룸 위키로 동작하는 GitHub에 게시할 수 있는 이미지 관리 도구를 만든다.
4장, '파이썬과 Search API'에서는 검색 API와 파이썬을 이용해 GitHub상의 저장소를 검색하기 위한 GUI 도구를 작성한다.
5장, '.NET과 Commit Status API'에서는은 서드파티 도구와 자체 코드 사이의 상호 작용을 문서화하는 상대적으로 새로운 분야를 다룬다. 5장에서는 C#과 Nancy .NET GitHub API 라이브러리를 이용해 애플리케이션을 작성한다.
GitHub는 특별하게 구성된 저장소를 푸시하는 경우, 워드프레스(Wordpress) 사이트처럼 완전한 기능을 갖춘 블로그를 호스팅한다(물론, 복잡성 부분은 제외한다).
6장, '루비와 지킬 블로그'에서는 저장소 형식을 지정하는 방법, 지킬에서 마크다운을 이용하는 방법, 리퀴드(Liquid) 템플릿이 제공하는 프로그래밍 방식의 루핑 구문(looping constructs)을 사용하는 방법에 대해 살펴본다.
그리고 루비를 사용해 지킬 형식으로 인터넷 아카이브로부터 전체 사이트를 가져오는import 방법도 살펴본다. API나 제3자 공개 정보를 사용하는 경우에 유용한 기술 캐싱을 사용해 사이트를 개별로 색인화(spider1)하는 방법도 보여준다.
7장, '안드로이드와 Git Data API'에서는 안드로이드 OS를 대상으로 하는 모바일 애플리케이션을 생성한다. 우리의 애플리케이션은 API의 깃 Data 섹션에서 지킬 저장소에 정보를 읽고 쓴다. 그리고 Calabash UI 테스팅 도구를 사용해 GitHub API 응답을 확인하는 안드로이드 전용 사용자 인터페이스 테스트의 작성 방법도 살펴본다.
8장, '커피스크립트, 휴봇 그리고 Activity API' 휴봇은 기술 분야 전문가들이 데브옵스(DevOps)를 넘어 챗옵스(ChatOps)라 불리는 새로운 영역으로 이동할 수 있도록 해주는 자바스크립트(NodeJS) 챗 로봇이다. 8장은 API의 액티비티(Activity)와 풀 리퀘스트(Pull Request) 사용에 대해 설명한다. 또한 GitHub 알림을 시뮬레이션하는 방법과 테스트 가능한 휴봇의 확장 기능 작성법도 살펴본다(자바스크립트 코드로 작성하는 경우, 때때로 문제가 된다). 이러한 모든 사항을 활용하면 리뷰 요청에 대한 풀 리퀘스트 할당을 자동화하는 로봇을 만들 수 있다.
9장, '자바스크립트와 Git Data API'에서는 GitHub에서 전체 "단일 페이지 애플리케이션(single-page application)"을 호스팅할 수 있다는 사실을 알고 있을까? 자바스크립트로 작성하고, GitHub에 호스팅된 플랫 파일 데이터베이스를 기반으로 하는 커피숍 정보 앱의 구축 방법에 대해 살펴본다. 여기서 중요한 점은 필요한 경우에 GitHub API를 스텁으로 대체하는 mocks out 테스트 가능한 자바스크립트 애플리케이션의 작성 방법을 살펴보는 것이다.

★ 지은이의 말 ★

GitHub에서 다음 프로젝트를 위해, 그리고 고유한 개발 요구사항을 만족시키기 위해 GitHub 서비스의 강력한 API를 활용해 보자. 이 실질적인 가이드는 소프트웨어 도구를 개발하기 위해 GitHub 워크플로우를 최적화하는 방법을 보여준다. 각 장에 있는 실습들은 다양한 GitHub 기술 위에서 애플리케이션을 구축하기 위한 트레이드 오프와 고려사항을 살펴볼 수 있는 매력적인 이야기들이다.
독자가 GitHub에 익숙한 숙련된 프로그래머라면, GitHub API로 도구를 작성하는 방법과 Jekyll(사이트 빌더), Hubot(Node JS 챗봇), 그리고 Gollum(위키) 같은 도구의 작성에 관련된 오픈소스 기술을 학습하게 될 것이다.

★ 옮긴이의 말 ★

개발 언어부터 프로세스, 개발 조직과 문화 등 소프트웨어 관련 모든 분야가 빠르게 변하고 있습니다. 소프트웨어 개발 인프라는 최근에 가장 많은 변화를 겪고 있는 분야 중 하나입니다. 개발 인프라의 핵심 부분 중 하나인 형상 관리 또한 최근의 추세인 애자일과 데브옵스를 지원하기 위해 기능과 구조에 많이 변화가 나타나고 있습니다.
이 책에서는 소프트웨어 개발에 GitHub의 활용을 극대화시키기 위한 GitHub API를 활용하는 방법과 GitHub와 관련된 오픈소스 기술을 소개하고 있습니다. 이 책의 각 장에서는 GitHub를 활용하기 위한 고급 정보와 이에 관련된 트레이드 오프, 개발 시 고려사항들을 이야기하고 있습니다. 이 책을 통해 GitHub API에 대한 이해와 더불어, GitHub 관련 고급 기술을 쉽게 학습하기를 바랍니다. 더불어 이 책에서 소개하는 내용이 소프트웨어 개발에 힘쓰고 있는 많은 개발자에게 많은 도움이 되기를 바랍니다.


Information Provided By: : Aladin

Author Introduction

크리스 도슨(지은이)

애플(Apple), 비라지(Virage) 그리고 리얼네트워크(RealNetworks) 같은 유명한 신생 기업과 기술 기업에서 다양한 공동체의 힘과 역동성을 경험할 수 있었던 것에 대해 감사하고 있다. 21세기의 가장 흥미로운 학습 공동체 중 하나인 GitHub에 참여하고 문서화 작업을 하는 것에서 커다란 즐거움을 느낀다.

벤 스트라우브(지은이)

평생을 개발자로 살았으며, 위대한 소프트웨어를 만드는 제작 기술에 대한 열광적인 팬이다. 15년 넘게 소프트웨어를 작성했으며, 여러 권의 책을 저술하고 교육용 소프트웨어 학습 비디오를 녹화했다. 독서, 자녀들과 자전거 타기, 초콜릿, 개, 노트, 사진, 좋은 주말 즐기기, 여행, 글쓰기, 음식, 장인 정신, 좋은 펜, 마크다운, 음악, 영화 그리고 사람들과 이야기하는 것을 좋아한다.

김영기(옮긴이)

삼성전자 네트워크 SE 그룹에서 소프트웨어 개발과 관련한 다양한 업무를 수행하고 있다. 주요 이력으로, 지능망(IN)과 모바일 애플리케이션 개발, 정적 분석과 소프트웨어 구조 분석, 소프트웨어 개발 인프라 관리 등이다. 현재는 CM 업무를 주로 수행하고 있으며 소프트웨어 개발과 관련된 조직의 개발 문화, 애자일과 데브옵스, 인프라 자동화에 관심이 많다.

곽서연(옮긴이)

국방과 통신 분야의 통합 비즈니스 솔루션 설계, 개발을 통해 소프트웨어 개발 경험을 쌓았다. 현재 삼성전자 네트워크 사업부의 SW 개발 프로세스를 담당하고 있으며, 인프라 개선, SW Audit, SW 아키텍처 분석 등 소프트웨어 개발과 관련된 SE 업무를 진행하고 있다.

Information Provided By: : Aladin

Table of Contents

1장. 기본 GitHub API 

__cURL 
__연속적인 API 경로 살펴보기 
__JSON 형식 
____명령행에서 JSON 파싱 
____cURL을 위한 디버깅 스위치 
__중요 헤더들 
__Hypermedia API 따르기 
__인증 
____사용자 이름 및 암호 인증 
____OAuth 
__상태 코드 
____성공(200 또는 201) 
____형식에 맞지 않는 JSON(400) 
____부적절한 JSON(442) 
____성공적인 생성(201) 
____아무 변경 없음(304) 
____GitHub API 전송률 제한 
____전송률 제한 확인 
__전송률 제한 회피를 위한 조건부 요청 
__웹에서 콘텐츠 접근 
____JSON-P 
____CORS 지원 
____응답 콘텐츠 형식 지정 
__요약 

2장. Gists와 Gist API 

__간편한 코드 공유 
__Gists는 저장소다 
____HTML 내부로 임베드하기 
____지킬 블로그에 퍼가기 
__명령행으로 생성하는 Gist 
__완전히 동작하는 앱으로서의 Gists 
__Gists를 렌더링하는 Gists 
____Gist API에 더 깊이 들어가기 
____Octokit의 하이퍼미디어 데이터 사용하기 
__요약 

3장. 골룸과 깃허브 위키 

__ “스미골 얘기 ...” 
____저장소에 연결된 위키 
____마크업과 구조 
__골룸 해킹 
__골룸 편집기의 시작점 
__프로그래밍 방식의 이미지 처리 
__Rugged 라이브러리 사용하기 
__이미지 저장을 위한 최적화 
__깃허브 리뷰 
__리비전 내비게이션 개선 
__컴포넌트 웹페이지 사이의 링크 수정 
--요약 

4장. 파이썬과 Search API 

__Search API 일반 원칙 
____인증 
__결과 형식 
____검색 연산자 및 한정자 
____정렬 
__Search API 세부 사항 
____저장소 검색 
____코드 검색 
____이슈 검색 
____사용자 검색 
__예제 애플리케이션 
____사용자 흐름 
__파이썬 
____AGitHub 
____WxPython 
____PyInstaller 
__코드 
____깃 인증 헬퍼 
____윈도우 생성과 인터페이스 
____깃허브 로그인 
____깃허브 검색 
____결과 표시 
__패키징 
__요약 

5장. .NET과 Commit Status API 

__API 
____원시 상태 
____결합 상태 
____상태 생성 
__애플리케이션 작성 
____라이브러리 
____개발 환경 
____요청 보내기 
____OAuth Flow 
____상태 핸들러 
__요약 

6장. 루비와 지킬 블로그 

__지킬에 대한 학습과 웹사이트 구축 
__지킬 소개 
____로컬에서 지킬 운영하기 
__지킬 블로그 시작하기 
__YFM 
____지킬 마크업 
__지킬 명령어 사용하기 
____지킬의 개인 정보보호 수준 
____테마 
____깃허브에 게시하기 
____자체 도메인에 호스팅 
__다른 블로그에서 가져오기 
____워드프레스에서 가져오기 
____워드프레스 대안 도구에서 내보내기 
__지킬 블로그로 웹사이트 스크랩하기 
____지킬 스크랩 전략 
____설정 
____제목 스크랩하기 
____루비와의 상호 작용 정비하기 
____테스트 작성과 캐싱 
____지킬 게시물 작성하기 
____지킬 명령행 도구 사용하기 
____리퀴드 마크업을 이용한 마스터 색인 파일 
____본문과 작성자 스크랩하기 
____지킬 게시물에 이미지 추가하기 
____스타일 커스터마이징 
____깃허브 “포크”를 통한 기여자 초대하기 
____깃허브에 블로그 게시하기 
__요약 

7장. 안드로이드와 Git Data API 

__설치 
____지킬 블로그 생성 
____안드로이드 개발 도구 
__새로운 프로젝트 생성 
____그래이들 빌드 파일 편집하기 
____기본 안드로이드 Main 
__안드로이드 자동화 테스트 
____깃허브 클라이언트에 대한 단위 테스트 
____안드로이드 UI 테스트 
__애플리케이션 구현 
____깃허브에 로그인하기 위한 코드 
____깃허브와 대화하기 위한 코드 
____블로그 콘텐츠 작성 
____깃허브 서비스 
____저장소와 브랜치의 Base SHA 
____blob 생성하기 
____트리 생성하기 
____커밋 생성하기 
____마스터 리소스 업데이트하기 
____모든 테스트 통과하기 
__요약 

8장. 커피스크립트, 휴봇 그리고 Activity API 

__Activity API 
__PR 만족 보장을 위한 계획 
____고려 사항과 제한 사항 
____바닐라 휴봇 생성 
____슬랙 계정 생성 
____로컬에서 휴봇 실행하기 
__헤로쿠 설치 
____헤로쿠 설정 
__Activity API 개요 
____휴봇 확장 기능 작성 
____풀 리퀘스트를 통한 코드 리뷰 
____이벤트 등록을 위한 OAuth 토큰 사용 
____실제 풀 리퀘스트 트리거하기 
____HTTP를 통한 게시 요청으로 PR 알림 처리하기 
__요약 

9장. 자바스크립트와 Git Data API 

__깃허브에서 커피숍 데이터베이스 만들기 
__설정 
____호스트 이름 매핑 
____Support 라이브러리 추가 
__GitHub.js를 사용하는 AngularJS 애플리케이션 
____애플리케이션 데이터 구조 시각화 
____테스트 가능한 앱으로 만들기 
____테스트 데이터 
____CoffeeTech.js 
__지오코딩 지원 
____도시 데이터 
__로그인 추가 
____이미 오류가 있다면? 
__사용자가 보고한 데이터의 표시 
____사용자 제공 데이터 
____풀 리퀘스트 수락하기 
____안전한 로그인 구현 
____인증에는 서버가 필요하다 
____Firebase로 인증 수정 
____Firebase 테스트 
____Firebase 로그인 구현하기 
__요약 

부록 A. 깃허브 엔터프라이즈 

__설치 
__관리 
__엔드포인트 
__완전한 호스트 이름 대 마운트 포인트 
__명령행 클라이언트 도구: cURL 
____Client 라이브러리를 사용하는 요청 예제 
__Management API 
__문서화 

부록 B. 깃허브와 루비, NodeJS(그리고 셸) 

__깃허브와 루비 
____루비 설치 
____중요한 루비와 RVM 개념들 
____루비 설치 시 발생 가능한 잠재적인 문제들 
__깃허브와 NodeJS 
____NodeJS 설치 
____NVM 
____package.json 
__명령행 기본 사항과 셸 
____셸 명령어 
____명령어에 변수 제공 
____명령어를 여러 라인으로 나누기 
____연속적인 명령어에 대한 출력의 파이프 처리 
____리다이렉션

New Arrivals Books in Related Fields

Cartwright, Hugh M. (2021)
한국소프트웨어기술인협회. 빅데이터전략연구소 (2021)