인프런 커뮤니티 질문&답변
베이스앱 만들기가 너무 어려워요
해결된 질문
작성
·
157
0
베이스 앱을 강의에서 알려주신 대로 만들려고 해도 생략된 부분이 많은거 같아서 어렵네요..
저는 리액트 네이티브 expo로 개발하려고 하는데, DB 설계 부분과 이 데이터를 가지고 앱에서 화면을 만들기가 쉽지 않은거 같습니다..
DB 설계 부분에서 꼭 필요한 테이블이 어떤건지 잘 모르겠어요 말씀해 주신 5개의 테이블만 있으면 될까요?
(app,app_toolbar,app_style,menu,app_fcm_topic)
expo를 사용하려고 하는데, 안드로이드도 마찬가지겠지만 새로운 프로젝트를 만드는게 아니고, 기존 프로젝트에서 데이터만 불러와서 새로운 앱처럼 만들 수가 있는거죠? 성격이 다른 경우에 어떻게 같은 앱에서 만들 수 있는지가 어려운거 같습니다
만약 앱 2개가 있고, 글쓰기 화면이 다르다고 할때, menu 테이블과 app_id를 통해서 글쓰기 추가라는 화면이 앱에 따라 다르게 나올텐데 그러면 글쓰기 추가 파일에 각기 다른 UI를 어떻게 보여줄 수 있는지 잘 모르겠어요
답변 2
0
안녕하세요 재원님!
우선 크게는 5개의 테이블만 있어도 전체적인 큰 틀은 잡아볼 수 있습니다.
메뉴마다 각기 다른 카테고리를 설정하여 앱에서 보여줄 콘텐츠를 제어할 수 있구요.
expo는 제가 사용하지 못해봐서 상세하게 답변드리긴 어려울 수 있지만, 질문 주신대로 새로운 프로젝트를 매번 만드는게 아닌, 위 테이블들을 API로 처리하는 하나의 큰 템플릿 프로젝트를 구성하면 앱에서 특정 고유 키 값만 변경처리 한다면 전혀 다른 새로운 앱처럼 만들 수가 있습니다.
물론 완전히 다른 UI를 갖거나, 전혀 다른 콘텐츠를 가지게 된다면 그때는 app_style이나, menu 테이블에서 별도 처리를 위한 다른 키 값을 추가하신다면 다른 성격의 앱이더라도 하나의 프로젝트로 해결이 가능합니다.
e.g) app_style의 경우 전혀 새로운 스타일 도입을 위해 예를들어 전체 화면이 ViewPager와 TabLayout으로 시작한다면 그걸 포함하는 특정 키 값을 생성. menu에서는 전혀 다른 앱 콘텐츠를 위한 고유 category 값 설정
만약 앱 2개가 있고, 글쓰기 화면이 다르다고 할때, menu 테이블과 app_id를 통해서 글쓰기 추가라는 화면이 앱에 따라 다르게 나올텐데 그러면 글쓰기 추가 파일에 각기 다른 UI를 어떻게 보여줄 수 있는지 잘 모르겠어요
이부분의 경우는 menu로 컨트롤 할 수 있을 것 같습니다. 예를들어 menu에 category = "write" 이면서 ui_type = "V1", "V2", "V3" 이렇게 ui 타입별로 분기하여 v1일때는 A 글쓰기 화면, v2일때는 B 글쓰기 화면 이렇게 구성하면 값에 따라 다른 처리를 할 수 있습니다.
제 답변이 도움이 되셨길 바래요 🙂 추가적인 궁금증이나 질문있으시면 언제든 질문주세요!
0
안녕하세요, 인프런 AI 인턴입니다. JaeWon Kim님.
앱 개발 과정에서 특히 DB 설계 및 화면 구성 부분은 처음 시도하실 때 혼란스럽고 어렵게 느껴지실 수 있습니다. 관련해서 몇 가지 안내와 함께 유사한 기존 질문들을 통해 도움을 드리고자 합니다.
DB 설계 및 테이블 구성
필요한 테이블:
- 주어진 앱 컨텍스트를 완전히 파악하지는 못했지만, 제시해주신 5개의 테이블(app, app_toolbar, app_style, menu, app_fcm_topic)은 일반적으로 화면 구성을 위한 최소 구성일 수 있습니다. 각각의 역할을 정확히 파악하고 필요한 정보를 담고 있는지 확인해보세요.
- DB에서 테이블은 앱의 각 기능을 서포트할 데이터를 체계적으로 저장하는 역할을 하기 때문에, 앱의 기능과 요구사항에 따라 추가적인 테이블이 필요할 수 있습니다.
- 주어진 앱 컨텍스트를 완전히 파악하지는 못했지만, 제시해주신 5개의 테이블(app, app_toolbar, app_style, menu, app_fcm_topic)은 일반적으로 화면 구성을 위한 최소 구성일 수 있습니다. 각각의 역할을 정확히 파악하고 필요한 정보를 담고 있는지 확인해보세요.
프로젝트 구조:
- 기존 프로젝트에서 데이터를 불러와 다른 앱처럼 보이게 만드는 것은 각 앱의 UI와 UX를 어떻게 정의하고 있는지에 달려 있습니다.
- 구조적으로도 같은 코드베이스 안에서 여러 화면을 다르게 렌더링하는 방식으로 React Native에서는 navigation 라이브러리를 통해 다양한 화면 전환과 조건부 렌더링을 구현할 수 있습니다.
- 기존 프로젝트에서 데이터를 불러와 다른 앱처럼 보이게 만드는 것은 각 앱의 UI와 UX를 어떻게 정의하고 있는지에 달려 있습니다.
UI/UX 차별화:
- 동일한 화면에서 다른 앱의 UI를 보여주기 위해서는 각기 다른 스타일을 적용하거나 조건부 렌더링을 통해 화면 전환을 관리해야 합니다.
- 이는 menu 테이블과 app_id를 사용하여 조건적으로 컴포넌트를 다르게 렌더링하도록 설정하시면 됩니다.
if-else문 또는 삼항 연산자를 통해 조건부로 다른 화면 요소를 보여줄 수 있습니다.
- 동일한 화면에서 다른 앱의 UI를 보여주기 위해서는 각기 다른 스타일을 적용하거나 조건부 렌더링을 통해 화면 전환을 관리해야 합니다.
이에 대해 구체적으로 다루거나 비슷한 고민을 하시는 분들의 유사한 질문이 있습니다. 이를 참고하시면 더욱 실질적인 도움이 될 수 있을 것입니다:
- React Native 앱에서 효율적인 DB 구축 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





아 이해했습니다 감사합니다! 결국 컴포넌트는 각기 만들어서 나중에 비슷한 화면이 나올때 파일 새로 만들필요 없이 데이터 불러오면서 재사용 하면 되는거군요!