(TIL) 2020-06-16 기록
업데이트:
오늘 한 일
- 결국 실시간 유저 정보를 반영하는 걸로 결정했다. 왜냐하면 추후에 필터링 기능을 유료 컨텐츠로 풀 생각인데 과금을 한다면 더 유용한 정보인 실시간 유저 정보를 제공하는 게 맞다고 생각하기 때문이다.
- 유저 정보와 공개 보이스 정보 자체는 분리되어 있는데 최신 공개 보이스를 불러오는 과정에서 유저 정보를 불러와 필터링하는 것으로 만들었다.
- 유저 정보는 공개 보이스 도큐먼트 내에 정보로서 존재하는 것이 아니라 레퍼런스로만 존재하기 때문에 유저 정보 자체로 쿼리를 수행할 수가 없다. 그래서 가장 최근 공개 보이스 100개를 먼저 불러와 반복문을 통해 필터링 된 첫 번째 최신 공개 보이스를 불러오는 것으로 하고 만약 첫 100개의 메세지에서 발견하지 못하면 저장해둔 마지막 메세지를 기준으로 다음 100개를 또 탐색해 보여주는 식으로 했다. 좀 더 나은 방법이 있을지 찾아봐야겠다. 아무래도 이터레이터 내에서 순차 탐색을 하는 것보다는 해싱 되어있는 DB 내에서 쿼리를 수행하는 것이 훨씬 빠를 것이다.
- github에서 action을 활용하여 CI/CD를 구축해봤다. 말이 거창하지 그냥 action 내에서 가상 환경을 설정해주고 flutter로 앱을 빌드하고 배포하는 과정을 그대로 입력해주면 된다. 그러면 내가 github 저장소에 코드를 푸시할 때마다 알아서 정해진 설정대로 테스트, 빌드해준다.
- 백준 알고리즘 초급 강의에서 브루트포스 부분 강의를 다 들었다. 브루트포스라는 게 결국 경우의 수를 모두 세는 방식이라서 특별히 무슨 이론 같은 게 있는 것 같지는 않았다. 다만 그 방법론으로 순열, 재귀, 비트마스크 같은 게 있었는데 브루트포스만큼은 문제를 풀면서 내가 익숙해지는 수밖에 없는 것 같았다.
- rust에서 struct를 배웠다. C/C++의 struct와 근본적으로 같기는 한데 impl 키워드를 사용해 struct 내에 메서드를 선언할 수 있다는 점, 그리고 초기화 방법이 더 다양하다.
- enum에 대해서도 조금 알아봤는데 재밌는 점이 enum을 매개변수로 받는 함수 내에서 match 키워드를 사용해 각 enum 타입에 대해서 문장을 실행시킬 수 있다. 이것은 마치 switch문 같다.
내일 할 일
- 백준 알고리즘 강의에서 그래프 부분을 나갈 차례이다.
- 보이스 챗 앱의 로직에서 구현할 부분이 아직 많이 남아있다.
댓글남기기