과제하는 법

김수환·2024년 7월 8일

요구사항을 분석하자 : 야구게임 ⚾️

기능 나열

  • 입력

  • 출력

  • 채점

  • 예외처리

  • 세자리 숫자를 입력받자 -> 스트라이크, 볼, 낫싱을 판단하자

  • 다시 게임을 진행 하거나 게임을 끝낼 수 있게하자

  • 예외를 처리하자.

객체지향적인 분석

  • 객체 : 모든 실재(實在)하는 대상
  • 사람이 바라보는 관점을 바탕으로, 객체를 바라보자
  • "객체지향의 목표는 실세계를 모방하는 것이 아니다. 오히려 새로운 세계를 창조하는 것이다."
    _ 객체지향의 사실과 오해 by 조영호
  • 작은 단위의 객체부터 생각해볼까?
    야구 게임 :
    • 사용자 입력 번호, 정답 번호는 세자리 정수네? -> 인터페이스나 추상클래스를 만들어볼까?
    • 정답번호에 바로 접근해도 될까? -> 캡슐화를 적용하자
    • 상수값이 있네? -> ENUM을 활용해볼까?

김수환이 생각한 객체들

  • 게임기 🎮
  • 입력기 ⌨️
  • 랜덤넘버 생성기 📠
  • 정답번호 🎯
  • 사용자가 입력한 번호 🙋‍
  • 채점기 🙆‍🙅‍
  • 출력기 🖥️

ex. 게임기 설계 🎮

게임기가 의존하는 객체들

  • 입력기
  • 랜덤넘버 생성기
  • 채점기
  • 출력기

과제가 아니라 일이라고 생각하자 💵

예외를 생각해보자!

  • 네자리 값이 들어오면? ex. 1234
  • 중복된 숫자가 들어오면? ex. 121
  • 소수가 들어오면? ex. 14.3
  • 문자열이 들어오면? ex. abc
  • 리플레이 옵션에 다른 값이 들어오면? ex. 5

요구사항이 수정되면?

  • 입력값이 네자리로 바뀌면?
  • 1~9 였는데 0~9로 바뀌면?
  • 입력이 문자로 바뀌면? (ex. abc)
  • 리플레이 옵션에 다른 값이 들어오면?

성장하려면?

  • 미리 미리 해서 피드백을 많이받자!!
  • 제출을 위한 과제는 지양하자
  • 학교에서 성적받으려는 과제가 아님 ㅡㅡ
  • 질문을 많이 하자!!
    - 멘토가 많아서 도움줄 사람이 많아요!!
profile
hello human

0개의 댓글