🍀

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

작성일자
Oct 22, 2023
태그
DIARY_DEVELOP
프로젝트
PreCourse
책 종류

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

  • 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를 제대로 이해하고 설계도가 머릿속에 그려졌다.
코드랑 얼추 이어서 설계한 거 작성해보니 점점 재밌어진다.
이제 코드 구현은 더더 재밌겠지?! 본격적으로 구현 들어가기 전 짧막하게 일기 남긴다.
구현을 마치고 아침이 밝았을 때 일기를 더 써나가보겠다. 바로 잠들지 않는다면 ㅎㅎ
 
🍀
1일차_둘러보기, 환경설정하기
Oct 19, 2023
DIARY_DEVELOP
🍀
2일차_컨벤션 정리하기
Oct 20, 2023
DIARY_DEVELOP
🍀
3일차_설계에 대해 고민하기
Oct 21, 2023
DIARY_DEVELOP
🍀
4,5일차_MVC 온전히 이해하기
Oct 22, 2023
DIARY_DEVELOP
🍀
6일차_설계를 코드로 구현하기
Oct 24, 2023
DIARY_DEVELOP
🍀
7일차_리팩토링과 마무리하기
Oct 25, 2023
DIARY_DEVELOP
🍀
8,9일차_코드 리뷰 통해 객체지향에 다가가기
Oct 27, 2023
DIARY_DEVELOP
🍀
10일차_지난 과제 돌아보며 객체지향 이해하기, 의존성과 설계의 관계 맛보기
Oct 28, 2023
DIARY_DEVELOP
🍀
11일차_객체지향을 미션 설계에 적용하기(with [책] 객체 지향의 사실과 오해)
Oct 29, 2023
DIARY_DEVELOP
🍀
12일차_기능 별로 구현하며 단위 테스트의 필요성 느끼기 (with [책]자바와 JUnit을 활용한 실용주의 단위 테스트)
Oct 30, 2023
DIARY_DEVELOP
🍀
13,14일차_일급 컬렉션과 레코드 적용해 리팩토링하기
Oct 31, 2023
DIARY_DEVELOP
🍀
15, 16일차_코드 리뷰를 통해 성장하기(1)_다른 사람의 코드 읽으면 배운 것 정리
Nov 2, 2023
DIARY_DEVELOP
🍀
17일차_코드 리뷰를 통해 성장하기(2)_내 코드 개선하며 배운 것 정리
Nov 4, 2023
DIARY_DEVELOP
🍀
18일차_내가 찾은 설계 방법 공유하기, 공유에 대해 고민하기
Nov 5, 2023
DIARY_DEVELOP
🍀
19일차_지난 과제 피드백 고려해 설계하기
Nov 6, 2023
DIARY_DEVELOP
🍀
20, 21일차_일단 돌아가는 코드를 만들기
Nov 7, 2023
DIARY_DEVELOP
🍀
22일차_현재 도움이 될 것 생각하기 (디자인패턴과 mvc2 과감히 패스)
Nov 9, 2023
DIARY_DEVELOP
🍀
23일차_코드리뷰하기 (feat. converter 파고들기)
Nov 10, 2023
DIARY_DEVELOP
🍀
24일차_기획을 문서화하기
Nov 11, 2023
DIARY_DEVELOP
🍀
25일차_설계하며 고민하기
Nov 12, 2023
DIARY_DEVELOP
🍀
26, 27일차_구현하며 고민하기
Nov 13, 2023
DIARY_DEVELOP