JetBrains Livestreams

‘Code With Me로 함께 코딩할까요?’ 웨비나 요약 – 질의응답

지난 6월 15일 화요일, “Code With Me로 함께 코딩할까요?” 웨비나가 열렸습니다. 웨비나에 관심가져주시고 참석해주신 모든 분들께 감사드리며, 도움이 되는 정보를 많이 얻어가셨기를 바랍니다.

웨비나 등록, 플랫폼, 운영 방식, 향후 다루었으면 하는 주제 등에 관하여 의견이 있으신 분들은 언제든지 댓글을 남겨주세요.

당일에 참석을 못하신 분들 또는 다시 보기를 원하시는 분들은 YouTube에서 이 영상을 시청해 주세요.

시간 관계상 웨비나 중에는 일부 질문에 대해서 답변을 했으며, 웨비나 당일에 답변한 내용과, 시간 관계상 답변하지 못했던 질문을 아래에 정리해 놓았습니다.

질문과 답변

공동 개발이 가능하다면 형상 관리나 수정한 개발자의 수정 이력의 확인이 효율적으로 관리될 수 있는지 궁금합니다

모든 버전 관리는 호스트 컴퓨터에서 호스트에 의해 처리됩니다. 변경 사항은 작성자별로 별도의 변경 목록으로 그룹화되어 누가 어떤 내용을 변경했는지 쉽게 검토 할 수 있습니다.

향후 Code With Me에 추가될 기능에는 어떤 것이 있나요(화면 공유 기능, Android Studio 지원 여부 등)?

저희가 생각하는 전략적인 우선 순위는 Rider의 지원 및 Android 스튜디오와의 호환성으로, 저희가 가장 많은 요청을 받은 기능이기도 합니다. Android studio에 관심이 있는 분들에게는 좋은 소식이 있습니다. 현재 저희 팀은 Android Studio Canary 빌드에서 Code With Me에 대한 지원을 도입하기 위해 함께 협력하고 있습니다. 베타 버전 테스트에 참여하고 싶으시다면 IntelliJ IDEA 내 Android 플러그인을 통해 실행할 수 있습니다. 이를 통해서 동료 Android 개발자와 코딩을 수행하고 Code With Me를 실제로 테스트 해보실 수도 있습니다. 현재로서는 기능 측면에서 몇 가지 제한이 있습니다만, 필요한 툴박스 창에 관한 의견이 있으시면 이 이슈에 남겨 주세요.

JetBrains 팀에서 생각하시는 Code With Me의 궁극적인 목표는 무엇인가요?

소프트웨어 팀이 어디에 있든 함께 일하고 학습할 수 있도록 하는 것이 저희 팀이 생각하는 궁극적인 목표입니다.

빌드나 컴파일 되는 컴퓨터를 원격으로 둔 상태에서 Code With Me를 통해서 코드만 짜고 빌드와 컴파일은 해당 원격 장비에서 실행하는 식으로 활용하는 것도 가능할까요?

Code With Me를 통해 이루어지는 모든 작업은 호스트/원격 시스템에서 발생합니다. 모든 코드는 호스트의 시스템에 저장되고 컴파일, 디버그 및 테스트도 호스트 시스템에서 이루어 집니다. 원격 시스템에서 컴파일하려면 파일을 원격 시스템에 복사하는 방법이 있어야 하는데, 현재 Code With Me에서 할 수 있는 작업은 아닙니다.

세미나와 같은 일대다 상황에서 효과적으로 사용하려면 어떻게 해야 할까요? 예컨대, 참가자 중 일부가 잘 따라오지 못하는 상황에 효과적으로 대응할 수 있을까요?

Code With Me는 참가자들이 각각의 코드베이스의 복사본을 갖고 작업하는 세미나 형태에는 적합하지 않습니다. 모든 참가자가 호스트의 코드 베이스에서 동시에 함께 작업하도록 만들어졌기 때문입니다.

몇 명까지 같이 보며 협업 코딩을 할수있나요 최적의 성능이 가능한 인원수가 궁금합니다.

한 세션에서 협업할 수 있는 인원 수와 세션 시간은 라이선싱에 따라 다릅니다. Community 요금제에서는 최대 3명, Premium 요금제에서는 최대 50명, Enterprise 요금제에서는 최대 100명까지 가능합니다. 자세한 내용은 Code With Me 가격 페이지에서 확인해 주세요.

여러 개발자가 작성한 코드를 구분할 수 있는 방법이 있나요? 라벨링과 같이 제가 작성한 코드, B 개발자가 작성한 코드, C 개발자가 작성한 코드를 분류해서 확인하고 싶습니다.

각 게스트가 변경한 내용은 버전 관리 도구 창에 각 작성자에 따라 각각의 변경 목록으로 저장되어 각 작성자별로 개별적으로 코드를 쉽게 검토 할 수 있습니다.

Code With Me에서 작업을 누가 하냐에 따라서 커밋을 할 때, 작업한 사람별로 작업군이 나뉘어서 커밋시에 실수하는 경우가 많은데, 어떻게 하면 되나요?

페어 프로그래밍은 Code With Me와 마찬가지로 모두 하나의 시스템에서 코드가 변경된다는 것을 의미합니다. 소스 코드를 커밋할 때가 되면 모든 것은 호스트 컴퓨터에 남겨지고, 호스트가 모든 변경 사항을 소유하고 호스트가 모든 것을 커밋합니다. 모든 코드 변경과 같은 것은 커밋하기 전에 주의 깊은 검토가 필요합니다. Code With Me에서는 변경사항을 참가자별로 하나씩 별도의 변경목록에 정리하여 보여주므로, 커밋하기 전에 누가 무엇을 변경했는지 편리하게 검토할 수 있습니다.

Code With Me의 성공적인 실제 사용 사례나 케이스가 궁금합니다.

Code With Me를 만드는 Code With Me팀은 코로나 등으로 인해 실제로 원격으로 작업하며 Code With Me를 사용하고 있어요. Code With Me의 모든 기능을 사용하여 문제를 해결하고, 코드를 검토하고, 이슈를 디버그하고, 빌드 등의 작업에서 함께 일할 수 있는 좋은 방법을 계속 찾고 있습니다.

사용시 별도의 환경 구성(서버 등)은 하지 않아도 되는건가요?

게스트는 아무것도 구성 할 필요가 없습니다. 모든 것이 호스트 컴퓨터에서 구성되고, 게스트는 클라이언트를 다운로드하고 세션에 참가하면 됩니다.

저는 vim 플러그인을 사용하고 상대방은 이 플러그인을 사용하지 않더라도 각자 플러그인에 맞게 페어프로그래밍을 할 수도 있나요?

게스트는 IntelliJ의 매우 가벼운 버전인 클라이언트를 다운로드하게 됩니다. 그리고 이 클라이언트는 플러그인 및 사용자 맞춤 설정을 지원하지만, 모든 플러그인을 지원하지는 않습니다.

예를 들어 새로운 언어 기능은 호스트 시스템에서 와야 하기 때문에 게스트는 새로운 언어 기능을 추가할 수 없습니다. 즉, 모든 언어 기능은 게스트의 클라이언트가 아닌 호스트 시스템에 설치되어야 합니다. 그러나 게스트의 클라이언트 환경은 사용자 정의 할 수 있습니다.

글꼴, 색상을 변경할 수 있고 테마 변경도 가능해요. 또한 Vim 지원과 같은 텍스트 편집에 도움이 되는 플러그인도 사용할 수 있습니다.

Code With Me 플러그인은 MacOS 환경에서도 지원 되나요?

Code With Me는 Mac에서도 작동하고 Linux와 Windows에서도 작동합니다. 한 명은 Mac에서 작업하고, 다른 사람은 Windows에서 작업해도 잘 작동합니다.

현재 Code With Me 사용 시 guest 의 경우 단축키가 100% 지원되지 않는것 같아요

이것은 아마 버그인 것 같습니다. 이미 수정되었을 수도 있지만, 혹시 아직도 단축키 사용에 문제가 있다면, 이슈 트래커에 리포트해 주세요. JetBrains 팀은 사용자분들의 피드백을 언제나 환영하고, 귀 기울이고 있습니다.

vscode live share와의 차별점은 무엇인가요? Code With Me만의 기능은 무엇이 있나요?

Code With Me가 갖고 있는 고유한 기능 2가지를 설명해드릴께요. 첫 번째는 Code With Me에 고급 커뮤니케이션 툴킷입니다. Code With Me 세션 중에는 음성 통화 및 채팅을 사용할 수 있을 뿐만 아니라 화상 통화를 할 수도 있습니다. 또 다른 하나는 온프레미스 서버를 사용할 수 있는 Enterprise 버전을 사용하면 사설 또는 사내 네트워크에서 페어 프로그래밍을 할 수 있습니다.

녹화나 코드내에 메모하기 같은 기능도 지원하나요?

아니요. 현재 이 기능은 지원하지 않으며, 로드맵에 포함되어 있지 않습니다. 이 기능이 필요하시다면 언제든 이 이슈에 투표를 해 주세요.

별도의 사설망(인트라넷)에서도 사용가능 한가요?

동영상에서도 설명되어있지만, Code With Me의 Enterprise 버전을 사용하시면 별도의 사설망에서 사용할 수 있습니다. 자세한 내용은 온프레미스 솔루션 페이지에서 확인하실 수 있습니다.

코드 검토로 인한 시간의 손실은 어떻게 되나요?

Code With Me의 목표는 코드 검토를 더 쉽게 만드는 것이므로 검토에 시간이 덜 걸리기를 바라고 있습니다. 호스트는 IDE의 풍부한 기능을 사용하여 코드를 탐색 할 수 있으며, 검사를 통해 개선 할 수 있는 부분을 표시하고 검토가 진행되는 동안 변경하는 등의 방법으로 생산성을 높일 수 있습니다.

페어 프로그래밍 개발 기법을 실현화하는 과정에서 가장 중점시 여겼던 부분과 어떤 고충이 있었는지 궁금합니다.

도전 과제와 고민이 많았죠. 동시에 편집하는 기능은 매우 복잡하지만 더 중요한 것은 IntelliJ 기반 IDE는 한 번에 한 개의 에디터에서만 작동하도록 설계되었다는 것이었죠. 그러나 이제는 여러 에디터에서 작동해요. 예를 들어 IntelliJ는 동시에 여러 게스트에게 코드 완성 기능을 제공 할 수 있습니다. 또한 보안과 성능도 매우 중요해요. 저희는 사용자가 Code With Me를 사용하면서도 사용자의 코드가 안전하다는 사실을 신뢰하도록 하고, Code With Me로 즐거운 경험을 할 수 있도록 노력하고 있습니다. 또한 UI/UX에도 많은 관심과 노력을 기울이고 있습니다. 저희는 Code With Me가 모든 사람들에게 도움이 되기를 바랍니다.

Code With Me를 사용하려면 클라이언트를 설치해야 하는 것 같은데 어떤 브라우저에서든 사용 가능한가요?

Code With Me는 호스트로부터 받은 링크를 클릭하여 세션에 참여하고 클라이언트를 다운로드 할 때만 브라우저를 사용합니다. 클라이언트가 다운로드되면 브라우저는 더 이상 필요하지 않으므로 Code With Me는 모든 브라우저에서 작동한다고 말할 수 있습니다.

이제 안정적으로 import/auto complete등이 게스트에게도 제공되나요?

네, Code With Me는 게스트 컴퓨터에서 자동 완성 기능을 제공하며 필요한 경우 네임스페이스를 가져옵니다.

AppCode에서 Code With Me를 사용하면 Windows에서 접근이 가능하나요?

AppCode는 Mac 전용이므로 호스트는 Mac에서 세션을 시작해야하지만 게스트는 모든 OS에서 연결할 수 있습니다. 구문 강조, 코드 완성, 검사, 리팩터링 등과 같은 코드 편집도 가능합니다. 그러나 AppCode의 특정 도구 창 중 일부는 사용할 수 없습니다. 앞으로 더 많은 도구 창을 지원하기 위해 계속 작업하고 있습니다.

실시간으로 같이 작업을 할 수 있게, 어떤 기술을 적용했는지 궁금합니다.

저희는 Rider용으로 개발한 매우 가벼운 프로토콜을 사용하고 있습니다(아이러니하게도 이 프로토콜로 인해 Rider와 Code With Me 통합이 더 어려워요). 이를 통해 호스트 시스템과 같은 단일 프로세스에서 언어 처리를 실행한 다음 간단한 데이터를 IntelliJ 인스턴스로 전송하여 alt+Enter 메뉴 또는 트리 보기에 표시하거나 검사 강조표시를 하게 됩니다.

Preference와 같은 설정화면도 공유될까요?

현재 버전에서는 지원되지 않습니다. 모든 게스트가 더 많은 도구 창과 대화 상자를 표시하고 사용할 수 있도록 솔루션을 개발하고 있습니다.

초대된 사람만 코드 공유가 되어서 코드 공유에 대한 보안성은 공유자가 책임을 져야 하는건가요?

동영상에서도 다뤘지만, 다시 요약을 하자면 이것은 정말 중요한 부분이에요. 모든 네트워크 트래픽은 암호화되고, 아무도 트래픽에 접근할 수 없도록 하기 위해 보안 코드를 입력해야 합니다. 호스트와 게스트의 보안 코드 번호가 같으면 안전하게 연결이 된 것을 의미입니다. 그러나 호스트는 게스트가 세션에 참가하도록 허용하는 책임이 있으므로 호스트는 알고 있고 신뢰할 수있는 사람만 세션에 참가하도록 허용해야 합니다. 이런 점에서 코드 보안에 대한 책임은 호스트에게 있습니다.

게스트가 이미 사용하고 있는 IntelliJ IDE가 있어도 클라이언트를 다운로드 받아야 하나요?

네, 호스트와 일치하는 버전이어야 해서, 게스트는 기존에 사용하고 있는 IDE가 있더라도 별도의 클라이언트를 다운로드 받아야 합니다.

JetBrains 기념품 당첨자

사전에 안내해 드렸던대로 JetBrains 기념품을 받으실 10명의 당첨자를 발표합니다! 아래의 10분께는 개별적으로 연락드려서 기념품을 전달할 예정입니다.

김*민, 양*찬, 문*혁, 김*록, 손*준, 송*서, 양*창, 황*구, 한*흠, 최*섭


이번 웨비나가 여러분께 유익한 시간이었기를 바랍니다.

다음에 또 만나요!

JetBrains Korea 팀

image description

Discover more