


웹 개발에서 경로는 명확하게 표시되며 프로젝트의 구조와 조직에 대한 중요한 정보를 전달하기 때문에 라우트 간의 계층적 관계를 명확하고 직관적으로 설계한다. 하지만 React Native에서는 경로가 사용자에게 직접적으로 나타나지 않기 때문에 페이지 중첩 관계를 더 중요하게 여기는 것 같다.
가장 큰 이유는 브라우저와 모바일 플랫폼 간의 페이지 렌더링 방식의 차이이다.
브라우저는 사용자가 페이지에 접근할 때마다 코드를 읽고 필요한 리소스를 번들링하여 페이지를 띄운다. 하지만 모바일은 페이지를 모두 완성한 다음에야 화면을 교체한다.
따라서 웹개발은 페이지가 URL 로 직접 매핑이 되다보니 URL 을 통해서 경로 구조나 계층 구조를 쉽게 파악할 수 있도록 작성을 하는게 대부분인데, 앱 개발은 화면전환이 URL로 매핑되지 않다보니 네비게이션 구조가 코드 내에서 정의가 된다.
때문에 모바일에서는 경로 정보가 덜 중요해지고 페이지에서 필요한 정보가 경로에 의존하지 않게 된다.
위와 같은 이유로 모바일 에서는 웹보다는 더 유연하게 디자인 중심적으로 사용자에 초점을 맞춰서 타협을 하는 편이다. 물론 코드적으로는 웹처럼 계층구조로 갈 때 보다 네비게이션 코드가 복잡하고 가독성이 많이 떨어지는 편이다.
이런 문제를 해결하기 위해 목적별로 네비게이션을 분리하는 것을 추천한다.

최상위 네비게이션인 MainStackNav 안에 목적별로 네비게이션을 나눠서 페이지에 따라 분리하는 방식으로 디자인을 따라가면서 최대한 유지보수하는데 용이한 방향 구현한다.
최상위 네비게이션은 앱의 주요 내비게이션 흐름을 정의할때 사용한다.
네비게이션이 구조가 복잡해지면 최상단에서 고려해야될 것들이 많아지게 되니 초기 설계가 더욱 중요하다.