전체 보기
🍀

4,5일차_MVC 온전히 이해하기

작성일자
2023/10/22
태그
DIARY_DEVELOP
프로젝트
PreCourse
책 종류
1 more property

MVC (view → controller → model → controller → view)

mvc 정의
model : 모든 view에게 이벤트로 인해 변경된 데이터 알려줌
view : 데이터 변경될 때마다 model로부터 데이터 가져옴
controller : view에서 일어나는 이벤트 캐치해서 model에게 알려주고, model에서 변경된 데이터를 view에게 전달해줌
참고 : change advert mvc sequence diagram
mvc 과정
view가 이벤트를 감지
→ (controller가 view에서 감지된 이벤트를 model에게 전달해줌)
→ model이 이벤트에 대한 데이터 처리(변경)
→ (controller가 model에서 변경된 데이터를 view에게 전달해줌)
→ view가 변경된 데이터 받음
게임 프로세스에 적용한 mvc 과정
3자리 숫자 틀렸을 때
view가 플레이어의 숫자 제시 이벤트 감지
(→ controller가 숫자를 model에게 전달해줌)
→ model이 플레이어가 제시한 숫자를 보고 검증 후 저장, 결과도 계산해 저장
(→ controller가 결과를 view에게 전달해줌)
→ view가 model로부터 힌트라는 결과 받아 띄어줌
3자리 숫자 맞았을 때
view가 플레이어의 숫자 제시 이벤트 감지
(→ controller가 숫자를 model에게 전달해줌)
→ model이 플레이어가 제시한 숫자를 보고 검증 후 저장, 결과도 계산해 저장
(→ controller가 숫자를 view에게 전달해줌)
→ view가 model로부터 정답이라는 결과 받아 띄어줌
view가 플레이어가 제시한 게임 지속(중지) 이벤트 감지
(→ controller가 게임 지속(중지) 상태를 model에게 전달해줌)
→ model이 플레이어가 제시한 게임 지속(중지)이란 상태 보고 검증 후 저장
(→ controller가 게임 지속(중지) 상태를 view에게 전달해줌)
→ view가 model로부터 게임 지속(중지)이란 결과 받아 띄어줌
실제 코드에 적용한 mvc 과정
게임 최초로 시작할 때
gameController, gameModel 초기화
3자리 숫자 틀렸을 때
inputView가 플레이어의 숫자 제시 이벤트 감지
(→ gameController가 숫자를 model에게 전달해줌)
→ model이 플레이어가 제시한 숫자를 보고 검증 후 저장, 결과도 계산해 저장
(→ gameController가 결과를 view에게 전달해줌)
→ outputView가 model로부터 힌트라는 결과 받아 띄어줌
3자리 숫자 맞았을 때
inputView가 플레이어의 숫자 제시 이벤트 감지
(→ gameController가 숫자를 model에게 전달해줌)
→ model이 플레이어가 제시한 숫자를 보고 검증 후 저장, 결과도 계산해 저장
(→ gameController가 숫자를 outputView에게 전달해줌)
→ outputView가 model로부터 정답이라는 결과 받아 띄어줌
inputView가 플레이어가 제시한 게임 지속(중지) 이벤트 감지
(→ gameController가 게임 지속(중지) 상태getGameContinueChoice를 model에게 전달해줌)
→ model이 플레이어가 제시한 게임 지속(중지)이란 상태 보고 검증 후 저장
(→ gameController가 게임 지속(중지) 상태를 outputViewprintGameEnd에게 전달해줌)
→ outputView가 model로부터 게임 지속(중지)이란 결과printGameStatus 받아 띄어줌

Today in 프리코스

TIL 작성하기
몰입
기능 구현 목록 완료하기
설계를 코드와 결합하기
오늘의 각오
삽질하느라 쏟은 시간을 만회하기 위해 이제 남은 하루를 이틀처럼 달리자 ^^
후…. 드디어 설계 결과물이 좀 나왔다……..
사실 지금은 24일 화요일 새벽이다 ㅎㅎ .. 23일 월요일 til이지만,,, 나의 하루는 24시가 끝이 아니라 ^^…
오늘 밤을 새서라도 최대한 코드 구현해서 화요일까지 구현 끝내고
수요일에 소감이랑 설계한 거 그림으로 그리는 거 작업 하면 얼추 기한 내에 완성 가능할 거 같다.
다른 사람들은 평균적으로 설계 2일(목금) 구현 3일(토일월) 정도 하는 거 같은데…
나는 이제 설계 4일(금토일월) 구현 1일(화)이 되어버렸다…..ㅠ
심지어 목요일은 과제 메일 내용이랑 docs들 꼼꼼히 분석하고 컨벤션 공부하는 데 다 써버렸다,,,
구현은 이제 실질적으론 1일이지만 24시간을 최대한 활용해 남들의 2일처럼 쓰는 방법 밖에 없다.
이틀만 밤새자 ㅎㅎ
그래도 다음주엔 컨벤션 정리에 시간을 덜 할애해도 되니 설계 3일(목금토), 구현 3일(일월화)가 되길 바란다.
설계할 때 삽질도 너무 많이 했고,,, 초반에 아예 mvc에 대해 감을 못잡아서 머리를 꽁꽁 싸맸었다.
드디어 mvc를 제대로 이해하고 설계도가 머릿속에 그려졌다.
코드랑 얼추 이어서 설계한 거 작성해보니 점점 재밌어진다.
이제 코드 구현은 더더 재밌겠지?! 본격적으로 구현 들어가기 전 짧막하게 일기 남긴다.
구현을 마치고 아침이 밝았을 때 일기를 더 써나가보겠다. 바로 잠들지 않는다면 ㅎㅎ
Search
1일차_둘러보기, 환경설정하기
2023/10/19
DIARY_DEVELOP
1일차_둘러보기, 환경설정하기
2023/10/19
DIARY_DEVELOP