오늘은 작업량이 많기 보다는 데모 버전 빌드에 대한 테스트 진행 등에 대부분의 시간을 사용했다. 기업에 제출할 데모 빌드를 안정적인 상태로 보내야 했기 때문에 오전 내내 여러 기기로 빌드본 테스트를 진행했다.
이후 오후가 돼서야 업무를 분배받아서 캐릭터 강화 시스템에 대한 임시 데이터 설계 및 UI 작업을 진행 중에 있다.
빌드본에서는 어제 해결되지 않은 치명적인 버그가 있었다. 게임을 강제종료했을 때 게임을 재실행한 후 게임 시작을 시도했을 때 프리즈가 걸리는 현상, 이 문제를 해결해야 했다.
우선 어제 확인한 내용으로 프리즈가 걸리는 시점에서 오류 코드가 찍히지 않는다는 사실을 알아냈다. 이에 따라 강사님께 의견을 여쭤본 결과, 디버그로 오류 내용을 찾기 어렵다면 블랙박스 테스트를 진행해야 한다는 말씀을 듣게 되었다.
소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법.
검사 진행에 있어 해당 소프트웨어의 코드나 내부 구조에 대한 정보는 필요하지 않으며, 특징, 요구 사항 검사를 위해 공개된 설계도 등의 대외적으로 공개된 사항들을 통해 검사를 진행하며,
와 같이 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가 이뤄진다.
즉 지금 상황에서 테스트를 진행할 방법으로는, 씬이 제대로 로딩이 되고 있는지를 확인하고, 혹은 씬에 너무 많은 요소가 있어서 로딩에 지연이 있는 것은 아닌지 여러 방면으로 테스트를 진행해봐야 한다는 것이었다.
특히나 지금 상황에서 가능성이 있는 원인으로는 메모리 초과가 원인이 아니냐는 의견도 있었고, 실제로 현재 앱의 용량이 3.8기가 정도 되는 사이즈여서 그냥 빈 씬으로는 넘어가지는지 확인해보라고 하셨다.
하지만 메모리 용량 부족의 문제로는 보이지 않는 게, 현재 게임이 돌아가지 않는 갤럭시 탭 A9+는 RAM 크기가 4기가여서 그럴 수 있다고 쳐도, 같이 작동이 안 되는 S22의 경우에는 RAM 크기가 8기가였기 때문이다.
그러던 중에 다행히도 원인을 찾았다. 원인은 Addressable을 사용하고 있는 환경에서 발생한 문제였는데, Adressable로 등록되어 있었던 씬이 로딩이 되어야 하는데 로딩이 안되고 있었던 문제가 있었다.
현재는 임시로 Adressable를 해제한 것으로 보이며, 프리즈 버그는 없어진 상태이다.
앞으로 Adressable을 사용하는 환경에서 이와 같은 데이터 로딩에 관한 로직을 잘 짜고 효율성 있게 짜는 것이 관건으로 보인다.