일반적인 사용 사례

Visual Studio Live Share의 핵심 목표는 협업 시간과 방법(사용할 커뮤니케이션 도구, “올바른” 소프트웨어 방법 또는 SCM 워크플로 등)을 논의하지 않고도 개발자가 더 쉽게 서로 협업하게 하는 것입니다. 이렇게 하면 자연스러운 방식으로 필요할 때는 언제든 진행되면서도 선호하는 작업 방식을 보완하는 상호작용을 도구에서 지원할 수 있게 됩니다.

이 문서에서는 Visual Studio Live Share를 이미 활용 중인 사용 사례를 살펴보고, Microsoft에서 이러한 사용 사례를 지원하는 방법과 피드백을 바탕으로 향후 최적화하는 방안을 설명합니다. 아래에서 다루지 않는 사용 사례에 Live Share를 활용 중이거나 특정 사용 사례 지원을 개선할 수 있는 방안이 있다면, Microsoft에 알려주세요.

빠른 지원

버그를 해결하거나 환경을 설정하는 등의 상황에서 문제가 발생한다면 Visual Studio Live Share를 사용하여 다른 동료의 지원을 바로 받을 수 있습니다. 대부분의 경우에는 도움을 제공하는 사용자에게 어떤 맥락이 필요한지를 바로 파악할 수 없습니다. 그래서 Live Share를 사용하면 전체 프로젝트에 쉽게 액세스하고, 필요하다면 공유하는 요소(로컬 서버, 읽기 전용 터미널 등)를 점점 늘릴 수 있습니다. 코드 조각 및/또는 오류 메시지를 전송할 필요가 없습니다.

또한 Live Share에서는 “게스트”가 필수 플랫폼 SDK(Node.js, Go, .NET Core 등)나 도구 확장을 설치하지 않고도 활성 디버그 세션을 공유할 수 있어, 해결책을 더 빨리 얻고 “내 컴퓨터에서는 재현되지 않는” 상황을 방지할 수 있습니다. Live Share를 사용하면 어떤 프로그래밍 언어 또는 런타임 환경(Kubernetes, React Native 앱 등)에서도 다른 사용자와 디버그 상태를 공유할 수 있으며, 따라서 도움이 필요한 어떤 문제도 공유할 수 있습니다.

근무 시간

많은 기업과 교육 기관(학교, 온라인 교육 과정 등)에서는 미리 지정된 시간에 고객/직원/학생에게 지원을 제공하며, 대부분의 경우에는 반복적으로(예: 매일 금요일 오후 3시~5시)에 제공합니다. 이 경우 “근무 시간”은 일시적인 지원이 아닌 예약된 형태의 “빠른 지원”이 됩니다. Live Share를 사용하면 쉽게 도움을 받을 수 있습니다. 도움을 제공하는 “전문가”가 컴퓨터를 설치하지 않고도 협업 세션에 바로 참가하여 질문에 대답할 수 있기 때문입니다.

페어 프로그래밍

Visual Studio Live Share를 사용하는 가장 대표적인 시나리오는 두 명 이상의 개발자가 지식 공유, 팀 결속력 증진, 그리고 가능하다면 제품 품질 개선을 위해 공유 작업에서 함께 작업하는 “페어 프로그래밍”입니다. 페어 프로그래밍의 정확한 형태와 느낌은 다른 무엇보다도 다음 항목에 따라 팀과 상황별로 크게 다를 수 있습니다.

  1. 협업하는 “작업”의 범위(버그, 사용자 스토리 등)

  2. 협업 세션의 예상 진행 시간(2분, 1시간, 전체 시간, 1주일에 한 번, TBD 등)

  3. 관련 사용자 수(2명, 팀 전체 등)

  4. 각 참가자의 역할(“진행자”, 관찰자/검토자, 실무 전문가 등)

  5. 참가자의 근접성(예: 전 세계에서 동일한 건물에 위치)

Live Share는 전술한 모든 문제와 무관하게 설계되었으며, 그 대신 최대한 “편의적이며” 사용자의 상황에 맞춤화된 페어 프로그래밍을 지원하고자 노력하고 있습니다. 다시 말해 Live Share를 사용하면 두 개발자가 단일 키보드 및 화면을 공유하는 대신, 개발자들이 자신의 자율성이나 환경 기본 설정을 포기하지 않고도 공유하는 목표를 위해 작업할 수 있는 형태의 페어 프로그래밍을 사용할 수 있습니다. 사용자는 독립적으로 또는 공동으로 작업하며, 각 참가자는 본인의 사고 과정을 협업에 적용할 수 있습니다.

이러한 사용 사례를 더 자세히 살펴보겠습니다. 다음 항목은 사용자들이 Live Share를 활용하는 페어 프로그래밍 형태를 나타냅니다.

몹 프로그래밍

몹 프로그래밍(또는 스웜 프로그래밍)은 본질적으로 페어 프로그래밍이지만 2명 이상이 참여합니다. 따라서 페어 프로그래밍에 대한 Live Share의 모든 혜택이 동일하게 적용됩니다. 나아가 일부 팀은 전체 시간이 아닌 필요할 때만 “스웜”을 실행합니다(예: 화재 대피 훈련을 위한 팀 소집).

현재 Live Share에서는 한 세션에 최대 30개의 게스트가 참여할 수 있습니다.

세션에서 게스트 30명을 활성화하려면 다음 작업을 수행합니다.

  • VS Code: “liveshare.increasedGuestLimit”:”true”를 settings.json에 추가
  • VS: 도구 > 옵션 > Live Share > 게스트 제한 증가를 “True”로 설정

코딩 대회/해커톤

코딩 대회 및 해커톤은 몹 프로그래밍의 효과적인 단기 단일 작업 버전입니다. 팀의 멤버와 멤버의 현재 역할이 동적으로 변할 수 있습니다. 이 사용 사례는 대부분 시간에 민감하기 때문에, 새로운 도구를 도입하지 실시간으로 협업하는 기능과 단일 화면 또는 키보드에 제한되지 않고 협업하는 기능은 속도 개선에 도움이 됩니다.

이 환경에 있는 참가자는 항상 완전히 “신뢰”할 수는 없으며, 언제든지 세션에서 게스트를 제거(및 차단)할 수 있습니다. 이렇게 하면 “호스트”는 자신의 환경을 완전히 제어할 수 있습니다.

학교 그룹 프로젝트

그룹 프로젝트는 여러 학생이 협업한다는 점에서 몹 프로그래밍과 매우 유사하며, 단일 작업 집중과 개별 작업 동시 진행 사이를 원활하게 전환할 수 있습니다. 사용자는 비동기적으로 협업하는 버전 제어에 의존하는 대신 Live Share를 사용하여 실시간으로 협업하여, 그룹 작업이 제공하는 사회적 및 교육적 혜택을 누릴 수 있습니다.

개발자 스트리밍

(Twitch 또는 Mixer를 통한) 개발자 스트리밍은 매력적인 새로운 형태의 교육입니다. Live Share의 목적은 (요청이 들어오긴 하지만) 방송 플랫폼을 대체하는 것이 아닙니다. Live Share의 목적은 호스트가 한 명 이상의 게스트와 프로그램을 페어링하고 관련 상호 작용을 스트리밍하게 하는 것입니다. 이 방식을 사용하면 시청자는 완전히 다른 운영 체제 및 IDE에서도 함께 작업할 수 있는 두 명 이상의 개발자의 자연스러운 상호 작용과 사고 과정을 확인하여 더 많은 지식을 얻을 수 있습니다.

프로토타입 작성/프로젝트 개시

팀이 새 프로젝트/마이크로 서비스를 시작하거나, 새 기능의 프로토타입을 작성하거나, 새 기능을 시작할 때 협업을 통해 진행 속도를 높이고 새로운 아이디어를 탐색하면 도움이 됩니다. 새로 만든 코드베이스는 아직 공유 리포지토리로 커밋되지 않을 수 있으므로, Live Share를 사용하면 같은 사무실에 없더라도 모든 사용자가 반복 프로세스에 참여할 수 있습니다.

대화형 교육

일반적으로는 Live Share는 개발자가 팀에서 지식을 쉽게 공유할 수 있게 합니다. 교육은 Live Share의 기본적인 사용 사례이며, Live Share는 각 참가자가 단순히 화면을 시청하는 대신 협업 중인 코드베이스와 상호 작용할 수 있게 하여 교육을 지원합니다. 모든 사용자는 조금씩 다른 방식으로 학습하며, 따라서 “학생”에게 독립성을 제공하면 학생은 제공되는 지침을 활용하면서도 자신의 아이디어를 탐색할 수 있습니다.

피어 멘토링/온보딩

개발자에게 새 코드베이스, 기능 영역, 기술 등을 소개할 때 Live Share를 사용하면 (Follow Mode를 활용하여) 프로젝트 진행을 안내할 수 있습니다. 예를 들어 개발자는 본인의 개인 IDE에서 여러분의 안내를 따를 수 있습니다. Live Share에서 “게스트”는 프로젝트를 독립적으로 탐색할 수 있으며(예: 파일 열기, Peek Definition 수행), 따라서 지침에 따르면서도 필요하다면 빠른 탐색을 수행할 수 있습니다(“이 함수의 용도는 뭘까?”).

팀 브라운 백

팀 브라운 백은 사실상 피어 멘토링과 동일하지만 전체 팀에 제공되며, 온보딩 지원이나 특정 작업 지원과는 달리 일반적으로 유용한 지식을 다른 사람과 나누는 데 집중합니다.

교실 강의

수업을 진행하는 강사는 Live Share를 사용하면 단순히 화면을 보여주기만 하는 대신 학생들과 프로젝트를 공유할 수 있습니다. 이렇게 하면 학급 전체가 교사의 지침을 따르면서도 본인의 프로젝트에서 상호 작용할 수 있습니다. 또한 교사는 학생들에게 교실 앞으로 나오라고 하거나 (온라인 과정 등에서) 학생과 같은 교실에 출석하지 않고도 수업의 특정 부분을 해결할 수 있도록 개별 학생에게 도움을 요청하여(예: “여기서는 어떤 메서드를 호출해야 할까요?”), 수업의 사회적 요소를 강화할 수 있습니다.

간편한 교실 설정을 위해 Live Share에서는 공유를 읽기 전용 모드에 활성화합니다. 강사는 읽기 전용 모드를 사용하여 불필요하나 유발적인 편집에 대한 염려 없이 프로젝트를 학생과 공유할 수 있습니다.

또한 Live Share에서는 협업 세션에 최대 30명의 게스트가 참여할 수 있습니다. 이 기능을 사용하면 강사는 학급 전체가 세션에 참가하게 하고 코드를 함께 확인할 수 있습니다.

이 기능을 사용하도록 설정하려면:

  • VS Code: “liveshare.increasedGuestLimit”:”true”를 settings.json에 추가
  • VS: 도구 > 옵션 > Live Share > 게스트 제한 증가를 “True”로 설정

코드 검토

PR은 다른 사람과 협업하는 강력한 방법이지만, 대부분의 경우에는 작업 완료(“WIP” PR 제외)와 내부 병합 의도를 나타냅니다. 많은 경우 PR에 제공된 피드백은 쉽게 더 빨리 제공될 수 있으며, 따라서 팀은 요청한 작업을 동료가 “완료”할 때까지 기다리는 대신 동료의 조언을 쉽고 지속적으로 요청할 수 있습니다.

Live Share를 사용하면 프로젝트를 다른 사람과 즉시 공유할 수 있으므로, 도움을 요청하는 대신 자신의 방향과 접근 방식이 다른 사람과 일치하는지에 관한 의견을 들을 수 있는 “비공식”/임시 코드 검토를 활성화할 수 있습니다. 이렇게 하면 이후 PR을 더 빨리 완료하고 팀에서의 지식 나눔을 확실하게 지원할 수 있습니다.

또한 Live Share를 사용하면 임의의 디렉터리를 공유할 수 있으므로, 현재 버전 제어를 사용하지 않거나(물론 사용하는 것이 원칙입니다) 팀에서 PR를 사용하지 않더라도(예를 들어 트렁크 기반 개발을 하는 경우에도) Live Share를 사용하여 코드 검토를 수행할 수 있습니다.

기술 인터뷰

개발자 후보를 인터뷰할 때 화이트보드 토론에서 벗어나 실제 IDE에서 코딩 문제를 푸는 모습을 지켜보면 도움이 되는 경우가 많습니다(특히 팀/조직이 개발자가 사용할 도구를 “표준화”한 상태라면 더욱 도움이 됩니다). 이렇게 하면 개발자는 더 자연스럽고 편안한 방식으로(대부분의 개발자는 화이트보드에서 코딩하지 않습니다) 작업할 수 있으며, 여러분은 개발자가 작업(예: 빌드 오류, intellisense)을 진행할 대 바로 피드백/지원을 제공할 수 있습니다. 대부분의 경우에는 정확한 구문 및/또는 API 이름을 암기하는 능력보다 후보자의 사고 프로세스를 이해하는 것이 더 중요합니다. Live Share는 이러한 방법을 통해 페어 프로그래밍 세션 수행과 유사한 환경을 제공하지만, 참가자는 자신의 환경(내게 필요한 옵션을 비롯한 OS 설정 등)을 그대로 유지하고 로컬 또는 원격 인터뷰를 진행할 때와 동일한 방식으로 작업할 수 있습니다. 웹에서 세션에 참여하면 후보자는 아무 것도 다운로드하지 않고도 팀의 개발 환경과 코드베이스를 사용할 수 있습니다.

또한 실제 개발 작업은 코드 작성 이상을 의미합니다. 그리고 Live Share는 공유 디버깅, 작업 및 터미널도 지원하기 때문에 면접자는 문제를 진단하는 동안 후보자를 관찰하고 문제를 해결하는 데 필요한 적절한 도구(단계 디버그, 실행 테스트 등)를 제공할 수 있습니다. 모든 컨텍스트가 호스트의 컴퓨터에서 원격화되므로, 후보자는 컴퓨터를 설치하지 않고도(Live Share만 설치하면) “인터뷰 환경”으로 빠르게 이동할 수 있습니다. 팀은 공유 인터뷰 앱의 리포지토리를 유지(또는 실제 제품 코드베이스를 사용)할 수 있으며, 각 인터뷰를 진행하기 전에 세션 URL을 전송하기만 하면 이러한 앱을 복제하고 후보자와 공유할 수 있습니다.

원격 근무

가정용 개발 컴퓨터의 도구 체인을 회사 컴퓨터와 계속 동기화하지 않고도 재택 근무를 수행합니다. 작업에서 푸시하지 않고도 관련 코드 줄을 빠르게 마무리하고, 집에서 리포지토를 복제하고, 작업한 정확한 줄을 찾습니다. 가벼운 랩톱과 무거운 작업 컴퓨터를 연결합니다.

참고 항목

문제가 있으신가요? 문제 해결을 참조하거나 피드백을 제공해 주세요.