/ NOTE

note - 1차 프로젝트(1조) 리뷰

프로젝트 발표중 인상 깊었던 세 팀에 대한 코드 리뷰

1조 선택 이유 - “JAVA의 탑” 이라는 아이디어가 너무 마음에 들었다

1조 팀원1 블로그 가기

static String start_game = "";
static String name = "";

Q : ““을 입력한 이유가 있나? 아래 예시가 더 깔끔하지 않나?

static String start_game,name;

A : 제 코드를 조원분께 이해시켜야 했기 때문에 가독성을 늘리고 더 명확한 해설이 되었으면 해서 이렇게 작성했습니다

if(player_sel == 1 || player_sel == 2 || player_sel == 3 ){
    switch (player_sel){
    case 1:

    }
}

Q : if 와 switch의 조건이 동일해 보이는데 2중으로 사용한 이유가 있을까?

A : 저도 못찾아낸 허점..

for(;;){
    if (r1 == r2){
        r2 = (int)(Math.random() * 5);
    }else{
        break;
    }
}

Q : 랜덤값 추출 시 중복 제거에 대한 접근법이 쉽고 간단해서 좋았다!

A : 두가지 변수의 중복제거이기 때문에 가능했고, 변수가 많았다면 어려웠을 것이라 생각합니다

void stage1(int f){
    Qz qz = new Qz();
    int rate = (int)(Math.random()*10);
    if(rate <= 6){}
}

문제 난이도 조절도 구현 했으면 좋겠다 라는 생각이 들었는데, 문제 출현 빈도를 통해서 난이도를 구현했다! 또다른 기발한 방법

Q : Scanner 인스턴스가 절반 이상의 클래스에서 생성 되고 있는데 static 변수로 활용하면 편하지 않을까?

A : 최대한 static을 사용하지 말고 작성해보려 했고, 설계 단계에서 조금 더 힘을 쏟았다면 달라졌을 것이라 생각합니다

Q : 중간중간 입력값 확인 과정이 없는 부분은 아쉬웠다! 실행 중에 성급하게 입력하거나 오타로 죽는 경우가 다수 발생 했다

A : 이런 처리가 가능하다는 것을 다른 메소드에서 보여주었기 때문에 굳이 해야하나? 라는 생각으로 넘겼습니다

Q : 코드별 주석이 있어서 이해하기 편했다, 다음 개발에 참고해야겠다

A : 가독성을 높이고 다른 사람에게 코드 이해를 쉽게 시켜주기 위함의 목적이 강했기 때문이라고 생각합니다

전체 후기

각 문제별 case를 지정해 사용자에게 출력을 해주는데, 문제 출력과 정답을 같은 배열에 넣어 반복되는 코드를 충분히 줄일 수 있을 것으로 보인다. 하드코딩이라 아쉬운 부분

플레이어도, 개발자도 JAVA에 대해 공부할 수 있는 컨텐츠를 제작했다 지금의 우리에게 가장 최고의 선택이 될 수 있는 주제가 아닐까 하는 생각이 들었고, 아이디어와 열정이 돋보여 기회가 된다면 이런 열정을 같이 쏟아보고싶다

잘 사용하지 않는 변수, 코드의 나열 방식, 개성이 돋보이는 주석, 특히 인스턴스가 코드 중간중간, 사전에 선언해서 준비한게 아닌, 꼭 필요한 순간에 생성이 된다는 점에서 코드 전체를 파악한 누군가가 대부분의 코드를 작성했다는 느낌이 들었다

비난하고자 하는 의미가 아니라, 같은 기간 동안 프로젝트를 진행해왔던 학생의 입장에서 이 프로젝트에 참여한 각 팀원들의 입장에 모두 공감이 되어 안쓰러웠다