# 20210305(금)

## 2021-03-05

### 1. 학습 날짜

* 2021-03-05

### 2. 학습 시간

* 11:00 \~ 24:00

### 3. 학습 범위 및 주제

* 백본 view, model, collection
* 루비온레일즈

### 4. 학습 목표

* PR 수정 및 PR 확인

### 5. 학습 정리

* [rspec으로 모델 테스트](https://simian114.gitbook.io/blog/undefined/rubyonrails/rspec)
* [time zone  설정하기](https://simian114.gitbook.io/blog/undefined/rubyonrails/time-utc-vs-local)

### 6. 상세 학습 내용

* RSPEC로 모델테스트하기
  * 과제가 거의 마무리되어 가는 시점이 되어서야 테스터 자동화를 시도해보고 있다. 물론 다른 팀원분들은 얼마전부터 먼저하고 있었다..
  * RSPEC 를 모델의 validatate 과정을 자동화 할 수있다.
  * 이렇게 자동화가 되면 뭐가 좋은가?! 하면 코드를 수정했을 때 이 코드가 좋은 코드가 아니라면 많은 부분에서 side-effect 가 발생할 것이고, 이런 사이드 이펙트가 어디서 발생할지 특정할 수 없다면 무수히 많은 테스트를 해보는 수 밖에는 없다.
  * 이런 경우 이 무수히 많은 테스트를 자동화된 코드로 딱 해버리면 매우 편해지는 것.
  * 물론 이런 이유 말고도 정말 많은 이유가 있다.
  * 정리는 위의 학습 정리를 보면 된다.
* Time zone 설정하기
  * 이번 과제는 날짜와 시간에 따라 이벤트가 발동해야한다. 따라서 시간 맞추는게 정말로 중요하다.
  * 그런데 루비에서의 시간은 항상 UTC 를 기반으로 한다.
  * 따라서 이를 KST 로 바꿔줄 필요가 있다.
  * application.rb 에서 ZONE 을 seoul 로 설정한다.
  * 이걸로 끝나는게 아니라 앞으로 사용하는 Time 관련 메서드에서는 `Time.zone` 으로 `Time` 을 대체해서 사용하자.

### 7. 오늘 학습 내용에 대한 개인적인 총평

* 흠.. 뭔가 계속 쉬운 방향으로만 가려는거 같다. 이러면 안되는데 말이지...

### 8. 다음 학습 계획

* war\_request\_create PR 마무리, guild\_invitation 마무리
