본문 바로가기
취미/컨퍼런스

Melos 를 사용한 flutter 모노레포 구축하기 (이정주, GDG Incheon) - Flutter with AI 2024 Seoul

by WooHey 2024. 5. 25.

 

발표자 소개

이름은 이정주 님이며, 현재 GDG Incheon 에 소속되어 있다.

전공은 문과쪽 언어학을 전공하였으며, 과거 Techical Writer 로 잠깐 일을 했었다.

현재는 Web Frontend 와 Flutter App 을 개발하고 있다.

3년차로, GDG Incheon 은 올해부터 organizer 로 활동을 시작했다.

“초보자도 프로처럼 만드는 플러터 앱 개발” 이라는 책을 출간하게 되면서 flutter 커뮤니티에 적극 참여하게 되었다.

원래는 React 개발자였는데 요즘은 product 에 관심이 많아졌다.

 

 

 

MonoRepo 란?

모든 프로젝트 소스 코드를 하나의 repository 에 저장하는 방식을 일컫는다. monorepo 를 사용하면 여러 프로젝트 간의 코드 공유와 일관성 유지를 용이하게 할 수 있고, 코드 관리, 배포 프로세스를 단순화 할 수 있다.

 

예를 들어, 사내에 내부 직원용 앱, 태블릿 사용자를 겨냥한 앱, 사이드 프로젝트 등 여러 앱이 생길텐데, 각 앱에서 사용하는 패키지들을 공통으로 묶어서 관리를 할 수 있다.

 

장점

  • 코드 공유와 재사용 용이성 → 모든 프로젝트가 동일한 repository 에 있으므로 코드를 쉽게 공유하고 재사용 가능
  • 일관성 → 코드 일관성 유지가 쉽다
  • 버전 관리 및 의존성 관리 → 하나의 repository 에 있으므로 버전 및 의존성 관리가 편리
  • 빌드 및 배포 용이성 → 빌드 및 배포 프로세스를 통합하고 자동화하기 쉽다

 

 

 

melos 란

flutter 프로젝트의 멀티 패키지 관리 도구로, 여러 패키지가 있는 flutter 프로젝트를 관리하고 의존성을 관리하는데 사용된다.

예를 들어 여러 개의 패키지가 있는데 각각의 패키지들에 대해서 테스팅 및 배포를 할 때 효과적으로 해결하는 방법을 제시해준다.

 

 

제공하는 기능

 

1. 패키지 관리

단일 repository 내에서 여러 개의 패키지를 한 번에 관리할 수 있다. 이를 통해 보다 체계적으로 프로젝트를 관리할 수 있다.

 

2. 의존성 관리

패키지간의 의존성을 관리할 수 있다. 이를 통해 패키지간의 의존성 충돌을 방지하고 일관된 버전을 유지할 수 있다.

 

3. 일괄 작업

모든 패키지에 대해 일괄적으로 작업을 수행할 수 있다. 예를 들어, 모든 패키지를 빌드하거나 테스트할 수 있다.

또한 로컬 패키지를 만들어서 이것을 일반적인 패키지를 사용하는 것처럼 (flutter pub add …) 사용할 수 있다.

 

4. 버전 관리

각 패키지의 버전을 관리하고 수정 및 업데이트 할 수 있다.

 

 

 

melos 로 어떻게 monorepo 를 할 수 있는지

melos 적용하기

1. melos 설치

2. melos extension 설치(IDE 에 따라 다를 수 있음)

3. flutter 프로젝트 설정

4. melos 초기화

5. 패키지 추가

6. 의존성 관리

7. melos 명령어 사용