테트리스 프로젝트 도중 각종 설정을 저장해야해서 properties 파일에 전부 몰아서 저장할려고 했다. 현재 방향이동키와 해상도를 properties 파일에 key-value 값으로 String타입을 통해 저장할려고 한다.
근데 아무래도 테트리스 이동키와 해상도는 서로 다른 역할을 하기에 메서드를 따로 빼놨었는데 자꾸 Properties 파일에 들어가지않았다. 코드 자체의 문제라기엔 컴파일에러도 없고 그냥 멀쩡히 동작하는데 값만 안들어가고 있다.
saveResolution 메서드 바디를 보면 properties 객체가 이미 만들어져있는 것을 가져다 쓰고있다. 현재 이 객체는 키셋팅 저장하는 다른 클래스에서 static 멤버필드로 할당하고 있었고 현재 이 saveResolution메서드가 있는 클래스에서 해당 static 멤버필드를 그대로 가져다 쓰고있었다. 그러다보니 다른 클래스에서 properties 객체를 만들면서 입출력 스트림에 대하여 다른 경로로 스트림을 열었기에 내가 원하는 그 경로가 아닌 다른 경로에 쓰여지고 있었던것이다.
setting.properties에 넣어야되는데 resolution.properties로 들어가고 있었음... properties 객체를 같이 쓰다보니...
이런 어이없는 실수를 해보니 static은 남발하면 안되겠다