[인프런 워밍업 클럽_0기] BE 다섯 번째 과제 (진도표 5일차)

2024. 2. 22. 22:38·공부/인프런 워밍업 클럽_BE
반응형

이미지를 누르면 해당 링크로 이동합니다.

 

강의 출처

 

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인

Java와 Spring Boot, JPA, MySQL, AWS를 이용해 서버를 개발하고 배포합니다. 웹 애플리케이션을 개발하며 서버 개발에 필요한 배경지식과 이론, 다양한 기술들을 모두 학습할 뿐 아니라, 다양한 옵션들

www.inflearn.com

 

 

진도표 5일차와 연결됩니다
우리는 <클린 코드>라는 개념을 배웠습니다. <클린 코드>에 대한 감각을 익히기 위해서는 어떤 코드가 좋은 코드이고, 어떤 코드가 좋지 않은 코드인지 이론적인 배경을 학습하는 것도 중요할 뿐 아니라, 다양한 코드를 읽어 보며 어떤 부분이 읽기 쉬웠는지, 어떤 부분이 읽기 어려웠는지, 읽기 어려운 부분은 어떻게 고치면 좋을지 경험해보는 과정이 필요합니다.
이번 과제는 제시된 코드를 읽어보며, 코드를 더 좋은 코드로 고쳐나가는 과정입니다. 구글에 “클린 코드” 혹은 “클린 코드 정리”를 키워드로 검색해보면, 이론적인 배경을 충분히 찾아보실 수 있습니다. 🙂 그러한 내용들을 보며 제시된 코드를 더 좋은 코드로 바꿔보세요! (코드를 바꿀 때 왜 바뀐 코드가 더 좋은 코드인지 다른 사람에게 설명하신다고 생각해보시면 더욱 좋습니다.)
 
[제시된 코드]
여러 함수로 나누어도 좋습니다! 🙂
여러 클래스로 나누어도 좋습니다! 🙂

 

문제

 주사위 사진 예시 : https://www.google.com/search?sca_esv=600310596&rlz=1C5CHFA_enKR1067KR1067&sxsrf=ACQVn0_iT-qBMV0p_q-wUsDQsHY8hFBtlA:1705893428440&q=정십이면체+주사위&tbm=isch&source=lnms&prmd=ivsnbmz&sa=X&ved=2ahUKEwjMqc6ehPCDAxUSk1YBHUYeCcEQ0pQJegQIDhAB&biw=1512&bih=806&dpr=2

 

반응형

 

풀이

제일 먼저 눈에 들어오는 숫자를 받아오는 코드 세 줄을 getPlayNumber() 메서드로 뺐다.

public static int getPlayNumber() {
    System.out.print("숫자를 입력하세요 : ");
    Scanner scanner = new Scanner(System.in);
    return scanner.nextInt();
}

 

그리고 주사위에 대해 고민하다가 따로 주사위에 대한 클래스를 만들어주는게 나을 거 같아 도메인에 Dice 클래스도 만들었다.

그러면서 주사위와 관련된 로직은 모두 도메인 클래스로 빼버렸다.

public class Dice {

    private int limit; // 숫자 범위
    private int playNumber; // 주사위 던지는 횟수

    public Dice(int limit, int playNumber) {
        this.limit = limit;
        this.playNumber = playNumber;
    }

    public void play() {
        int[] numbers = new int[limit+1];

        for(int i = 0; i < playNumber; i++) {
            numbers[(int) (Math.random() * limit)]++;
        }

        resultPrint(numbers);
    }

    private void resultPrint(int[] numbers) {
        for (int i = 1; i < numbers.length; i++) {
            System.out.printf("%d은 %d번 나왔습니다\n", i, numbers[i]);
        }
    }
}

 

그리고 Main 메서드를 아래와 같이 정리!

public static void main(String[] args) {

    int playNumber = getPlayNumber();

    Dice dice = new Dice(6, playNumber); // 주사위의 면체와 입력받은 playNumber로 주사위 객체 생성

    dice.play();
}

 

오늘도 코드에 대해 생각하는 시간을 가질 수 있어서 좋았다!

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/인프런 워밍업 클럽_BE' 카테고리의 다른 글
  • [인프런 워밍업 클럽_0기] BE 일곱 번째 과제 (진도표 7일차)
  • [인프런 워밍업 클럽_0기] BE 여섯 번째 과제 (진도표 6일차)
  • [인프런 워밍업 클럽_0기] BE 네 번째 과제 (진도표 4일차)
  • [인프런 워밍업 클럽_0기] BE 세 번째 과제 (진도표 3일차)
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    기출문제
    SpringBoot를 이용한 RESTful Web Service 개발
    프로그래머스
    토비의스프링부트
    개발자
    Java
    QueryDSL
    IT
    자바스크립트
    SQL
    토이프로젝트
    전자정부프레임워크
    에러해결
    인프런
    프론트엔드
    넥사크로
    egov
    RESTful
    운영체제
    JPA
    MSA
    oracle
    react
    코딩테스트
    springboot
    Spring
    스프링부트
    방통대
    알고리즘
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
[인프런 워밍업 클럽_0기] BE 다섯 번째 과제 (진도표 5일차)
상단으로

티스토리툴바