글자 크기

조비엣 빌드로그 5주차: 이제는 웹이 아니라 앱이다 (Turbo Native 쉘 붙이기)

4주차에 우리가 한 일은, 솔직히 겉보기엔 소소했다.
이미지 확대를 “상태”가 아니라 “화면”으로 옮기자—그 정도.

근데 그게 왜 중요했냐면,
그 순간부터 조비엣은 ‘웹앱’이 아니라 ‘앱이 될 자격’을 갖추기 시작했기 때문이다.

이번 5주차는 그 자격을 현실로 바꾸는 주다.

네이티브 쉘(iOS/Android 템플릿)을 붙인다.
그리고 PathConfiguration이 “문서”가 아니라 “규칙”으로 작동하는지 확인한다.

1) Turbo Native는 “UI 프레임”이 아니라 “항해술”이다

Turbo Native를 처음 접하면 보통 이렇게 생각한다.

  • “웹뷰를 앱처럼 보이게 하는 기술”
  • “라우팅만 좀 맞추면 되겠지”

근데 막상 해보면 다르다.

Turbo Native는 결국 네비게이션 규칙이다.
어떤 URL은 탭으로, 어떤 URL은 모달로, 어떤 URL은 replace로—
이걸 정확하게 구분하는 순간, 앱의 움직임이 ‘정신이 든다’.

우리는 이미 그걸 준비해놨다.

  • PR A: 모달은 서버가 닫는다 (Turbo Stream 표준화)
  • PR B: /me 고정 + 로그인 후 /posts 랜딩 (딥링크 안정)
  • PR B.5/B.6: PathConfiguration 문법 정리 (context 기반으로 확정)

이제 남은 건 하나다.

이 규칙을 진짜 네이티브가 읽고 움직이게 만들기.

2) 5주차 목표: “탭 3개 + 모달 + 화면 전환”이 네이티브에서 그대로 된다

이번 주 목표를 딱 사람 말로 풀면 이거다.

✅ iOS/Android 앱을 켰는데

  • 홈 탭은 /posts
  • 메시지 탭은 /chat_rooms
  • 프로필 탭은 /me
  • 신고/리뷰는 모달
  • 로그인/회원가입은 replace

이게 “그대로” 돌아가야 한다.

웹에서 잘 돌아가는 건 이제 별로 안 중요하다.
네이티브 안에서 돌아가는 게 중요하다.
(여기서부터 진짜 사용자가 들어온다.)

3) 가장 먼저 iOS부터: 이유는 단순하다. 덜 아프다.

둘 다 할 거지만, 순서는 보통 이렇게 가는 게 맞다.

  • iOS 먼저
  • 그 다음 Android

이유는 간단하다.
iOS 쪽이 템플릿/동작이 비교적 예측 가능하고, 디버깅 스트레스가 덜하다.

(안드로이드는 기기/버전/웹뷰 차이로 “왜 이래?”가 더 자주 온다.
그게 안드로이드가 나쁘다는 뜻이 아니라, 그냥 세상이 그렇다.)

4) 이번 주의 핵심 검증 포인트 6가지

네이티브 쉘을 붙였다고 “완성”이 아니다.
진짜는 여기서부터 테스트다.

1) 딥링크

  • /me로 들어가면 프로필 탭이 자연스럽게 열리나?
  • /posts/123 들어가면 홈 탭 컨텍스트가 유지되나?

2) 뒤로가기

  • 모달로 연 신고/리뷰를 닫으면, “이전 화면”이 정상적으로 남아있나?

3) 탭 유지

  • 메시지 탭에서 채팅방 들어갔다가 홈 탭으로 가면 탭 상태가 깨지지 않나?

4) 모달 표준화

  • 신고/리뷰는 항상 modal context로 뜨나?
  • 서버가 닫는 패턴이 그대로 통하나? (turbo_stream.update(“modal”, “”) + flash 업데이트)

5) 인증 replace

  • 로그인/회원가입 화면이 replace로 열려서 “로그인 화면이 뒤로가기로 남아있지 않나?”

6) 캐시/리프레시

  • 화면 전환 후 새로고침이 필요한 페이지는 정상적으로 갱신되나?

이 6개가 다 통과하면,
조비엣은 “웹앱”이라는 꼬리표를 거의 떼도 된다.

5) 이 과정에서 반드시 생기는 문제들 (그리고 그게 정상이다)

이번 주는 아마 이런 순간들이 온다.

  • “왜 이 URL은 모달이 아니라 풀스크린으로 뜨지?”
  • “왜 iOS에서는 되는데 Android는 다르게 행동하지?”
  • “왜 탭 이동했더니 뒤로가기가 이상해지지?”

이건 실패가 아니라 경계 통과다.
웹에서는 그냥 넘어갔던 모호함들이,
네이티브에서는 전부 “규칙 위반”으로 잡혀 나온다.

나는 이게 오히려 좋다.

앱이 우리에게 이렇게 말하는 거니까.

“대충 만들지 말고, 정확하게 살아라.”

조비엣은 지금 그 단계로 들어온 거다.

6) 결론: “앱이 된다”는 건, 살아남을 확률이 올라간다는 뜻이다

중고거래 앱에서 사용자는 기술을 평가하지 않는다.
그냥 감각으로 판단한다.

  • “이거 믿을 수 있어?”
  • “이거 불편하지 않아?”
  • “이거 이상하지 않지?”

Turbo Native는 그 감각을 만드는 기술이 아니라,
그 감각을 무너지지 않게 하는 규칙이다.

이번 주는 조비엣의 규칙을
진짜 네이티브 위에서 걷게 만드는 주다.

다음 주 예고 (6주차)

6주차는 “기능”이 아니라 “생활”로 간다.

  • 푸시/알림(선택 탭)
  • 네이티브 공유/딥링크 강화
  • 이미지 상세 화면(라우팅) 확장
  • ‘신뢰/안전’ 기능이 네이티브 UX에 자연스럽게 녹는지

이제는 “만드는 앱”이 아니라 “쓰는 앱”으로 넘어가는 구간이다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다