TIL

24.03.20

re트 2024. 3. 20. 20:52
728x90

● 오늘 한 것

[최종 팀 프로젝트 18일차]

-  후기 기능 속도 개선 & DB 오류 개선

https://www.notion.so/5-e2be3ec1596c481d80a0d1ed82d2a9b9

 

[기술면접 예상 질문 정리]

- Constraint Layout과 Null Safety

● 오늘 알게 된 것

[최종 팀 프로젝트 18일차]

- 그냥 트릭이고 쓰면 안 될 줄 알았던 방식이 오히려 유튜브에서도 사용하고 있는 방식이란 것을 알게 되었다.

  후기나 댓글에서 쓸 수 있는 트릭으로, 먼저 UI(후기 or 댓글 리스트)에 사용자가 입력한 데이터를 넣어주고 그와 동시에 서버로 데이터를 날린다. 그러면 엄청 빠르게 적용된 걸로 사용자는 느끼게 되고 잠시 후 서버에서 받아온 데이터가 그 자리를 최신화하여 채우는 것이다.

- 서버(파이어스토어)와의 통신 시간을 줄일 수는 없었다.

- 리사이클러뷰의 스크롤을 올리기 위해서 그냥 smoothScrollToPosition만 알고 있다가 이번에 레이아웃 매니저를 이용한 코드를 알게 되었다.

rvReviewList.layoutManager?.scrollToPosition(0)

- 뷰모델의 라이브데이터생명주기를 민감하게 생각해서 짜야한다.

  바텀 네비게이션 뷰를 통해서 프래그먼트를 왔다갔다 해도 뷰모델의 라이브데이터는 사라지거나 초기화되지 않기 때문에 이전에 값을 가지고 있고 프래그먼트가 시작될 때 옵저빙이 된다...

 

[기술면접 예상 질문 정리]

- Null Safety가 뭐다 딱 정리하기가 좀 애매했다.

  타입을 nullable하게 선언할 수 있다는 것인지, 기본 타입이 non-nullable하다는 것인지, nullable한 변수들에 대해 처리가 가능한 연산자가 있다는 것인지 잘 모르겠다.

- Linear Layout은 뷰들을 중첩시켜 그리고(뷰의 깊이가 깊어짐) Constraint Layoutflat하게 뷰들을 배치시켜 그린다고 한다.

  뷰의 깊이가 깊어질수록 처리 시간이 더 오래 걸리기 때문에 UI 렌더링에서 Constraint Layout이 더 좋다고 한다.

- 뷰의 DepthUI 렌더링 간에는 상관관계가 존재한다는 것을 알게 되었다.

 

● 오늘 총평

기능 구현을 하는 날이기 보다는 리팩토링과 정리하는 거에 집중하는 날이었다.

어제보다는 컨디션이 좋아서 시간이 잘 갔던 거 같다.

후기 쪽 트릭은 정말 튜터님께 오케이를 받아서 다행이었다.

이거말고는 정말 다른 방법이 떠오르지 않았다...

그런데 뭔가 좀 기능을 추가하고 싶은데 딱히 떠오르지가...

반응형