Last Updated: 2021-02-08

intellij-pair-programming-cover

IntelliJ가 이번 2020-12-01에 2020.03 버전이 배포되었다. 이번 버전이 출시되면서 추가된 기능 중 하나가 공동 개발 항목이다. 타이틀은 Code Width Me(EAP) 지원이다.

Code Width Me(EAP)는 IDE에 열려 있는 프로젝트를 다른 사람과 공유하며 실시간으로 공동 작업을 수행할 수 있다. 즉, 이를 사용하며 페어 프로그래밍(Pair Programming)이 가능하다. 이번 포스팅에서 이 IntelliJ를 사용하여 페어 프로그래밍(Pair Programming)을 하는 방법을 알아보려 한다.

지원 버전

사실상 지원되는 버전은 2020.03버전이다. 이는 IntelliJ 뿐만 아니라 Pycham, WebStormJetBrains 제품군 모두 같다. 하지만 2020.03 이하 버전에도 플러그인 형태로 사용이 가능하다. 현재 안정된 버전인 2020.02Code With Me 플러그인이 도입되어 있어서 플러그인으로 설치 후 사용할 수 있다.

자세한 내용은 Code With Me Adds Support for JetBrains IDEs v2020.3를 참고하자.

설치

먼저 intellij 2020.03으로 업데이트 했어도 플러그인 형태로 설치하면 된다.

File > Settings > Plugins > Marketplace로 이동하여 Code With Me를 검색하여 설치 후 IDE를 재실행하자.

Plugins
intellij-plugins

또는 Code With Me에서 브라우저를 통해 설치할 수 있다.

사용

플러그인을 설치하고 재시작을 했다면 상단에 아이콘이 추가되었을 것이다.

Code With Me
code-with-me-icon

이제 이 아이콘을 통해서 내 IDE에 접속을 허용하거나 다른 IDE에 접속할 수 있다.

기능을 확인해 보자.

  • Enable Access and Copy Invitation Link : 내 IDE를 활성화하여 접근할 수 있도록한다.
  • Join Another IDE as Participant : 다른 IDE에 접속한다.
  • Submit ‘Code With Me’ Feedback : Code With Me에 대한 Log를 전송한다.
  • Permissions : 내 IDE 접속 권한 설정을 한다.

Enable Access and Copy Invitation Link를 클릭하게 되면 접속 권한 설정창이 활성화된다.

code-with-me-permission

여기서 내 IDE에 접속할 권한을 설정하는데 읽기모드부터 모든 권한까지 설정 할 수 있다. 본인이 원하는 권한을 설정 후 Enable Access를 클릭하자. 예제에서는 Full Access로 진행하겠다.

access-code-with-me

code-with-me를 활성화하게 되면 Copy Invitation LinkTurn Off Access and Disconnect All 메뉴가 활성화된다.

Copy Invitation Link를 클릭하면 현재 내 IDE 고유 키가 복사된다. 이 키들은 JetBrains에 로그인한 사용자의 고유 URL이며, Join Another IDE as Participant를 통해 다른 IDE에 접속할 때 입력하여 사용하게 된다.

여기서 특이한 점은 JetBrains 제품이 없더라도 이 URL을 브라우저에 입력하면 Code With Me 실행기를 다운로드하여 실행까지 가능하다.

code-with-me-browser

실행하게 되면 접속이 된 상태이며, IDE 접속은 1:N으로 접속이 되고 접속 시 접속된 사용자가 No one Joined 영역에 표시된다.

join-user

여기서 접속 사용자를 누르게 되면 현재 접속된 사용자 커서가 어느 파일 어느 소스에 위치하고 있는지 Jump가 가능하다.

jump-to-source


페어 프로그래밍(Pair Programming) 위한 도구와 방법은 많지만, 조직이나 그룹에서 JetBrains 제품을 사용하면 사용하는 도구를 가지고 바로 사용하기 때문에 다른 애플리케이션을 이용하지 않아도 된다. 사용하다 보면 생각보다 성능도 나쁘지 않기 때문에 페어 프로그래밍이 필요한 경우 사용하면 좋을 듯하다.