Search

기초멘토링 2조 12주차

분류
기타
담당멘토
안경무
멘토링 요청시간
2023/09/13 21:00
멘토링 시간
2023/09/13 21:00-22:00
멘토링방
멘토링룸3
배정상태
해결완료
비용지급
시트 반영
번호
0
신청팀
기초멘토링팀
소요시간
1
작성자
나길주/윤희서

질문

1.
MVVM 설명 한번만 부탁드립니다.. 아래 화면 캡처해두었는데 계속 읽어봐도 이해가 어렵네요…
2.
모든 화면에 공통적으로 들어갈 bottomNavigation을 만든 후에 적용을 어떻게 해야할지 모르겠습니다.. 실행하려고 하면 오류가 나요ㅠ

화면캡쳐

위 질문에 해당하는 질문의 링크나 스크린샷을 여기에 추가해 멘토분들이 참고할 수 있도록 하세요.

프로젝트 주소

위 질문에 해당하는 질문의 링크나 스크린샷을 여기에 추가해 멘토분들이 참고할 수 있도록 하세요.

멘토 답변

1.
MVVM 설명 한번만 부탁드립니다.. 아래 화면 캡처해두었는데 계속 읽어봐도 이해가 어렵네요…
MVVM은 Model, View, ViewModel의 약자입니다.
MVVM은 코드 관리시에 관심사 분리를 위한 아키텍쳐 기법중 하나입니다. 하나의 코드에 모든 코드가 있다면 특정한 코드를 찾기도 어렵고, 규칙이 없기때문에 스파게티 코드가 되기 쉽습니다. 따라서 Model, View, ViewModel에 각각 역할을 부여하고, 역할에 맞는 코드만을 기입합니다.
View는 Activity, Fragment같이 화면에 그리는 것을 위주로 수행하기 위한 코드가 들어가야합니다. view에 데이터를 대입하거나, 버튼의 동작 등을 바인딩해줄 때 이용합니다.
ViewModel은 화면에 들어갈 데이터를 수정할 때 사용합니다. 계산기의 덧셈 연산과 같이 간단한 값의 변화가 있거나 Model에 필요한 값을 요청하거나, 받아온 뒤 View로 데이터를 전달해주는 역할을 합니다.
Model은 DB에서 데이터를 조회, 삽입, 삭제 등의 역할을 하거나 서버 api를 요청하는 등의 역할을 수행합니다. View와 직접 소통하지 않으며, ViewModel과만 소통합니다.
2.
모든 화면에 공통적으로 들어갈 bottomNavigation을 만든 후에 적용을 어떻게 해야할지 모르겠습니다.. 실행하려고 하면 오류가 나요ㅠ
activity에 bottomNavigation을 두고, fragment를 액티비티에서 갈아끼우는 형식으로 진행해야합니다. fragment는 액티비티의 특정 부분만을 사용할 수 있습니다. 하단에 bottomNavigation은 고정으로 두고, fragment만 여러가지의 fragment로 변경되어야합니다.
fragment는 activity가 있어야지만 존재할 수 있습니다.