방법: Visual Studio IntelliCode에서 팀 완성 공유How to: Share team completions in Visual Studio IntelliCode

IntelliCode에는 사용자가 만든 모델을 공유하고 모델을 다시 학습시키면 액세스 권한이 있는 사용자를 자동으로 업데이트할 수 있는 팀 완성 공유 기능이 있습니다.IntelliCode has team completions sharing features that let you share any model you've created and automatically update users that have access when you retrain the model.

팀 완성 모델을 만들면 기본 모델에 없는 코드에 대한 IntelliCode 완성 추천 사항을 가져옵니다.By creating a team completions model, you get IntelliCode completion recommendations for code that's not in the base model. 협력자와 팀 완성 모델을 공유하면 향상된 IntelliSense 추천 사항이 모든 사용자에게 확장됩니다. 따라서 이러한 사용자가 완성 모델을 직접 만들거나 다시 학습시킬 필요가 없습니다.Sharing a team completions model with collaborators extends the enhanced IntelliSense recommendations to everyone; they don't have to create or retrain a completions model themselves.

리포지토리에 연결된 팀 완성 모델 공유Share a repository-associated team completions model

사용자가 Visual Studio에서 자동 팀 모델 가져오기를 사용하도록 설정하기만 하면 리포지토리에 연결된 모델은 같은 코드베이스에서 작업하는 다른 사용자와 자동으로 공유됩니다.Repository-associated models are automatically shared with others working in the same codebase as long as users have enabled automatic acquisition of team models in Visual Studio.

도구 > 옵션 > IntelliCode > 완성을 위한 팀 모델 가져오기로 이동하여 자동 가져오기를 사용하도록 설정합니다.Enable automatic acquisition by going to Tools > Options > IntelliCode > Acquire team models for completion.

사용자가 모델을 학습시킨 코드베이스를 복제하고 열면 구성된 Git 원격 리포지토리와 연결된 모든 완성 모델이 다운로드되고 활성화됩니다.When anyone clones and opens the codebase the model was trained on, any completions models associated with the configured Git remote repositories will be downloaded and activated. 코드베이스의 포크에서 작업 중인 경우 업스트림 코드베이스를 원격 리포지토리로 추가하기만 하면 완성 모델을 가져올 수 있습니다.If you are working on a fork of the codebase, simply add the upstream codebase as a remote repository to get the completions model.

리포지토리에 대한 액세스는 모델에 대한 액세스입니다.Access to the repository is access to the model. 학습시킬 때는 체크 아웃된 커밋에 대한 정보를 수집합니다.When training, we collect some information about the checked-out commit. 해당 모델을 요청하는 모든 사용자는 리포지토리에 같은 커밋을 가져야 하며, 팀 모델을 받기 위해 학습 중에 수집된 것과 같은 정보를 생성할 수 있어야 합니다.Anyone who requests that model must have the same commit in their repository and be able to produce the same information that was collected during training in order to receive the team model.

보기 > 다른 창 > IntelliCode 모델 관리로 이동하고 왼쪽 창에서 모델을 선택한 후 공유 단추를 눌러 모델을 공유할 수도 있습니다.You can also share your model by going to View > Other Windows > IntelliCode Model Management, selecting your model from the left pane, and hitting the Share button. 그러면 모델을 공유하려는 모든 사용자에게 보낼 수 있는 공유 링크가 생성됩니다.This generates a sharing link you can send to anyone you'd like to share the model with.

사용자에 연결된 팀 모델 공유Share a user-associated team model

모델이 학습되면 모델 공유 단추가 표시됩니다.After you've trained a model, the Share model button appears. 단추를 클릭하여 공유 링크를 복사합니다.Click the button to copy the sharing link. 여기서는 해당 링크를 협력자와 공유할 수 있습니다.From there, you can share the link with your collaborators.

참고

공유 링크가 있는 모든 사용자는 모델과 해당 제안에 액세스할 수 있으므로 링크를 받는 모든 사용자가 이 사실을 알고 있어야 합니다.Anyone who has the sharing link can access the model and its suggestions, so make sure that everyone who receives the link is aware of this.

공유 기능을 통해 원하는 만큼 많은 사용자와 모델을 공유할 수 있습니다.You can share your model with as many people as you like via the sharing feature. 팀 구성원은 모델을 다시 학습시킬 수 없지만 사용자가 수행한 것과 동일한 완성 추천 사항을 볼 수는 있습니다.Team members can't retrain the model but they do see the same completion recommendations as you do.

사용자에 연결된 팀 완성 모델 추가Add a user-associated team completions model

다른 사람과 공유하는 모델 링크를 사용하려면 다음 단계를 수행합니다.To use a model link that someone shared with you, follow these steps:

  1. (선택 사항) Visual Studio 2019 버전 16.1 이전의 Visual Studio의 버전을 사용하는 경우 먼저 IntelliCode 확장을 설치합니다.(Optional) If you're using a version of Visual Studio prior to Visual Studio 2019 version 16.1, first install the IntelliCode extension.

  2. 보기 > 다른 창 > IntelliCode 모델 관리를 차례로 선택하여 IntelliCode 페이지를 엽니다.Open the IntelliCode page by choosing View > Other Windows > IntelliCode Model Management.

  3. IntelliCode 페이지에서 모델 추가를 선택합니다.On the IntelliCode page, choose Add model. 왼쪽 탐색 영역의 공유한 항목 아래에 있습니다.It's underneath Shared With Me in the left-hand navigation.

    Visual Studio에서 IntelliCode 모델 추가

  4. 공유 링크 URL을 대화 상자에 붙여넣고 추가를 선택합니다.Paste the sharing link URL into the dialog box and choose Add.

    IntelliCode에서 공유한 모델 추가

    공유한 모델이 공유한 항목 아래에 표시됩니다.The shared model appears under Shared With Me. 모델의 연결을 해제하려면 연결 해제를 선택합니다.If you want to unlink the model, choose Unlink.

일반적인 공유 시나리오Common sharing scenarios

이 섹션에서는 몇 가지 일반적인 사례에 대한 모델 공유를 설정하는 방법에 대해 설명합니다.This section describes how to set up model sharing for some common cases.

오픈 소스 프로젝트(GIT 기반)Open Source project (git-based)

공유 라이브러리에 포함된 형식을 사용하기 위한 좋은 패턴을 포함하고 있는 기존 코드베이스가 있다고 가정합니다.Suppose you have an existing codebase that contains good patterns for using types contained in a shared library. 동일한 라이브러리를 사용하는 다음 프로젝트에서 작업을 시작할 때 IntelliCode에서 해당 코드베이스의 사용법을 학습하여 사용자와 협력자가 시작하게끔 하려고 합니다.You'd like IntelliCode to learn from usage in that codebase to kickstart you and your collaborators when you start work on your next project that uses the same library. 새 프로젝트에는 새로운 것에서 학습할 사용법이 없습니다.The new project, being new, has no usage to learn from. 그렇다면 어떻게 해야 할까요?So what do you do?

여기서 가장 좋은 방법은 다음과 같습니다.The best approach here is:

  1. 기존 코드 베이스에서 팀 완성 모델을 학습합니다.Train a model for team completions on the existing codebase.

  2. 팀 구성원에게 Visual Studio 2019 버전 16.1 이상에서 도구 > 옵션 > IntelliCode > 완성을 위한 팀 모델 가져오기로 이동하여 자동 가져오기를 사용하도록 알립니다.Inform your teammates to enable automatic acquisition by going to Tools > Options > IntelliCode > Acquire team models for completion in Visual Studio 2019 version 16.1 or later.

사용자가 모델을 학습시킨 코드베이스를 복제하고 열면 구성된 Git 원격 리포지토리와 연결된 모든 완성 모델이 다운로드되고 활성화됩니다.When anyone clones and opens the codebase the model was trained on, any completions models associated with the configured Git remote repositories will be downloaded and activated. 코드베이스의 포크에서 작업 중인 경우 업스트림 코드베이스를 원격 리포지토리로 추가하기만 하면 완성 모델을 가져올 수 있습니다.If you are working on a fork of the codebase, simply add the upstream codebase as a remote repository to get the completions model.

리포지토리에 대한 액세스는 모델에 대한 액세스입니다.Access to the repository is access to the model. 학습시킬 때는 체크 아웃된 커밋에 대한 정보를 수집합니다.When training, we collect some information about the checked-out commit. 해당 모델을 요청하는 모든 사용자는 리포지토리에 같은 커밋을 가져야 하며, 팀 모델을 받기 위해 학습 중에 수집된 것과 같은 정보를 생성할 수 있어야 합니다.Anyone who requests that model must have the same commit in their repository and be able to produce the same information that was collected during training in order to receive the team model.

  1. Azure Pipelines IntelliCode 작업으로 모델 재학습을 자동화하여 코드 변경과 함께 완성을 최신 상태로 유지합니다.Automate retraining your model with the Azure Pipelines IntelliCode task to keep completions up-to-date with code changes. 리포지토리가 학습될 때마다 팀에서 자동으로 업데이트를 받습니다.Your team automatically gets updates whenever the repo is trained.

다른 공유 시나리오Other sharing scenarios

중요하다고 생각되는 다른 공유 시나리오가 있으면 이에 대해 알려주세요.If there are other sharing scenarios you feel are important, we want to hear about them. Visual Studio를 사용하는 경우 개발자 커뮤니티에서 기능을 제안할 수 있습니다.If you're using Visual Studio, you can suggest a feature on Developer Community. Visual Studio Code를 사용하는 경우 이 페이지의 아래쪽에 있는 다음에 대한 피드백 보내기 > 이 제품 단추를 사용합니다.If you're using Visual Studio Code, use the Send feedback about > This page button at the bottom of this page.

참조See also