사건번호 : 스파르타 - 20240412
사건일시 : 240412 13:30 ~ 15:30
사건의 발단
코어 데이터 사용으로 인해 문제가 발생했다고 의심하기 시작함.
이를 해결하기 위해 가설을 두 가지를 세워봄.
사건의 전개
가설 1. 코어 데이터에 저장할 때 문제가 있다?
코어 데이터에 담는 과정에서 오류가 있었나 확인하기 위해 모든 구역에 print를 찍어보았다.
이로 인해 가설 1은 폐지되었다.
가설 2. 코어 데이터에서 불러올 때 문제가 있다?
코어 데이터에서 가져와서 새로 담긴 배열을 출력해보면 이 사건을 해결할 수 있을 것 같다.
그럼 가설 2번에 무게가 실렸다. 가설 2번을 해결하기 위해 코어 데이터를 불러와서 새로 배열에 담기까지의 과정을 지켜보자.
사건의 위기
사건의 진범을 가려내기 위해 용의자를 주도면밀하게 관찰했다.
용의자1) F씨.
해당 매서드는 API를 통신하지도 않고, 코어 데이터 내의 제품 정보를 가져오는 일만 수행한다.
용의선상에서 제외해도 될 것 같다.
용의자2) O씨
이 역시 dataSource만 self로 만들고 함수를 호출할 뿐 별다른 영향력이 없어보인다.
용의선상 제외.
용의자3) L씨
용의자1번이었던 F씨가 L씨의 결백함을 증명하고 있다.
리로드 데이터만으로는 범행에 가담하기 어려웠을 것이며 F씨와 공범이 아닌 이상 알리바이가 확실하다.
용의자4) T씨
앞선 내용에서 모두 문제가 없었다면 cell에 옮겨담는 과정에서 문제가 발생했다고 생각하는 것이 맞다.
그러나 cell에 id, title, price를 모두 담는 모습이 else문에서 포착되었다.
하지만 수사관의 입장에서 의심을 끝까지 놓을 수 없었다.
가장 아닌 것부터 하나씩 제외하다보면 남는 것이 아무리 말이 안되는 상황이더라도 그것이 진실이다.
수사의 기본이면서 여전히 시대를 관통하는 명언이다.
분명 cell에 잘 담은 것 같더라도 뜯어보면 오류가 있을 수 있다.
이를 위해 몇 가지 가설을 다시 한 번 세워보자.
가설 1. cell 연동이 되지 않았다.
물론 그랬다면 id가 제대로 떴을 리 없지만 한 번 확인해보자.
이만하면 기본적인 구현에 있어서 문제가 없다고 단정지어도 될 것 같다.
가설 2. 셀에 내용이 다른 것이 담겨있다.
이로 인해 cell에 빈 문자열이 담겨있으며 가격에는 0원이 들어갔다는 것을 확인할 수 있었다.
cell의 단독 범행이었을 것이라 단정하여 표적 수사를 진행했다.
사건의 절정
사진으로 남길 수 없을만큼 수많은 도전을 했으나 이제는 과연 여기가 문제일까? 라는 생각이 들기 시작했다.
주변인에게 도움을 청해서 협동수사를 해보기로 결정했다.
코어 데이터 Entity 구성이나 이외에 print들을 보며 잘못된 부분이 전혀 없는데 어째서 이런 일이 일어난건지 혼란스러워했다.
그러다 새 제품을 위시리스트에 추가하여 print를 확인하던 중 발견하게 된 내용.
" 새로 나오는 내용은 잘 담겨있는데요? "
나는 대답했다.
" 그치만 여기에는 여전히 0원인데요? "
라고 말하는 순간 느꼈다.
몇 시간 전부터 느껴지는 같은 id 숫자의 반복.
등골이 오싹하다.
사건의 결말
결국 끔찍한 시간만수르 행위를 저지른 이 씨는 구속되었으며, 징역형을 선고받고 코딩교도소에 수감중이다.
사건의 전말을 파헤치기 위해 이 씨가 교도소에서 작성한 탄원서의 일부를 발췌하였다.
" 과거에 id만을 코어 데이터에 저장하도록 설정하고 API에서 정보를 받아오는 방식으로 구현했었읍니다.
하지만 회사에서 API를 사용하지 말고 다른 구조체에 담아 데이터 자체를 저장하는 방법을 사용하라는 지령으로 인하여
코드를 수정하는 과정에서 코어 데이터를 삭제하지 않고 그대로 이어서 쓰다보니
스크롤에 대한 생각을 하지 못한 채, Cell 및 기타 코드들에게 의심을 품기 시작했읍니다.
당연히 다른 곳에서 문제가 일어난 줄 알았던 제 자신이 부끄럽읍니다.
다시는 이런 일이 일어나지 않도록 어느 프레임에 갇혀 넓게 바라보지 못하는 실수를 저지르지 않겠읍니다.
죄송합니다. "
오늘도 사건 해결!
와 시간 날렸다!
'iOS > TIL (Today I Learned)' 카테고리의 다른 글
국비지원 코딩 부트캠프 '내일배움캠프' 직접 다녀온 생생한 후기 (1) | 2024.07.14 |
---|---|
[240409] 메모리 영역과 참조 | TIL (2) | 2024.04.09 |
[240403] KIOSK #3 | TIL (0) | 2024.04.03 |
[240402] KIOSK #2 | TIL (0) | 2024.04.02 |
[240401] KIOSK #1 | TIL (0) | 2024.04.01 |