마이크로소프트(이하 마소)는 모든 사람들이 굉장히 큰 코드리포들을 깃으로 관리하기 정말 편하게 만들어줄 툴을 만들었습니다.

“스칼라”라는 툴이고(스칼라라는 프로그래밍언어랑 엉청 해깔리기 시작하겠습니다..) Azure DevOps 대빵 엔지니어가 말하기를 깃 워크플로우를 정말 빠르게 만들 수 있다고 밝혔습니다.

깃의 사이즈 , 리포지토리 형태 상관없습니다.

마소는 깃의 이러한 문제점을 스칼라로 일단 해결해놓고 깃에서 이 문제를 직면하고 해결하기 시작할때부터 스칼라프로그램을 점점 사용하지 않는 방향으로 생각하고 있다고 밝혔습니다.

그래서 이 코드를 이미 깃허브로 공개 했으며 MIT 라이선스로 배포하고 있습니다.

스칼라는 정확히 큰 깃 리포지트리를 관리하는 C#어플리케이션입니다.

그래서 이 프로젝트가 생긴 이유는 깃을 사용하면서 굉장히 큰 코드베이스를 관리할 때 문제가 많은 것들의 대응방안을 마련하기 위해서입니다.

예전에는 마소에서 윈도우 OS 레포지토리을 만들면서 생긴 파일 느렸던 문제해결과 파일의 일부만 채크아웃하는 방식을 사용하기위해 버츄얼파일 시스템(이하 GVFS )을 만들었습니다. 이것도 사용하는동안 병목현상을 발견하여 깃에 계속 contribution(기여) 을 하면서 버텨왔는데, 이런걸 하다보니 최근에 깃이 발전하는 것을 보니까 차라리 이제는 가상파일 시스템이 없이 굉장히 큰 리포지트리를 지원할 수 있는 프로그램의 필요성을 느껴서 이 프로젝트를 시작했고 그게 스칼라라고 합니다.

스칼라의 중요한건 깃 커맨드의 성능을 최대화 하는 것을 첫번째 목적인데 그것은 config Value(환경설정값)를 알아서 잘 설정해줍니다.
깃 보면 한번씩 느릴경우가 있는데 그때마다 설정값을 하나씩 검색해서 넣고 이런 과정을 가진 다크매직이 너무 많았습니다.

처음 세팅할때 깃에서 자동으로 올바르게 세팅해줘야 하는데 그걸 안해주는것이죠. 기본설정이 괸장히 중요한데 그것을 안해주고 있죠.

백그라운드에서 깃에서 코드 변환시마다 코드를 정리하고 비교하는 과정의 성능을 가비지컬랙션 해주고 컴프렉션하고 잘 해줘야 하는데 이걸 못해줘서 커밋하거나 푸쉬할때 10분이상 걸리는 경우가 많았습니다. 이제 그런 것을 스칼라가 알아서 하도록 만들었습니다.

Azure Repos를 이용한다면 버츄얼파일프로토콜을 이용하여 클론도 가능하고 조만간 깃허브에서도 지원한다고 카더라 통신이 돕니다.

현재 마이크로 오피스를 스칼라와 GVFS를 이용해서 깃으로 리포지트리 만들예정이라고 합니다.

마소가 잘하는 것은 자기네가 만든 제품은 자기회사에서 모두 테스트를 합니다.

윈도우즈 사용하시다 보면 문제가 있는데, 실제 마소가 가지고 잇는 게임스튜디오에서 게임을 윈도우으로 만들라고 강조해서 문제가 되는 부분을 찾아서 모두 고치게 한답니다.

그 예시로 윈도우7 에서 8으로 넘어갔을때 욕먹은 문제들을 윈도우10나오면서 모두 싹 고쳤었죠.
그렇게 해서 현재 데스크톱에서 테블릿 + 데스크톱 터치스크린과 마우스를 모두 지원할 수 있는 OS가 나왔죠.

마소는 시간에 지남에 따라 깃이 알아서 처리해야하지만 아직 그럴 환경이 되지않기 때문에 스칼라로 일단 고친다음 그 뒤에 깃에 점점 공헌해서 고치겠다고 밝혔습니다.

스칼라는 오래된 기술로 관리하는 것들을 제거하기위해서 만든거고 앞으로 수년동안 계속 깃을 좋게 만들 것이고 custom filesystem watcher 느린것과 폴더 몇개만 채크아웃해오는 기능까지 계속 고쳐나가겠다고 밝혔습니다. 그리고 멀티쓰레드를 지원하겠다고 했습니다.
그래서 코드 변경시 변경점을 지속적으로 빠르게 잡아 속도 느린것을 잡을 수 있도록 노력하겠다고 하네요.

이런 모습들을 보면서 마소가 오픈소스를 망친다고 주장하셨던 분들 계셨는데, 요즘은 그런분들이 많이 줄어가고 있다고도 하네요.

지난번 마소가 깃허브를 인수해가는 사태도 그렇고 결국 마소가 오픈소스를 죽이고 돈벌궁리만 할려는 것 같다고 하신 분들도 계셧지만 실제로 깃허브에서 예전 유료계정에서만 private 리포지트리를 만들 수 있엇던 것이 결제를 하지 않아도 만들 수 있게 되었었죠. 이를 마소가 인수한뒤 다시 결제계정에만 지원하도록 변경하지 않았고 오히려 지금과 같이 프로그램도 만들어서 MIT라이선스로 배포했습니다.

마소는 정말 대단한 기업인것이 맞는것 같네요.

이 내용에 대해서 궁금하신 분들은 아래 기사내용을 읽어보세요.

기사 원문 -> https://devclass.com/2020/02/14/microsoft-unveils-scalar-tool-for-vast-git-repos/

람보

profile
람보입니다.