BookLog(북로그) 앱 출시 리뷰-1

2023. 1. 5. 16:58프로젝트/BookLog(북로그)-출시앱

■ 1주차 리뷰

• realm테이블구조를 짤 때 필요한 상황에 대해 충분히 생각하고 짜야함. 놓쳤다가 중간에 필요한 데이터인 경우 변경하는데 시간소요됨. 나같은 경우 메모작성날짜(lastUpdate)를 UI상에만 구현해놓고 막상 realm에는 처리안하고 있던 걸 중간에 수정했음. 만약 추가할 컬럼이 여러개였으면 더 많은 시간 소요했을 듯.

• 테이블뷰 만들때 delegate, datasource, register개념에 대해 다시한번 숙지하게 됨. delegate, datasource는 기능사용, register는 컨트롤러 안에 여러개 일 수 있는 테이블뷰 객체 중 재사용할 하나를 지정하는 것.

• 화면전환에 따라 데이터 전달을 어떻게 할지 큰그림을 조금 더 구체적으로 그려보고 했으면 좋았을듯함. 코드짤때마다 화면구성에 따른 데이터 전달을 어떻게할지 생각하면서 하니까 속도가 더딤. 또한 데이터 전달방식을 어떻게 처리하는지 숙지할 필요성을 느낌(notification center, closure등).

• 다른 컨트롤러에서 같은 realm테이블에 접근 할 수 있는지? 접근할 수 없다면 데이터전달을 어떻게 해야하는지 알아야 함.

• 나중에 바꾸더라도 디자인셋을 미리 정해놓고 들어가야함(배경색, 글자색 등).

• 초기화개념에 대해 다시 공부해야할 필요성 느낌. 상속받을 때 왜 초기화가 필요한건지 등.

 

■ 주요 개발 내용

• RealmStudio에서 테이블확인 안되는 이유?

     ⁃ realm studio랑 sdk버젼이 맞지 않아서 realm studio버젼을 다운그레이딩하니까 해결됨 13.0.2→12.0.0

 

• CategoryListViewCell에 let vc = CategoryListViewController선언하니까 infinite recursion발생하는 이유?

     ⁃ 셀재사용을 하면서 CategoryListViewController를 실행하니까 CategoryListViewController안에 있는 CategoryListViewCell가 계속 호출되고 재사용되면서 무한 재귀 발생.

 

• realm테이블에 lastUpdate컬럼추가 필요했음.

     ⁃ 최종수정일 데이터가 있어야 날짜순으로 독서목록 정렬할 수 있기 때문.

 

• "Index 0 is out of bounds (must be less than 0).”에러

     ⁃ 모든 테이블뷰 메서드에서 섹션이 0번일 때와, 1번일 때의 조건이 설정 되어야 하는데 numberOfRowsInSection 과 몇 개의 메서드에만 섹션에 대한 조건이 있고, cellForRowAt 과 다른 메서드에서는 섹션에 대한 조건이 없어서였음. 예를 들어 0번 섹션에 글이 3개고, 1번 섹션에 글이 7개라 한다면, 0번 섹션일 때의 cellForRowAt(셀 데이터 및 디자인 처리)도 3개의 데이터만 처리가 되어야 하는데, 그렇지 않아서 인덱스 오류 발생.

 

• EachBookListViewController에서 navigationTitle이 초기화되지 않았기 때문에 didSelectRowAt에서 부를수 없었음. 초기화를 제대로 하자!

• 오토레이아웃 충돌 때문에 콘솔에 매우 긴 로그 출력됨. 그래서 프린트문 찍어서 체크하는데 매우 방해되었음. 오토레이아웃 때문인건 알겠는데 정확한 원인을 파악할수없어서 구글링하다가 시간을 보내며 방법을 찾기 시작함(breakPoint, Why The Failure 등). 근데도 파악이 안돼서 로그내용을 자세히 보다보니 문제가 발생한 파일명과 충돌발생한 오토레이아웃속성이 떡하니 적혀있었음(centerY를 설정하고 위아래 margin을 주니 충돌발생함). 결론은 콘솔로그를 상세하게 보고 디버깅하는 습관을 기르자!

• decodable에서 json타입의 키값과 구조체의 변수명을 일치시켜야함. 그렇지 않으면 키를 찾을수없어서 데이터변환이 안됨. 옵셔널로 선언하면 키가 다른 경우 nil 반환해야함.

• PK로 사용하는 ISBN을 초기화 안해주면 데이터를 추가할 때 Attempting to create an object of type 'BookData' with an existing primary key value ''.”에러 발생함. pk는 중복이 안되는데 빈값으로 데이터를 추가하려고하니 빈값이 중복되어 에러가 발생하는 것.

• row가 10개 인데 재사용셀데이터가 1개이면 10개 중 1개 셀만 재사용할 수 있어서 나머지 셀에 넣을 데이터가 없어서 "Index 0 is out of bounds (must be less than 0).” 발생