태그 보관물: github

Docker와 GitHub를 이용한 소프트웨어 연구 환경 구축

소프트웨어를 이용한 연구와 수업을 위해 도커와 깃허브를 이용한 연구 프로젝트 템플릿을 만들어서 공개했습니다. 도커를 이용하면 소프트웨어와 관련된 라이브러리를 설치하고 환경을 설정하는 과정을 쉽게 만들 수 있고, 깃과 깃허브를 이용하면 도커 설정 파일과 프로그래밍 소스 코드를 안전하게 관리할 수 있습니다. 도커 사용 경험이 없는 연구자들이 도커를 쉽게 사용할 수 있도록 프로젝트 템플릿에 도커 관련 리눅스 스크립트들을 추가하였습니다.

프로젝트 템플릿은 깃허브 계정을 만들고 Fork하면 됩니다.

사용 방법은 리눅스 컨테이너와 버전 관리 시스템을 이용한 소프트웨어 연구 환경 구축 논문이나 유튜브에서 확인할 수 있습니다.

소프트웨어 기술 발달에 따라 점점 더 많은 과학자와 공학자들이 연구를 위해 컴퓨터 소프트웨어와 프로그래밍 도구들을 사용하고 있다. 소프트웨어를 이용한 연구에서는 환경 설정, 재현성 및 소스 코드 손실과 같은 문제들이 발생할 수 있다. 이 해설에서는 리눅스 컨테이너와 버전 관리 시스템을 사용하여 이러한 문제를 방지하는 방법에 대해 조사하였다. 연구 프로젝트 단위로 클라우드 저장소를 통해 코드를 관리하고 리눅스 컨테이너에 연구 환경을 구축하면 위의 문제들을 방지하고 협동 연구를 더 쉽게 만들 수 있다. 리눅스 컨테이너 사용경험이 없는 연구자들을 위해 컨테이너 생성과 실행에 필요한 스크립트를 포함한 연구 프로젝트 템플릿 저장소를 공개하였다.

//리눅스 컨테이너와 버전 관리 시스템을 이용한 소프트웨어 연구 환경 구축 – 초록

Git과 GitHub를 이용한 소스 코드 버전 관리

대학원에서 연구를 위해 또는 수업을 위해 프로그래밍을 사용하는 경우가 있습니다. 프로그래밍 언어를 이용해 직접 프로그램을 개발할 경우 소스 코드를 관리해주는 프로그램을 버전 관리 시스템이라고 합니다. 버전 관리 시스템을 이용하면 소스 코드 변경 사항을 기록하여 필요할 경우 이전 상태로 되돌릴 수 있고, 실수로 코드를 지워도 복구가 가능합니다. 대학원생들에게 다양한 버전 관리 시스템들 중 깃(Git)을 추천합니다.

주요 Git 명령어들

Git에서 주로 사용하는 명령줄(Command line) 명령어들은 아래와 같습니다. 명령줄이 익숙하지 않은 학생들은 GUI 프로그램을 이용해도 됩니다.

  • git init: 현재 디렉토리를 git 저장소로 만들어줍니다.
  • git add <files>: 파일들(새 파일 또는 수정한 파일)의 변경 사항을 추적하겠다고 git에게 알려줍니다.
  • git commit: 앞에서 추적하기로 한 변경 사항들을 실제로 기록합니다.
  • git status: 현재 저장소 상황을 보여줍니다. 추적 중인 파일들 중 어떤 파일들이 변경되었는지 알 수 있습니다.
  • git diff: 어떤 내용들이 변경되었는지 확인합니다.
  • git log: 그동안의 commit 내역을 확인합니다.
  • git clone <remote>: 원격 저장소가 있을 경우 원격 저장소를 현재 컴퓨터에 복사합니다.
  • git pull: 원격 저장소에서 최신 변경 사항을 가지고 옵니다.
  • git push: 현재 저장소에서 commit한 변경 사항을 원격 저장소에 기록합니다.

소스 코드에 주요 변경 사항이 있을 때마다 git add, git commit 명령을 실행합니다. 위의 명령어들은 일단 변경 사항을 저장하기 위한 명령어들이고 문제가 생겼을 때 복구하기 위한 명령어들이나 branch(가지 치기) 기능과 관련된 명령어들도 여러 가지가 있습니다. 평소에는 add, commit 명령으로 소스 코드 변경 사항을 잘 기록해두고 다른 명령어들은 필요할 때 찾아서 사용하면 됩니다(한글판 Pro Git 책).

GitHub

원격 저장소가 필수는 아니지만 사용중인 컴퓨터 전체에 문제가 생겼을 경우에는 git으로도 소스 코드를 복구할 수 없기 때문에 중요한 코드라면 별도의 컴퓨터에 원격 저장소를 만들어두는 것이 좋습니다. 원격 저장소로 사용하기 좋은 클라우드 서비스들이 몇 가지 있는데 그중 깃허브(GitHub)를 가장 많이 사용합니다. GitHub를 사용하면 다른 사람과 공동으로 작업하기도 좋습니다.

GitHub에 저장소를 만들고 작업중인 컴퓨터에서 clone하면 GitHub 저장소가 자동으로 원격 저장소로 등록되기 때문에 컴퓨터에서 코드를 수정하고 add, commit한 후 push해서 GitHub 저장소를 업데이트할 수 있습니다. 이미 컴퓨터에 git 저장소가 있을 경우에는 GitHub에 새로운 저장소를 만들고 작업중인 컴퓨터에서 GitHub 저장소를 원격 저장소로 등록해주면 됩니다. 이 때 필요한 명령은 GitHub에서 새로운 저장소를 만들면 자세히 설명해줍니다.

GitHub를 이용하면 작업중인 컴퓨터와 GitHub 두 군데에 소스 코드를 백업하는 셈입니다. 여러 대의 컴퓨터에서 작업하더라도 GitHub를 통해 소스 코드를 쉽게 동기화할 수 있습니다. 프로그래밍이 본인의 연구에서 중요하다면 꼭 버전 관리 시스템을 사용합시다. git add/commit/push를 기억합시다.