Git

[Version Control System] Git
이전 포스트에서 설명했듯이 git은 분산 버전 관리 시스템입니다. 클라이언트가 단순히 파일의 마지막 스냅샷을 Checkout 하는 것이 아니라, 저장소를 버전의 히스토리와 더불어 전부 복제하여 사용합니다. 또한 Git은 GitHub와 같은 리모트 저장소를 통해서 다양한 협업이 가능합니다. 이번 포스트는 "ProGit" 책을 기준으로 작성하겠습니다. Git 기초 Git은 다른 VCS와 인터페이스는 비슷하지만, 정보를 취급하는 방식이 다릅니다. Git이 아닌 대부분의 VCS들은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리합니다. Git은 데이터를 스냅샷의 스트림처럼 취급합니다. 파일이 달라지지 않았으면 파일을 새로 저장하지 않습니다. 단지 이전 상태의 파일에 대한 링크만 저장합니다. 이로 인..

[Version Control System] VCS
Git을 설명하기에 앞서 버전 관리와 버전 관리 시스템이 무엇인지 살펴봅시다. 소스 코드의 관리를 기준으로 설명하겠습니다. Version Control? 버전 관리는 수정되는 소스 코드들에 버전을 부여해서 관리하는 것을 말합니다. 버전을 통해 관리하면서 소스 코드의 추적 및 관리가 용이해지며, 개인뿐 아니라 팀이 더 빠르고 스마트하게 작업할 수 있도록 도와줍니다. Version Control System? 버전 관리를 위해서 버전 관리 시스템을 사용하게 됩니다. VCS를 사용해서 이전 버전의 상태로 소스 코드를 되돌릴 수 있으며, 누가 언제 수정한 소스 코드가 문제인지 추적할 수 있습니다. VCS는 로컬, 중앙집중, 분산의 방법으로 버전을 관리하여 사용됩니다. Local VCS 로컬 버전 관리 시스템은 ..
[Git] .gitignore
깃을 사용하면서 깃허브라는 원격 스토리지에 올리는 일이 많았다. 진행하던 프로젝트들을 깃허브에 올려 팀원들과 협업을 하고, 내가 만든 프로젝트들을 공개하기 위함이었는데... AWS RDS 등 AWS 서비스를 사용하기 위해서 작성했던 config, properties 파일들 또한 깃허브로 올라가면서 문제가 생겼다. 깃허브를 통해 내 AWS 서비스 키 등을 알게된 사람이 내 키로 본인을 위한 EC2 서버를 열어 사용했다. AWS에서 메일로 알려주기는 하지만.. 5만원 가량의 결제가 진행되어 버렸다. 이를 방지하기 위해서 .gitignore 파일에 config, properties 파일들을 설정하는 법을 알아봤다. .gitignore 이 파일에는 다양한 파일들을 설정할 수 있는데, 그렇게 되면 그 지정된 파일..