저는 웬만한 상황에선 모노레포를 사용하지만, 서브모듈을 사용하는 케이스가 2개 있는데요.

  1. 외부 퍼블리셔를 고용했을 때.
    퍼블리싱에 필요한 정보 이외의 것을 외부 퍼블리셔에게 공개하고 싶지 않을 때 서브모듈을 사용합니다.

  2. 외부 솔루션을 커스터마이징 해야할 때.
    특히 플러그인 기능을 제공하는 솔루션일때 서브모듈을 사용합니다.
    해당 외부 솔루션을 서브모듈로 등록해두고, 내 플러그인들을 심링크 등으로 플러그인 경로 내에 넣어주는 식으로 작업합니다. 내 플러그인들은 나대로 따로 버전 관리하고, 외부 솔루션은 그들의 버전 컨트롤을 그대로 유지할 수 있는 장점이 있어요.