티스토리 뷰

728x90

깃허브와 같은 공개 저장소를 사용해서 여러 사람이 협업을 진행하는 것을 다룰까 합니다. 네이버 개발자센터(dev.naver.com)에서는 네이버 아이디만 있으면 누구나 공개 프로젝트를 만들 수 있고 프로젝트를 위한 이슈 트래커와 위키, 형상 관리를 위한 코드 저장소를 사용할 수 있습니다. 코드 저장소는 Mercurial, 깃(Git), 서브버전(Subversion) 세가지 방식으로 제공하고 있습니다. 처음 네이버 개발자센터가 만들어질때는 서브버전만 서비스 했는데 시대 흐름에 따라 깃과 Mercurial도 제공하는 것 같습니다. 


깃 저장소를 사용하려면 기존 프로젝트에 새로운 개발자로 참여해서 권한을 얻거나 새로운 프로젝트를 시작하는 방법이 있는데 프로젝트를 시작하는데 아직은 별다른 제한이 없으므로 위의 그림과 같이 네이버 개발자센터(dev.naver.com)에서 "오픈 프로젝트"를 선택하고 우측의 [프로젝트 등록] 버튼을 클릭해서 새로운 프로젝트를 생성합니다.


프로젝트 아이디는 코드명과 같은 것으로 영문이나 숫자로 다른 프로젝트에서 사용하지 않는 것을 기입하고 프로젝트 이름과 설명을 적절하게 입력합니다. 중요한 것은 코드 관리 시스템, 즉, 형상 관리 서버로 어떤 시스템을 사용할 것인지를 선택해야 하는데 기본값은 "SVN"이지만 깃(Git)으로 해서 [확인]을 누르면 새로운 프로젝트를 바로 사용할 수 있습니다.



프로젝트가 생성되면 팀원은 프로젝트를 만든 자신만 있게 되는데 개발자센터에 등록한 사용자라면 누구나 팀원으로 추가할 수 있고 개발자 팀원은 코드 저장소에 코드를 푸시(PUSH)할 수 있습니다. 팀원이 아닌 다른 사람도 저장소에 접근할 수 있게 하려면 프로젝트 관리>공개정보 메뉴의 "코드 저장소"를 위의 그림과 같이 "익명 접근 허용함"으로 선택해야 합니다. 소스코드를 누구나 손쉽게 접근하게 하려면 위와 같이 설정하면 됩니다. 이런 방식으로 코드를 내려 받은 사람이라도 자신의 로컬 저장소에서는 변경과 커밋으로 나름의 형상 관리를 할 수 있지만, 팀원이 아니면 자신이 수정한 부분을 서버에 반영(PUSH)할 수는 없습니다.


생성한 프로젝트의 "코드" 메뉴를 보면 현재 코드저장소의 내용을 웹상에서 확인 할 수 있으며 상단에는 깃의 원격저장소 주소를 확인할 수 있습니다. 네이버 개발자센터의 형상 관리 서버는 웹방식으로 서비스를 제공하는데 개발 권한이 있는 팀원이라면 상단의 "인증 HTTP" 링크를 클릭하면(로그인 상태에서만 나옴) 바로 하단에 나오는 "https://네이버아이디@dev.naver.com/git/plagfind.git"와 같은 형식의 주소를 "git clone" 명령에 사용하고 팀원이 아니라면 "익명 HTTP" 링크를 클릭하면 나오면 "https://nobody:nobody@dev.naver.com/git/plagfind.git"와 같은 주소를 원격 저장소의 주소로 사용하면 됩니다. 이 상태가 되면 지역과 장소의 제한을 받지 않고 어디에서나 필요한 코드를 복제(clone)하여 작업하고 저장(push)할 수 있게 되는 것입니다. 물론 여러 사람의 협업도 가능해 집니다. 본격적인 사용에 앞서 저장소에 접근하기 위한 비밀번호를 설정해야 합니다. 마이페이지>회원정보 페이지에서 [코드저장소 비밀번호 설정]으로 아래와 같은 화면으로 설정합니다.




네이버 개발자센터의 깃(Git) 서버를 확보 했으면 이제 로컬에서 작성하던 코드를 초기 코드로 저장해 보겠습니다. 이 과정은 이미 "기존 코드를 깃으로 형상관리하기" 에서 유사한 과정을 다루었으므로 참조하셔도 좋습니다. 로컬에서 작성하던 프로젝트는 일단 깃(Git)으로 형상관리를 시작하여 로컬 저장소에 커밋(Commit)까지 끝낸 상태여야 합니다. 기존 코드를 깃으로 형상관리하기 에서는 로컬의 다른 저장소를 원격 저장소로 해서 PUSH 했으나 이제는 네이버 개발자센터의 깃(Git) 저장소를 원격 저장소로 해서 초기 코드를 PUSH하기만 하면 됩니다.

그런데 네이버 개발자센터의 깃주소가 https로 시작하는 보안 채널을 사용하기 때문에 윈도우에 작업하다보면 아래와 같은 오류가 발생할 수 있습니다.

fatal: unable to access 'https://yaraba@dev.naver.com/git/plagfind.git/': SSL certificate problem: unable to get local issuer certificate

이런 경우에는 내 컴퓨터>속성>고급>환경변수에서 아래의 그림과 같이 GIT_SSL_NO_VERIFY라는 환경변수에 1을 설정해주면 오류없이 작업을 진행할 수 있습니다.



로컬에서 깃으로 형상 관리하던 프로젝트의 루트 디렉토리에서 팝업 메뉴의 Git Sync...를 선택합니다.





위와 같은 Sync 화면에서 상단의 [Manage]버튼을 클릭해서 원격저장소 주소를 네이버 개발자센터의 프로젝트 깃주소로 수정합니다.


예제에서는 기존에 사용하던 origin 이라는 이름의 원격저장소의 URL을 네이버 저장소로 수정했습니다.


상단 Remote Branch 우측의 [...]버튼을 통해서 원격저장소의 브랜치도 master로 맞추어준다음 하단 [Pull] 버튼을 눌러서 네이버 프로젝트의 저장소 내용을 로컬 저장소에 반영합니다. 반영하면 네이버의 기본 파일인 readme 파일이 로컬저장소에 병합되고 위와 같은 결과 화면을 확인할 수 있습니다. 작업과정에서 웹 접근 인증을 위한 아래와 같은 화면을 만날 수 있는데 아이디에 맞는 적절한 비밀번호를 입력해야 합니다.(앞서 코드저장소 비밀번호 설정으로 입력했던 비밀번호)




앞서 수행한 것과 같이 원격저장소의 내용을 가져온(PULL) 상태에서 하단의 [Push] 버튼을 클릭하면 로컬 저장소의 내용이 원격 저장소 즉 네이버 깃 서버에 반영됩니다. 아래의 화면은 PUSH 이후에 네이버 개발자센터 코드 보기 화면으로 로컬에서 PUSH한 내용이 바로 반영되는 것을 확인할 수 있습니다.



위에서 로컬 저장소의 내용을 원격저장소에 반영하는 과정에서 먼저 PULL로 원격저장소의 내용을 로컬에 반영(병합, 머지)하고 그 다음에 PUSH한것 처럼 최초 코드 반영이후 일상의 개발 과정에서도 내가 로컬에서 커밋한 내용을 원격 저장소에 반영(PUSH) 때는 반드시 사전에 가져오기(PULL)을 먼저 수행합니다. 그런데, 작업후에 PUSH시점에 PULL하지 않아 생기는 혼란을 방지하기 위해서는 되도록 작업을 시작하기 이전에 먼저 PULL로 원격 저장소의 내용을 로컬에 반영한 다음 작업하는 습관을 가지는 것이 혼란을 최소화하는 방법입니다.

위와 같이 원격 저장소에 초기 코드를 반영해 놓으면 팀원들은 원격 저장소의 주소로 "git clone"하여 자신의 로컬 저장소에서 작업을 시작할 수 있습니다. 여러 팀원이 함께 작업하는 환경이라면 누가 작업했는지에 대한 정보를 정확히 설정할 필요가 있습니다. 깃 사용자에 대한 정보는 팝업메뉴 TortoiseGit>Settings 에서 아래와 같이 Git/Global 설정으로 할 수 있습니다.



728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함