GopherCon 2019: Uber의 접근 방식 (1)

발행: (2026년 1월 15일 오전 10:01 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

사전 요구 사항

GopherCon 2019를 살펴보고 흥미로운 주제들을 이해해 보세요.

GopherCon 2019: Elena Morozova – Uber가 어떻게 진행되는가

YouTube

최근 GopherCon 2019 영상들이 차례로 업로드되고 있으니 꼭 확인해 보세요. 올해 최신 공유 내용을 배워봅시다. 오늘은 제가 매우 좋다고 생각하는 Uber가 어떻게 진행되는가라는 주제를 공유하려 합니다. Uber 엔지니어들은 2015년 Golang을 도입한 뒤 겪은 몇 가지 공통 문제들을 공유했습니다:

  • 새로운 서비스를 대량으로 생성하는 것.
  • 서로 다른 서비스 개발 사이를 자주 전환해야 하는 상황(컨텍스트 스위칭).
  • 글로벌 서비스를 제공하는 것.

해결 방안

다음 세 가지 방법을 통해 문제를 해결했습니다:

  • 의존성 주입 (Dependency Injection)
  • 일관된 코드 구조
  • 모노레포 (Monorepo)

이러한 문제들 때문에 Uber는 내부적으로 의존성 주입 라이브러리인 fx (https://github.com/uber-go/fx)를 먼저 개발했습니다. 이를 통해 다양한 새로운 서비스를 보다 쉽게 생성하고 fx를 활용해 개발할 수 있게 했습니다. 다음으로 각 서비스에 일관된 아키텍처를 설계하여 서로 다른 서비스 간 코드 유지보수를 용이하게 만들었습니다. 마지막으로 모노레포(모든 코드를 하나의 대형 저장소에 두고 개별 프로젝트가 아닌) 방식을 사용해 패키지 버전 변경을 더 편리하게 했습니다(한 번의 커밋으로 모두 업데이트 가능).

참고 자료

Back to Blog

관련 글

더 보기 »

Microservices Expense Tracker 구축에서 배운 교훈

작은 아이디어를 의도적으로 더 복잡하게 만든 적이 있나요? 그것을 과도하게 overengineer하기 위해서가 아니라 실제 시스템이 실제로 어떻게 작동하는지 이해하기 위해서 말입니다. 바로 그것이…