2018.11.01

'기트와 깃허브' 활용으로 본 마이크로소프트의 오픈소스 전략

Simon Bisson | InfoWorld
마이크로소프트의 깃허브(GitHub) 인수가 완료됐다. 이제 자마린(Xamarin)의 CEO를 역임한 내트 프리드먼이 클라우드 코드 관리 서비스를 책임진다. 인수는 당연한 수순이었다. 지난 몇 년간, 마이크로소프트 개발 프로세스의 기트 및 깃허브 의존도가 점점 더 높아졌었다. 깃허브는 경영진 문제로 운영과 발전에 어려움을 겪고 있었고, 짧은 입찰 경쟁 끝에 마이크로소프트가 깃허브를 인수했다.



깃허브의 옥토버스 현황 연례 보고서(State of the Octoverse) 보고서만 봐도 깃허브가 마이크로소프트에 얼마나 중요한지 알 수 있다. 상위 10대 프로젝트 중 3개가 핵심 마이크로소프트 도구들이며, 3개 이상이 마이크로소프트 플랫폼 전체에 사용되는 중요한 오픈소스 프로젝트들이다. 마이크로소프트는 깃허브에 호스팅된 오픈소스 프로젝트에 가장 크게 기여한 영리 기업으로 지난해에만 7,700커밋 이상을 기여했다.

닷넷 코어, 파워셸 코어(PowerShell Core), F#, C#, 로질린 컴플라이어(Roslyn compiler), 비주얼 스튜디오 코드(Visual Studio Code), 타입스크립트(TypeScript) 같은 프로젝트들이 깃허브에 호스팅 되어 있다. 이들 모두 개방적인(오픈) 방식의 디자인 및 개발, 써드파티의 피드백이 중요한 역할을 하는 프로젝트들이다. 또한 마이크로소프트의 새로운 독스 문서화(Docs documentation) 서비스 이면의 백엔드로 모든 문서화에서 풀 리퀘스트를 사용할 수 있다. 더 나아가, 윈도우는 마이크로소프트 기트용 가상 파일 시스템(Virtual File System for Git)을 사용하는 프라이빗 내부 레포지토리(저장소)에 기반을 두고 있기는 하지만 전체 레포지토리가 아닌 필요한 자산만 다운로드 하는 방법으로 많은 코드 베이스를 처리하는 데 기트를 사용한다.

비주얼 스튜디오 코드의 기트
마이크로소프트는 기트와 깃허브를 곳곳에 사용하고 있다. 또한 기트와 깃허브는, 마이크로소프트 개발자 도구에 내장되어 있으며, 개발자의 윈도우와 애저용 앱 빌드에도 활용된다. 새 비주얼 스튜디오 코드(Visual Studio Code) 사본을 설치하면 윈도우 기트 클라이언트를 다운로드 및 설치하라고 안내한다. GVFS, 로컬 기트 인스톨, 또는 깃허브와 깃랩(GitLab), 기타 클라우드에 호스팅된 기트 기반 서비스의 계정 등을 사용해 모든 기트 기반 레포지토리를 연결해 사용하기 위해서다.

기트 윈도우(Git Windows) 클라이언트는 명령행 도구이다. 32비트 및 64비트 버전이 있고, 기트 기능을 윈도우와 윈도우 개발자 도구에 쉽게 통합할 수 있는 도구이다. 설치도 쉬운 편이다. 윈도우 익스플로러 배시(Bash) 기반 쉘(Shell), 윈도우의 자체 명령행과 통합되어 있다. 비주얼 스튜디오 코드를 설치하지 않은 경우, 기트 윈도우 인스톨러에서 다운로드 할 수 있다. 그리고 기트의 기본 편집기(Editor)로 설정할 수 있다.

클라이언트는 윈도우 경로(Windows PATH) 변경을 방지하기 위해 기트 배시 사용을 권장한다. 그러나 다른 개발 도구와 함께, 윈도우 명령행 내부에서 사용할 계획인 경우를 중심으로 큰 문제가 되지 않는다. 명령행 지원과 함께 설치하는 것이 좋다. 기트와 묶여 제공되는 유닉스 스타일 도구를 사용할 수는 없지만, 윈도우 명령행과 함께 비주얼 스튜디오 코드에 내장된 터미널에서 기트를 이용하는 방법이다.

윈도우용 기트는 보안 연결에 OpenSSL을 사용하도록 기본 설정되어 있다. 과거에는 지금보다 더 문제가 됐었다. 지금은 윈도우 10이 기본 SSL 도구를 제공하고 있다. 윈도우 보안 채널 도구 사용을 지원하는 대안이 있다. 액티브 디렉토리에 저장된 기업 인증서로 보안을 처리하는 방식으로 로컬 기트 레포지토리에 대한 접근을 잠글 필요가 있는 경우 더 나은 방법이다.

윈도우로 기트 사용
최근 윈도우 10 빌드에는 윈도우 텍스트 편집기(노트패드 아님)에서 유닉스 방식의 라인-엔딩을 지원하는 기능이 추가됐다. 이는 기트의 라인-엔딩 변환 옵션을 덜 중요하게 만든다. 그러나 구버전 윈도우에 필요하다. 각각 윈도우 방식의 라인-엔딩과 유닉스 방식으로 크로스 플랫폼 코드를 확인한다는 의미다. 이 옵션을 사용하면, 라인-엔딩이 빌드 파이프라인이나 배포 도구에 영향을 주는 것을 걱정하지 않고, 어떤 윈도우 편집기나 사용해 레포지토리 코드를 편집할 수 있다. 윈도우 콘솔도 유사하게 개선돼 기트용 터미널로 MinTTY를 설치해 사용하지 않고, 더 쉽게 기본 콘솔에서 기트 작업을 할 수 있다.

설치가 끝나면, 비주얼 스튜디오 코드 기본 터미널을 포함해 모든 윈도우 명령행에서 윈도우용 기트에 접근할 수 있다. 단 WSL(Windows Subsystem for Linux) 유닉스 버전을 설치해야 한다.

자동 업데이트 확인 설정을 하는 것이 좋다. 자주 바뀌고, 정기적으로 릴리스 되는 프로젝트이기 때문이다. PC를 바꿔가면서 작업하는 사람들을 위한 포터블 버전도 있다. USB 플래시 드라이브에 저장해 실행시킬 수 있는 버전이다. 즉 많은 개발 도구를 하나의 드라이브에 담아서 들고 다니면서 작업할 수 있다.

윈도우 명령행에서 기트 명령을 사용하거나, 비주얼 스튜디오 코드 터미널을 통해 모든 기트 레포지토리의 코드를 확인할 수 있다. 기트의 폴더 보기(View of a Folder)는 변경 사항을 보여주고, 많이 사용하는 기트 명령에 빠르게 접근할 수 있다. 변경을 중단하거나 업데이트를 커밋하면서  로컬 사본을 업데이트할 수 있다. 아주 쉽고 빠르게 마스터 사본에서 새 브랜치를 생성하고 공유하는 코드 작업 프로세스를 능률화할 수 있다.

기트와 비주얼 스튜디오 통합은 합리적인 접근법이다. 마이크로소프트는 오픈소스 커뮤니티에 널리 도입된 개발 환경에 인기 있는 오픈소스 도구를 구현할 수 있다. 개발자는 새 명령을 학습하지 않고도 선호하는 UI에 따라 명령행이나 마우스를 모두 사용할 수 있다.

비주얼 스튜디오의 기트 및 깃허브
비주얼 스튜디오를 사용하는 경우, 코드를 원격 레포지토리와 통합할 수 있는 도구들이 많다. 현재 빌드는 기트를 기본으로 지원한다. 팀(Team) 탭의 연결 도구를 사용해 레포지토리를 열 수 있다. 로컬 기트 레포지토리를 사용하거나, 애저 데브옵스(Azure Devops)와 비주얼 스튜디오 팀 서비스(Visual Studio Team Services)의 기트를 사용해 작업할 수 있다. 자신의 작업을 위해 신속히 코드를 브랜치(분기)할 수 있다. 원격 마스터에서 로컬 브랜치를 생성하는 것이다. 커밋 명령문을 추가, 변경 사항을 풀 리퀘스트를 통해 마스터 브랜치에 다시 병합할 준비가 된 문서를 생성한다. 초기 동기화는 원격 레포지토리에 로컬 브랜치 사본을 생성한다. 여기에서 변경을 적용하고, 코드 검토를 위한 풀 리스트를 생성할 수 있다.

깃허브 자체에도 비주얼 스튜디오 익스텐션이 있다. 비주얼 스튜디오와 함께 설치하거나, 나중에 따로 설치할 수 있다. 이 때 이중 인증으로 더 안전하게 연결할 수 있다. 간편하게 계정에 귀속된 레포지토리를 이용할 수 있고, 비주얼 스튜디오 내부에서 표준 서비스, 또는 엔터프라이즈 서비스에 새로운 레포지토리를 생성할 수 있고 기존 프로젝트를 공표할 수도 있다. 익스텐션은 깃허브를 팀 익스플로러 환경의 일부로 만들어준다(풀 리퀘스트 관리 기능 포함).

---------------------------------------------------------------
오픈소스 인기기사
->칼럼 | 오픈소스는 당신이 생각하는 그런 커뮤니티가 아니다
->핵심 오픈소스 SW 재단 8곳, 그리고 그들이 중요한 이유
->'이런 사람 꼭 있다' 오픈소스 프로젝트에서 만날법한 11가지 유형
->구글 고(Go)의 위력을 입증하는 오픈소스 프로젝트 10가지
->미약한 취미에서 창대한 협업 프로젝트로 '리눅스의 어제와 오늘'
->오픈소스의 두 얼굴··· 탁월한 가치, 만만치 않은 맹점
->무료 오픈소스 SW만으로 기업을 운영하는 방법
->'탐욕도 동력!'··· 돈 벌어주는 오픈소스의 비밀
->오픈소스 소프트웨어를 사용하지 않는 7가지 이유
---------------------------------------------------------------

기타 윈도우 개발자를 위한 기트 도구들
비주얼 스튜디오 코드 사용자는 비주얼 스튜디오 마켓플레이스(Visual Studio Marketplace)에서 깃허브 플로우를 지원하는 써드파티 깃허브 도구들을 찾을 수 있다. 기타 인기 있는 기트플로우(Gitflow) 등 특정 기트 옵션과 워크플로를 지원하는 기트 기반 익스텐션들이 있다. 또 문제 추적 및 알림 관련 도구들도 찾을 수 있다. 최근 추가된 깃허브 기능들은 비주얼 스튜디오 코드를 데브옵스 작업의 유용한 허브로 만들어준다. 사용자의 개발용 PC에 깃허브 사용자 환경과 경험을 가져오는 데스크톱 도구들도 있다. 협력식 개발을 지원하고, 코드 검토 과정에서 브랜치의 차이점을 비교하는 시각화 도구가 추가된다.

현대적인 데브옵스 기법에서 중요한 것 중 하나가 버전 컨트롤(관리)이다. 윈도우와 마이크로소프트 개발 도구에 기트를 추가하면 민첩하고, 반응적인 개발을 할 수 있다. 기트가 비주얼 스튜디오에 통합되어 있고, 비주얼 스튜디오 코드에 사용할 수 있는 기트 지원 도구들이 많다. 이를 적극적으로 활용하는 것이 좋다. 

*Simon Bisson는 인포월드 칼럼니스트다. ciokr@idg.co.kr

2018.11.01

'기트와 깃허브' 활용으로 본 마이크로소프트의 오픈소스 전략

Simon Bisson | InfoWorld
마이크로소프트의 깃허브(GitHub) 인수가 완료됐다. 이제 자마린(Xamarin)의 CEO를 역임한 내트 프리드먼이 클라우드 코드 관리 서비스를 책임진다. 인수는 당연한 수순이었다. 지난 몇 년간, 마이크로소프트 개발 프로세스의 기트 및 깃허브 의존도가 점점 더 높아졌었다. 깃허브는 경영진 문제로 운영과 발전에 어려움을 겪고 있었고, 짧은 입찰 경쟁 끝에 마이크로소프트가 깃허브를 인수했다.



깃허브의 옥토버스 현황 연례 보고서(State of the Octoverse) 보고서만 봐도 깃허브가 마이크로소프트에 얼마나 중요한지 알 수 있다. 상위 10대 프로젝트 중 3개가 핵심 마이크로소프트 도구들이며, 3개 이상이 마이크로소프트 플랫폼 전체에 사용되는 중요한 오픈소스 프로젝트들이다. 마이크로소프트는 깃허브에 호스팅된 오픈소스 프로젝트에 가장 크게 기여한 영리 기업으로 지난해에만 7,700커밋 이상을 기여했다.

닷넷 코어, 파워셸 코어(PowerShell Core), F#, C#, 로질린 컴플라이어(Roslyn compiler), 비주얼 스튜디오 코드(Visual Studio Code), 타입스크립트(TypeScript) 같은 프로젝트들이 깃허브에 호스팅 되어 있다. 이들 모두 개방적인(오픈) 방식의 디자인 및 개발, 써드파티의 피드백이 중요한 역할을 하는 프로젝트들이다. 또한 마이크로소프트의 새로운 독스 문서화(Docs documentation) 서비스 이면의 백엔드로 모든 문서화에서 풀 리퀘스트를 사용할 수 있다. 더 나아가, 윈도우는 마이크로소프트 기트용 가상 파일 시스템(Virtual File System for Git)을 사용하는 프라이빗 내부 레포지토리(저장소)에 기반을 두고 있기는 하지만 전체 레포지토리가 아닌 필요한 자산만 다운로드 하는 방법으로 많은 코드 베이스를 처리하는 데 기트를 사용한다.

비주얼 스튜디오 코드의 기트
마이크로소프트는 기트와 깃허브를 곳곳에 사용하고 있다. 또한 기트와 깃허브는, 마이크로소프트 개발자 도구에 내장되어 있으며, 개발자의 윈도우와 애저용 앱 빌드에도 활용된다. 새 비주얼 스튜디오 코드(Visual Studio Code) 사본을 설치하면 윈도우 기트 클라이언트를 다운로드 및 설치하라고 안내한다. GVFS, 로컬 기트 인스톨, 또는 깃허브와 깃랩(GitLab), 기타 클라우드에 호스팅된 기트 기반 서비스의 계정 등을 사용해 모든 기트 기반 레포지토리를 연결해 사용하기 위해서다.

기트 윈도우(Git Windows) 클라이언트는 명령행 도구이다. 32비트 및 64비트 버전이 있고, 기트 기능을 윈도우와 윈도우 개발자 도구에 쉽게 통합할 수 있는 도구이다. 설치도 쉬운 편이다. 윈도우 익스플로러 배시(Bash) 기반 쉘(Shell), 윈도우의 자체 명령행과 통합되어 있다. 비주얼 스튜디오 코드를 설치하지 않은 경우, 기트 윈도우 인스톨러에서 다운로드 할 수 있다. 그리고 기트의 기본 편집기(Editor)로 설정할 수 있다.

클라이언트는 윈도우 경로(Windows PATH) 변경을 방지하기 위해 기트 배시 사용을 권장한다. 그러나 다른 개발 도구와 함께, 윈도우 명령행 내부에서 사용할 계획인 경우를 중심으로 큰 문제가 되지 않는다. 명령행 지원과 함께 설치하는 것이 좋다. 기트와 묶여 제공되는 유닉스 스타일 도구를 사용할 수는 없지만, 윈도우 명령행과 함께 비주얼 스튜디오 코드에 내장된 터미널에서 기트를 이용하는 방법이다.

윈도우용 기트는 보안 연결에 OpenSSL을 사용하도록 기본 설정되어 있다. 과거에는 지금보다 더 문제가 됐었다. 지금은 윈도우 10이 기본 SSL 도구를 제공하고 있다. 윈도우 보안 채널 도구 사용을 지원하는 대안이 있다. 액티브 디렉토리에 저장된 기업 인증서로 보안을 처리하는 방식으로 로컬 기트 레포지토리에 대한 접근을 잠글 필요가 있는 경우 더 나은 방법이다.

윈도우로 기트 사용
최근 윈도우 10 빌드에는 윈도우 텍스트 편집기(노트패드 아님)에서 유닉스 방식의 라인-엔딩을 지원하는 기능이 추가됐다. 이는 기트의 라인-엔딩 변환 옵션을 덜 중요하게 만든다. 그러나 구버전 윈도우에 필요하다. 각각 윈도우 방식의 라인-엔딩과 유닉스 방식으로 크로스 플랫폼 코드를 확인한다는 의미다. 이 옵션을 사용하면, 라인-엔딩이 빌드 파이프라인이나 배포 도구에 영향을 주는 것을 걱정하지 않고, 어떤 윈도우 편집기나 사용해 레포지토리 코드를 편집할 수 있다. 윈도우 콘솔도 유사하게 개선돼 기트용 터미널로 MinTTY를 설치해 사용하지 않고, 더 쉽게 기본 콘솔에서 기트 작업을 할 수 있다.

설치가 끝나면, 비주얼 스튜디오 코드 기본 터미널을 포함해 모든 윈도우 명령행에서 윈도우용 기트에 접근할 수 있다. 단 WSL(Windows Subsystem for Linux) 유닉스 버전을 설치해야 한다.

자동 업데이트 확인 설정을 하는 것이 좋다. 자주 바뀌고, 정기적으로 릴리스 되는 프로젝트이기 때문이다. PC를 바꿔가면서 작업하는 사람들을 위한 포터블 버전도 있다. USB 플래시 드라이브에 저장해 실행시킬 수 있는 버전이다. 즉 많은 개발 도구를 하나의 드라이브에 담아서 들고 다니면서 작업할 수 있다.

윈도우 명령행에서 기트 명령을 사용하거나, 비주얼 스튜디오 코드 터미널을 통해 모든 기트 레포지토리의 코드를 확인할 수 있다. 기트의 폴더 보기(View of a Folder)는 변경 사항을 보여주고, 많이 사용하는 기트 명령에 빠르게 접근할 수 있다. 변경을 중단하거나 업데이트를 커밋하면서  로컬 사본을 업데이트할 수 있다. 아주 쉽고 빠르게 마스터 사본에서 새 브랜치를 생성하고 공유하는 코드 작업 프로세스를 능률화할 수 있다.

기트와 비주얼 스튜디오 통합은 합리적인 접근법이다. 마이크로소프트는 오픈소스 커뮤니티에 널리 도입된 개발 환경에 인기 있는 오픈소스 도구를 구현할 수 있다. 개발자는 새 명령을 학습하지 않고도 선호하는 UI에 따라 명령행이나 마우스를 모두 사용할 수 있다.

비주얼 스튜디오의 기트 및 깃허브
비주얼 스튜디오를 사용하는 경우, 코드를 원격 레포지토리와 통합할 수 있는 도구들이 많다. 현재 빌드는 기트를 기본으로 지원한다. 팀(Team) 탭의 연결 도구를 사용해 레포지토리를 열 수 있다. 로컬 기트 레포지토리를 사용하거나, 애저 데브옵스(Azure Devops)와 비주얼 스튜디오 팀 서비스(Visual Studio Team Services)의 기트를 사용해 작업할 수 있다. 자신의 작업을 위해 신속히 코드를 브랜치(분기)할 수 있다. 원격 마스터에서 로컬 브랜치를 생성하는 것이다. 커밋 명령문을 추가, 변경 사항을 풀 리퀘스트를 통해 마스터 브랜치에 다시 병합할 준비가 된 문서를 생성한다. 초기 동기화는 원격 레포지토리에 로컬 브랜치 사본을 생성한다. 여기에서 변경을 적용하고, 코드 검토를 위한 풀 리스트를 생성할 수 있다.

깃허브 자체에도 비주얼 스튜디오 익스텐션이 있다. 비주얼 스튜디오와 함께 설치하거나, 나중에 따로 설치할 수 있다. 이 때 이중 인증으로 더 안전하게 연결할 수 있다. 간편하게 계정에 귀속된 레포지토리를 이용할 수 있고, 비주얼 스튜디오 내부에서 표준 서비스, 또는 엔터프라이즈 서비스에 새로운 레포지토리를 생성할 수 있고 기존 프로젝트를 공표할 수도 있다. 익스텐션은 깃허브를 팀 익스플로러 환경의 일부로 만들어준다(풀 리퀘스트 관리 기능 포함).

---------------------------------------------------------------
오픈소스 인기기사
->칼럼 | 오픈소스는 당신이 생각하는 그런 커뮤니티가 아니다
->핵심 오픈소스 SW 재단 8곳, 그리고 그들이 중요한 이유
->'이런 사람 꼭 있다' 오픈소스 프로젝트에서 만날법한 11가지 유형
->구글 고(Go)의 위력을 입증하는 오픈소스 프로젝트 10가지
->미약한 취미에서 창대한 협업 프로젝트로 '리눅스의 어제와 오늘'
->오픈소스의 두 얼굴··· 탁월한 가치, 만만치 않은 맹점
->무료 오픈소스 SW만으로 기업을 운영하는 방법
->'탐욕도 동력!'··· 돈 벌어주는 오픈소스의 비밀
->오픈소스 소프트웨어를 사용하지 않는 7가지 이유
---------------------------------------------------------------

기타 윈도우 개발자를 위한 기트 도구들
비주얼 스튜디오 코드 사용자는 비주얼 스튜디오 마켓플레이스(Visual Studio Marketplace)에서 깃허브 플로우를 지원하는 써드파티 깃허브 도구들을 찾을 수 있다. 기타 인기 있는 기트플로우(Gitflow) 등 특정 기트 옵션과 워크플로를 지원하는 기트 기반 익스텐션들이 있다. 또 문제 추적 및 알림 관련 도구들도 찾을 수 있다. 최근 추가된 깃허브 기능들은 비주얼 스튜디오 코드를 데브옵스 작업의 유용한 허브로 만들어준다. 사용자의 개발용 PC에 깃허브 사용자 환경과 경험을 가져오는 데스크톱 도구들도 있다. 협력식 개발을 지원하고, 코드 검토 과정에서 브랜치의 차이점을 비교하는 시각화 도구가 추가된다.

현대적인 데브옵스 기법에서 중요한 것 중 하나가 버전 컨트롤(관리)이다. 윈도우와 마이크로소프트 개발 도구에 기트를 추가하면 민첩하고, 반응적인 개발을 할 수 있다. 기트가 비주얼 스튜디오에 통합되어 있고, 비주얼 스튜디오 코드에 사용할 수 있는 기트 지원 도구들이 많다. 이를 적극적으로 활용하는 것이 좋다. 

*Simon Bisson는 인포월드 칼럼니스트다. ciokr@idg.co.kr

X