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