DevOps와 함께 살펴보는
(해커톤의 성패를 좌우하는)
협업/개발 툴
July 2019
Ian Choi, Korea Developer Relations, Microsoft
1. 해커톤, DevOps와 협업
https://ppss.kr/archives/19179
https://www.i-boss.co.kr/ab-2895-2300
화성에서 온 개발자 금성에서 온 디자이너
정확한 프로젝트의 Process 구축
UX에 강한 App 개발
시간과 비용의 단축
속타는 기획자 사장님
https://www.devops.ch/2017/05/10/devops-explained/
https://www.devops.ch/2017/05/10/devops-explained/
점점 변해가는 패러다임
- 영상을 함께 봅시다...
Video source: Formula 1 Pit Stops 1950 & Today
© Microsoft Corporation
사람. 프로세스. 제품.
DevOps란 무엇일까요?
DevOps는 사람, 프로세스,
제품이 함께 결합하여 최종
고객에게 가치를 지속적으로
전달하게 해 줍니다.
“
”
빌드&
테스트
지속적인
딜리버리
(Continuous
Delivery)
배포
운영
모니터링
&
학습
계획
&
추적
개발
DevOps is the union of people, process,
and products to enable continuous
delivery of value to your end users.
“
”
© Microsoft Corporation
IDE (Integrated Development Environment)
다양한 소프트웨어 개발 도구
• 정말 다양한 개발 도구(IDE, 통합 환경)가 있으며, 개발 환경에 따라 선호도가 달라집니다.
© Microsoft Corporation
Version control protocols & related tools
다양한 소프트웨어 개발 도구
Distributed developmentFeature branches Pull requests
Community Release cycles
© Microsoft Corporation
Project management tools
다양한 소프트웨어 개발 도구
© Microsoft Corporation
Continuous integration/deployment
다양한 소프트웨어 개발 도구
2. 여러 협업/개발 툴 중 GitHub +
Azure DevOps 소개
20
Git는 무엇일까?
• Git
• 버전 관리를 위한 도구
• 리눅스 커널의 창시자, 리누스 토발스께서 직접 만드심
• BitKeeper라는 상용 도구를 무료 사용하여 버전 관리를 했었는데 무료 사용이 제고되면서 직접
만들게 되었다고 함
이미지 출처: http://izquotes.com/quote/273567
21
질문1: 버전 관리란 무엇인가요?
• 소스 하나 또는 묶음을 하나의 버전으로 간주하여 관리합니다.
• 파일/폴더를 추가/수정/삭제하여 사람이 직접 묶음을 버전으로 관리하자고 지정
• 원하는 때 예전 버전 내용 전체를 되돌려 볼 수 있음
• 특히 복잡한 코드 개발할 때는 이전 버전과 비교해 보기가 쉬워짐
파일 1개 또는
여러 개 수정
파일 1개 또는
여러 개 수정
(버전 1)
(버전 2)
(버전 3)
22
질문2. 버전 관리를 대체 언제 사용하나요?
1) 개발 협업을 위해 사용합니다.
• 전체 개발 소스를 공유하면서 개발 파트를
나누어 공유
• 같은 모듈을 개발하더라도 소스를 서로
공유하면서 개발
• 이 때, 특정 파일은 변경하지 못하도록 lock을
걸 수도 있습니다 (이걸로 퇴근 못하는 직원 분들도 꽤…)
• 권한 설정을 통해 각 개발자 별로 접근 가능한 소스 목록도 제어하기도 합니다.
2) 개별적으로 버전 등 이력을 관리하기 위해 사용하는 경우도 있습니다.
3) 버전 관리되는 내역 전체를 오픈 소스로 공유하기도 합니다.
개발자
A
모듈A
개발자
B
모듈B
개발자
C
모듈A
개발 프로젝트
전체 소스
23
GitHub는?
• http://www.github.com
• Git 저장소를 직접 설치하지 않고 GitHub를 통해 사용 가능합니다.
• 그런데 GitHub는 단순히 Git 소스 저장소만을 의미하지는 않는다고 생각합니다.
24
몇 가지 좋은 GitHub의 기능
• 좋은 Web UI를 제공합니다.
• gh-pages Branch에 파일을
올리면 [계정명].github.io/[저장소명]
홈페이지가 완성됩니다.
• 여러 질문 & 답변, 이슈 사항을 기록하기 위한 Issues 페이지 제공
• Wiki 제공
• 월 정액으로 돈을 내면 공개되지 않은 사설 저장소 제공
• 돈을 더 내면 권한 관리가 가능한 organization 저장소 제공 (무료도 가능)
• … (너무 많아서…)
25
GitHub - fork
• 다른 사람 저장소를 가져와 제 저장소로 만들어 놓는 기능입니다.
fork
26
GitHub - fork한 다음에는?
Pull
: 업데이트
[내 컴퓨터]
(커밋도
하고..)
Pull
: 업데이트
Push
: 업로드Push
: 업로드
Fork는 누구나 가능합니다.
그러나 누구나 이 저장소를 바꾸게 되면 이상하겠죠?
27
GitHub – pull request
Pull
: 업데이트
[내 컴퓨터]
(커밋도
하고..)
Pull
: 업데이트
Push
: 업로드
Pull
request
: 검토
부탁합니다
원 저장소 소유자 또는 권한이 있는 자가 검토하여
맘에 들면 가져와서 업데이트하고, 토론/반려 등이 가능합니다.
검증된 agile 도구로 팀 전반에
걸쳐 작업을 계획하고, 추적하고,
논의하여 가치를 더욱 빠르게
전달합니다.
어떤 언어, 플랫폼, 클라우드에서도
동작하는 CI/CD로 빌드, 테스트 및
배포를 수행합니다. GitHub 또는 다른
Git 공급자와 연결하여 지속적으로
배포합니다.
클라우드에 호스팅된 무제한 사설
Git 저장소를 얻고, Pull Request 및
고급 파일 관리와 함께 보다 나은
코드 빌드를 위한 협업을
진행합니다.
수동 및 예비 테스트 도구를
사용하여 자신 있게 테스트하고
제공하세요.
클릭 한 번으로 패키지를 만들고,
호스트하고, 팀과 공유하며, CI/CD
파이프라인에 아티팩트를 추가합니다.
Azure Boards Azure ReposAzure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops
➔
모든 팀, 앱, 플랫폼을 위한 지속적인 딜리버리
Azure DevOps
Kanban 보드, 백로그, 팀 대시보드, 사용자 지정
보고를 사용한 작업 추적
Azure Boards
https://azure.com/devops➔
아이디어부터 출시까지 지속적으로 관리
모든 개발 단계에서 모든 아이디어를 추적하여 팀이
작업 항목과 직접적으로 연결된 모든 코드 변경에
계속 맞출 수 있도록 합니다.
스크럼 지원
팀이 기본 제공되는 스크럼 보드 및 계획 도구를
사용하여 스프린트, 스탠드업 및 계획 회의를 실행할
수 있습니다.
인사이트 제공을 위해 빌드된 도구
강력한 분석 도구와 대시보드 위젯을 통해 프로젝트의
상태에 대한 새로운 인사이트를 얻을 수 있습니다.
(2019년 6월, 핸즈온랩 실습 데모 중에서 데모: https://dev.azure.com/ )
Azure DevOps에서 직접 살펴보는 기능
3. 마무리
33
Summary
• DevOps – “사람, 프로세스, 제품”과 해커톤의 성패
• 아이디어를 구체화하면서 함께 협업하며 만들어 가는 과정
• “개발”: 소스 관리의 중요성
• Git와 GitHub의 차이점, 이제 모르시는 분은 없겠죠? ☺
• 개발자, 디자이너, 기획자, … ➔ 모두 함께 고민하는 공동의 공간 & 터
• 다양성을 포용하는 협업, 개발 툴 사용을 고려해봅시다
Finished!

DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴

  • 1.
    DevOps와 함께 살펴보는 (해커톤의성패를 좌우하는) 협업/개발 툴 July 2019 Ian Choi, Korea Developer Relations, Microsoft
  • 3.
  • 5.
  • 6.
  • 8.
    화성에서 온 개발자금성에서 온 디자이너 정확한 프로젝트의 Process 구축 UX에 강한 App 개발 시간과 비용의 단축 속타는 기획자 사장님
  • 9.
  • 10.
  • 12.
    점점 변해가는 패러다임 -영상을 함께 봅시다... Video source: Formula 1 Pit Stops 1950 & Today
  • 13.
    © Microsoft Corporation 사람.프로세스. 제품. DevOps란 무엇일까요? DevOps는 사람, 프로세스, 제품이 함께 결합하여 최종 고객에게 가치를 지속적으로 전달하게 해 줍니다. “ ” 빌드& 테스트 지속적인 딜리버리 (Continuous Delivery) 배포 운영 모니터링 & 학습 계획 & 추적 개발 DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. “ ”
  • 15.
    © Microsoft Corporation IDE(Integrated Development Environment) 다양한 소프트웨어 개발 도구 • 정말 다양한 개발 도구(IDE, 통합 환경)가 있으며, 개발 환경에 따라 선호도가 달라집니다.
  • 16.
    © Microsoft Corporation Versioncontrol protocols & related tools 다양한 소프트웨어 개발 도구 Distributed developmentFeature branches Pull requests Community Release cycles
  • 17.
    © Microsoft Corporation Projectmanagement tools 다양한 소프트웨어 개발 도구
  • 18.
    © Microsoft Corporation Continuousintegration/deployment 다양한 소프트웨어 개발 도구
  • 19.
    2. 여러 협업/개발툴 중 GitHub + Azure DevOps 소개
  • 20.
    20 Git는 무엇일까? • Git •버전 관리를 위한 도구 • 리눅스 커널의 창시자, 리누스 토발스께서 직접 만드심 • BitKeeper라는 상용 도구를 무료 사용하여 버전 관리를 했었는데 무료 사용이 제고되면서 직접 만들게 되었다고 함 이미지 출처: http://izquotes.com/quote/273567
  • 21.
    21 질문1: 버전 관리란무엇인가요? • 소스 하나 또는 묶음을 하나의 버전으로 간주하여 관리합니다. • 파일/폴더를 추가/수정/삭제하여 사람이 직접 묶음을 버전으로 관리하자고 지정 • 원하는 때 예전 버전 내용 전체를 되돌려 볼 수 있음 • 특히 복잡한 코드 개발할 때는 이전 버전과 비교해 보기가 쉬워짐 파일 1개 또는 여러 개 수정 파일 1개 또는 여러 개 수정 (버전 1) (버전 2) (버전 3)
  • 22.
    22 질문2. 버전 관리를대체 언제 사용하나요? 1) 개발 협업을 위해 사용합니다. • 전체 개발 소스를 공유하면서 개발 파트를 나누어 공유 • 같은 모듈을 개발하더라도 소스를 서로 공유하면서 개발 • 이 때, 특정 파일은 변경하지 못하도록 lock을 걸 수도 있습니다 (이걸로 퇴근 못하는 직원 분들도 꽤…) • 권한 설정을 통해 각 개발자 별로 접근 가능한 소스 목록도 제어하기도 합니다. 2) 개별적으로 버전 등 이력을 관리하기 위해 사용하는 경우도 있습니다. 3) 버전 관리되는 내역 전체를 오픈 소스로 공유하기도 합니다. 개발자 A 모듈A 개발자 B 모듈B 개발자 C 모듈A 개발 프로젝트 전체 소스
  • 23.
    23 GitHub는? • http://www.github.com • Git저장소를 직접 설치하지 않고 GitHub를 통해 사용 가능합니다. • 그런데 GitHub는 단순히 Git 소스 저장소만을 의미하지는 않는다고 생각합니다.
  • 24.
    24 몇 가지 좋은GitHub의 기능 • 좋은 Web UI를 제공합니다. • gh-pages Branch에 파일을 올리면 [계정명].github.io/[저장소명] 홈페이지가 완성됩니다. • 여러 질문 & 답변, 이슈 사항을 기록하기 위한 Issues 페이지 제공 • Wiki 제공 • 월 정액으로 돈을 내면 공개되지 않은 사설 저장소 제공 • 돈을 더 내면 권한 관리가 가능한 organization 저장소 제공 (무료도 가능) • … (너무 많아서…)
  • 25.
    25 GitHub - fork •다른 사람 저장소를 가져와 제 저장소로 만들어 놓는 기능입니다. fork
  • 26.
    26 GitHub - fork한다음에는? Pull : 업데이트 [내 컴퓨터] (커밋도 하고..) Pull : 업데이트 Push : 업로드Push : 업로드 Fork는 누구나 가능합니다. 그러나 누구나 이 저장소를 바꾸게 되면 이상하겠죠?
  • 27.
    27 GitHub – pullrequest Pull : 업데이트 [내 컴퓨터] (커밋도 하고..) Pull : 업데이트 Push : 업로드 Pull request : 검토 부탁합니다 원 저장소 소유자 또는 권한이 있는 자가 검토하여 맘에 들면 가져와서 업데이트하고, 토론/반려 등이 가능합니다.
  • 28.
    검증된 agile 도구로팀 전반에 걸쳐 작업을 계획하고, 추적하고, 논의하여 가치를 더욱 빠르게 전달합니다. 어떤 언어, 플랫폼, 클라우드에서도 동작하는 CI/CD로 빌드, 테스트 및 배포를 수행합니다. GitHub 또는 다른 Git 공급자와 연결하여 지속적으로 배포합니다. 클라우드에 호스팅된 무제한 사설 Git 저장소를 얻고, Pull Request 및 고급 파일 관리와 함께 보다 나은 코드 빌드를 위한 협업을 진행합니다. 수동 및 예비 테스트 도구를 사용하여 자신 있게 테스트하고 제공하세요. 클릭 한 번으로 패키지를 만들고, 호스트하고, 팀과 공유하며, CI/CD 파이프라인에 아티팩트를 추가합니다. Azure Boards Azure ReposAzure Pipelines Azure Test Plans Azure Artifacts https://azure.com/devops ➔ 모든 팀, 앱, 플랫폼을 위한 지속적인 딜리버리 Azure DevOps
  • 29.
    Kanban 보드, 백로그,팀 대시보드, 사용자 지정 보고를 사용한 작업 추적 Azure Boards https://azure.com/devops➔ 아이디어부터 출시까지 지속적으로 관리 모든 개발 단계에서 모든 아이디어를 추적하여 팀이 작업 항목과 직접적으로 연결된 모든 코드 변경에 계속 맞출 수 있도록 합니다. 스크럼 지원 팀이 기본 제공되는 스크럼 보드 및 계획 도구를 사용하여 스프린트, 스탠드업 및 계획 회의를 실행할 수 있습니다. 인사이트 제공을 위해 빌드된 도구 강력한 분석 도구와 대시보드 위젯을 통해 프로젝트의 상태에 대한 새로운 인사이트를 얻을 수 있습니다.
  • 30.
    (2019년 6월, 핸즈온랩실습 데모 중에서 데모: https://dev.azure.com/ ) Azure DevOps에서 직접 살펴보는 기능
  • 32.
  • 33.
    33 Summary • DevOps –“사람, 프로세스, 제품”과 해커톤의 성패 • 아이디어를 구체화하면서 함께 협업하며 만들어 가는 과정 • “개발”: 소스 관리의 중요성 • Git와 GitHub의 차이점, 이제 모르시는 분은 없겠죠? ☺ • 개발자, 디자이너, 기획자, … ➔ 모두 함께 고민하는 공동의 공간 & 터 • 다양성을 포용하는 협업, 개발 툴 사용을 고려해봅시다
  • 34.