배경
얼마 전 동료 개발자분과 AWS 의 Code Commit 과 Github 의 선택에 있어서 대화를 나누었습니다.
나: "우리는 모르지만 인기있는 도구에 있어서는 그 이유가 있고 대세를 따라가서 나쁠게 없다. 그리고 코드리뷰 UI 개쩜!"
동료: "AWS 만의 장점이 있기때문에 납득할만한 이유가 없다면 넘어갈 이유가 없다!!! 그리고 Github 기본 기능 다 됌"
두 개의 형상도구를 서로 비교해보지 않아서 비교 자료를 찾아보고 정리해보았습니다.
형상 도구를 어떤 것을 선택하느냐보다 중요한 것은 어떤 전략을 가지고 Git 을 이용하냐인 것 같습니다.
형상 관리도구를 선택함에 있어 주된 목표는 파일들을 저장 할 수 있는 레퍼지토리를 제공하고 쉽게 논의하고 관리해야합니다.
또한 코드 및 바이너리 파일과 문서들을 클라우드(SaaS)에서 관리하고 추적하는데 도움이 되어야하는 것을 목표로합니다.
* 이 글을 참고하여 두 도구의 공통점과 차이점을 비교해보면서 도구 선택에 조금이나마 보탬이 되거나 자료로 활용되었으면 좋겠습니다.
GitHub
1. 다른 타사의 솔루션들과 강력한 연동이 가능합니다. Prisma Cloud, TravisCI, Sublime Text, IntelliJ, Slack, Asana, Trello 등. 이런 연동으로 인해서 전체적인 팀의 생산성을 향상 시킬 수 있습니다.
2. 코드 리뷰에 강력합니다. 시각적으로 새로운 코드와 변경사항을 확인 할 수 있고 자동 상태 확인 및 병합을 확실하게 할 수 있습니다. 팀토론, 여러 담당자를 지정 할 수 있으며 모든 멤버들과 함께 작업하고 PR 을 할 수 있습니다.
코드 리뷰에 강력하다는 것은 최소 코드 품질을 유지하며 개발할 수 있다는 뜻이고 코드리뷰에 대한 피로도와 집중력을 향상시킬 수 있습니다. 개발자가 공동으로 협업하고 위키, 소셜네트워크 등은 Github 가 매우 강력합니다.
(코드 리뷰의 장단점에 대해선 언급하지않겠습니다.)
3. 엔터버전의 조직 규모에서 사용하기에는 AWS 에 비해서 비용이 많이 발생합니다. (https://github.com/pricing)
그 외에 Work-flow 를 통해 다양한 액션들을 수행 할 수 있으나 CLI 에 대한 선택지는 부족합니다.
Code Commit
1. AWS 의 다양한 서비스와 통합 연동이 가능합니다.
- Cloud 9, CloudFormation, Amplify, Cloud Trail, CloudWatch Events, CodeGuru Reviewer, CodeBuild, CodePipeline, CodeStart, Elastic Beanstalk, Lamda 등의 AWS 관리 콘솔과 AWS CLI, AWS SDK 와의 강한 연동성을 보여줍니다.
그 중 Access Management(IAM) 및 AWS Identity 와의 연동은 레포지토리에 대한 권한설정을하며 보안에 매우 강합니다.
2. 또한 파일 유형 및 크기에 대한 제한이 없습니다. (Github 의 경우 100MB 제한) 이 이야기는 큰 파일이나 특정 파일의 경우 유연성이 높다는 이야기입니다.
3. 앞서 말했지만 보안에 Github에 비해 강력합니다. Access Management(IAM) 및 AWS Identity 연동을 통해서 데이터에 엑세스할 수 있는 사람을 모니터링하고 제어할 수 있습니다. 암호화된 데이터가 Amazon S3 및 AmazonDynamoDB 에 저장되어 내구성과 가용성이 좋습니다.
공통적으로 기본적인 Git의 기능은 비슷하게 사용이 가능합니다.
하지만 서로의 강점과 부족한점이 있기때문에 팀의 목적에 맞게 선택해서 사용하면 될 것 같습니다.
정리하자면 AWS 의 CodeCommit 은 프라이빗하고 AWS 의 기능과 보안을 많이 다루는 조직에서 택하면 좋을 것 같습니다.
Github는 협업 솔루션의 목적을 둔 조직에서는 Github가 좋은 선택이 될 것 같습니다.
(아니 근데 AWS 다루는 서버 개발자 말고는 Github 가 더 매리트 많은거 같은데..?)
참고한 레퍼런스에서 더 자세히 비교할 수 있습니다!
https://appwrk.com/aws-codecommit-vs-github
http://www.differencebetween.net/technology/difference-between-github-and-aws-codecommit/
https://comparisons.financesonline.com/aws-codecommit-vs-github
요약
Github
- 오픈 라이브러리 등 공개된 레퍼지토리에 좋음
- 코드 리뷰, 위키, 논의 등에 강력함
- 다양한 work-flow 를 설정 가능
- 다양한 타사 솔루션과 연동이 가능
- 파일 유형과 크기에 업로드 제한이 있음 (100MB)
- 프라이빗한 레퍼지토리 운영하는 큰 규모의 조직에는 일정 비용이 발생
- PR 사용하여 위험 없이 협업하고 토론 가능
- 개발자들의 소셜 미디어 역할
CodeCommit
- 손쉬운 AWS 와의 통합을 지원
- 협업을 위한 PR 을 제공함으로 논의 및 협의 할 수 있음
- 레포지토리에 영향을 미치는 이벤트에 대한 알람을 받을 수 있음
- 보안이 강력하여 데이터 엑세스에 대한 제어를 쉽게 할 수 있음
- 암호화
'개발 > 개발' 카테고리의 다른 글
[iOS] - Quick/Nimble 문서로 Unit Test 배우기 - 2 (0) | 2023.02.14 |
---|---|
[iOS] - Quick/Nimble 문서로 Unit Test 배우기 - 1 (0) | 2023.02.14 |
[iOS] - XcodeGen 에서 Tuist 로 전환 후기 (0) | 2022.12.14 |
[iOS] - Unit Test 기본 개념 공부하기 (0) | 2022.11.18 |
[Swift] - Array의 Count 함수는 과연 속도 차이가 있을까? (3) | 2022.11.01 |