> For the complete documentation index, see [llms.txt](https://injun-woo30000.gitbook.io/growth-log/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://injun-woo30000.gitbook.io/growth-log/daily-review/2021/feb/2021-02-22-mon.md).

# 2021-02-22(Mon)

| 항목         | 내용                          |
| ---------- | --------------------------- |
| 학습 날짜      | 2021-02-22(월)               |
| 학습 시간      | 10:00\~24:00                |
| 학습 범위 및 주제 | ChatRoom 완성                 |
| 학습 목표      | ChatRoom을 PR할 수 있는 상태로 만든다. |
| 동료 학습 방법   | -                           |

## 상세 학습 내용

4가지를 처리하고 PR에 반영하였다. 아래는 PR 메세지의 일부

* **챗룸에서 '멤버 내보내기' 당하면 5초 동안 출입 불가하게 구현**
  * 이를 위해 `ban_ends_at` column을 group chat memberships에 추가했습니다.
  * 시간은 group chat membership controller에서 `set_ban_time_from_now`에 넘겨주는 인자 해시를 변경하면 변경 가능합니다. 가령 아래처럼!

    ```
    set_ban_time_from_now({
      hour: 1,
      min: 2,
      sec: 30
    })
    ```
* **'완전히 나가기'를 클릭하면 chatrooms로 네비게이트할 수 있도록 구현**
  * 이를 위해 async, await를 써서 chatrooms로 네비게이트할 페이지에 반영될 데이터가 확실히 응답해왔음을 보장하도록 구현했습니다.
* **응답되는 에러메세지가 에러페이지에 반영되도록 수정**
* **그 외 리뷰로 알려주신 에러들 fix**

  javascript의 비동기 처리에 대해 좀 더 학습할 수 있었다. async, await를 쓰는 함수를 중첩해서 호출하는 것도 고려해야 세심하게 컨트롤 가능하다.

## **학습 내용에 대한 개인적인 총평**

간단한 fix라고 생각했는데 생각보다 시간이 걸렸다. 그 전까지 잘 작동하고 있다고 생각했던 부분이 단지 잘못된 동작을 하기 전에 view가 삭제되어버리는 바람에 생긴 착시현상에 불과했다는 것에 부끄러움을 느꼈다.

대신 덕분에 javascript의 동작 방식에 대해서 좀 더 학습할 수 있게 되었다.

## **다음 학습 계획**

* Tournament 로직 정하기
