TIL/Project

Trouble Shooting (숫자 야구 게임)

myoma 2024. 10. 25. 10:17

1 ) 배경

  • 재귀함수를 이용하여 메서드를 탈출했는데 이전의 입력했던 데이터들도 자동으로 실행.
  • 게임 진행 횟수를 리스트에 저장한 후 게임 기록 보기를 하려고 하였으나.

 

 

2) 발단

  • 하나의 메서드에서 재귀함수를 이용하여 다른 메서드로 이동할 때. 그 전에 실행했던 기록이 지워지는 것이 아니고 남아있는 상태로 다시 실행.
  • 그로인해 재귀함수 실행 후 재귀함수 탈출 후에 남아있던 기록이 다시 실행되며 이전 데이터 값까지 불러오는 현상 발생.
  • 게임 기록 보기 실행 시 리스트에 저장되어 있던 게임 진행 횟수 데이터들이 초기화되어 기록 저장이 안됌.

 

 

3) 전개 & 위기

  • 재귀함수를 사용할 수 없음을 깨닫고, return true; 로 바꾸어 실행 했으나 잘못 입력된 데이터들이 저장되어 초기화되지 않고 그대로 남아있어 반복문에서 못 빠져나와 무한 루프 발동.
  • 하나의 메서드에서 기록을 저장하고 보여주는 방식을 선택하였으나 두 기능 구현 메서드를 따로따로 설정 하지만 여전히 리스트를 제대로 불러오지 않음.

 

 

4) 절정

  • 메서드에서 list를 탈출 시켜 자동으로 초기화되게 코드 변경
  • 접근 제어자를 사용하였으나 잘못된 접근 방식이었다.

 

 

5) 결말

  • list를 메서드에서 탈출 시켜 자동으로 초기화 되게끔 다른 메서드의 코드를 수정하게 변경하였다. 재귀함수를 잘 사용하지 않아야 한다것을 생각하게 되었다.
  •  접근 제어자 사용을 하지 않고 정적 메소드를 사용하여 인스턴스 생성을 하지 않고 리스트를 불러와 데이터 보존.