[AWS] CodeCommit 사용하기(1) - Preview

안녕하세요~ 차니에요!

 

현 직장에서 저를 포함한 3명과 함께 iOS 개발 협업을 진행하고 있습니다.

회사에서 가진 핵심 소스 framework(라이브러리) 파일을 import 하여 사용하였습니다.

이를 편의상 앞으로 코어 소스라는 명칭으로 포스팅하겠습니다.

 

이번에 코드 형상 관리를 SVN(Subversion)에서 AWS CodeCommit(Git)으로 변경하게 된 이유와 히스토리를 기록해 보려 합니다.

 

1. 계기

현 문제점
  1. 코어 소스(프레임워크) 버전 관리가 되지 않는다.
    • 임의로 버전을 붙여서 사용한다면 가능은 하겠지만, 결국 개발자가 수동으로 프레임워크 파일을 빌드 하여 넣어야 하기 때문에 허점이 존재한다.
  2. 코어 소스 디버깅이 불가능하다.
    • 프레임워크 특성상 내부 소스를 볼 수 없기 때문에 디버깅이 매우 매우 어렵다.
  3. 각자 다른 앱을 맡아 개발하다 보니 코어 소스에서 버그가 발견되어 수정되는 경우가 더러 발생하는데 그때그때 명확히 전달이 안되어서 서로의 코어 소스가 달라진다. (동일한 버그가 다른 앱에서 나타남)

크게 위 3가지 문제들로 Framework를 Pod 혹은 SPM으로 전환하려는 작업을 진행하려 합니다.

그러기 위해서 필수로 Git을 사용할 필요가 있었습니다.

 

현 문제점을 해결하는 방안, 그것이 Framework를 전환하는 이유입니다.
  1. 라이브러리 버전 관리
  2. 코어 소스의 디버깅
  3. 코어 소스의 동기화

 

2. 실행

지난 두어달 동안 Framework 전환을 위해 Pod 혹은 Swift Package Manager 둘 중 하나를 선택해야 했습니다.

그래서 실제로 두 개에 모두 올려보며 각각의 차이점에 대해 알아보았습니다.

구분 Framework Pod Swift Package Manager
코드를 볼 수(read) 있는가?
(디버깅 유무)
X O O
코드를 수정할 수 있는가? X O X
Apple 공식 지원인가? O X O
버전 관리가 가능한가? O O

애플 공식 지원이라는 점을 높게 평가하여 SPM으로 방향을 정하였고 코드 업로드를 위해 AWS CodeCommit을 활용하려고 합니다.

 

3. AWS 소개

3-1. AWS(Amazon Web Services)

아마존 웹 서비스는 아마존닷컴의 클라우드 컴퓨팅 사업부다. 아마존 웹 서비스는 다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다. - 위키 백과 -

쉽게 말해서 Amazon이라는 회사에서 제공하는 클라우드 서버. 정도로 이해하시면 되겠습니다.

 

3-2. AWS CodeCommit

CodeCommit 프라이빗 리포지토리를 호스팅하는 안전하고 확장 가능한 소스 관리형 서비스인 프라이빗 Git 리포지토리를 제공합니다. CodeCommit  자체 소스 제어 시스템을 관리하거나 인프라 확장을 걱정할 필요가 없습니다. CodeCommit 사용하여 코드에서 바이너리에 이르기까지 무엇이든 저장할 수 있습니다. 또한 Git의 표준 기능을 지원하므로 기존 Git 기반 도구와도 원활하게 연동됩니다.

 

3-3. AWS IAM

AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.
IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.

AWS를 활용하기 위해선 계정과 권한을 필요로 합니다.

다음 포스팅은 IAM 설정 관련 내용을 다루겠습니다.