> For the complete documentation index, see [llms.txt](https://simian114.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://simian114.gitbook.io/blog/undefined-1/diary/2021/january/20210127.md).

# 20210127(수)

## 2021-01-27

### 1. 학습 날짜

* 2020-01-27

### 2. 학습 시간

* 13:30 \~ 24:30

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

* 트렌센던스 API 설계
* postman으로 설계한 api에 맞춰 세팅해두기
* DB 설계

### 4. 학습 목표

* 설계해놓은 API를 기반으로 테스트에 사용할 postman collection 을 작성한다.
* 설계해놓은 API, VIEW 를 기반으로 DB 를 설계한다.

### 5. 학습 정리

* x

### 6. 상세 학습 내용

* postman
  * postman 을 이용해서 동사와 목적어. 즉 http method 와 url 을 명시해서 서버에 보낼 수 있는건 한참전부터 알았다.
  * 하지만 이전까지는 일회용으로서만 했다면, 작성해놓은 request를 반복적으로 사용할 수 있게하기위해 `collcetion` 이라는 묶음으로 묶어서 만들어 저장했다.
  * 이제는 만들어놓은 리스트를 단순히 눌러서 실행하면 된다.
  * 다만 아직까지는 자동화를 시키지 못했다. 조금 더 알아보자
* DB
  * 오늘까지 설계한 api 와 view를 기반으로 DB를 설계했다.
  * 솔직히 DB 설계할 때는 많은 부분 팀원들이 했고 나는 거의 한게 없다...
  * 특히 헷갈리는건 중간테이블의 개념 공부해두자
  * 그리고 DB설계 협업 툴 사용법도 익혔다.&#x20;
* Channel 설계
  * 채널은 많이 만들지 않기로 했다.
  * 정말 뷰의 모든 부분을 실시간 변화가 가능하게 만들수는 있지만 이렇게 될 경우, 유저에게 혼란만 가중시킬거 같다는 판단하에 정말로 필요한 몇 가지 채널만 사용하기로 했다.
* 라우팅 설정
  * namespace의 활용
    * 우리는 api를 사용할 때 `/api/users/login` 와 같이 사용한다. 즉 항상 `api` 가 앞에 붙는다. 이럴 경우 `namespace` 를 사용하면 간편하게 할 수 있다.
    * 라우트 파일에는 `namespace` 를 사용한다고 선언하고 컨트롤러를 생성할 때는 `rails g controller Api::Users` 와 같이 만들면 된다.
* `Can't verify CSRF token authenticity.` 에러
  * 이 에러는 포스트맨으로 `post` 요청을 보냈을 때 발생했다.
  * 발생한 이유는 뭐 보안 뭐시기이긴 한데, 일단 간단한 해결법은 `application_controller.rb` 에 `protect_from_forgery with: :null_session` 을 입력하는 것
* `member` 와 `collection` 의 활용법
  * 라우팅을 2단으로 할 때 사용하면 된다.
  * `member`와 `collection`의 차이점은 그냥 직접 해보면 바로 안다.

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

* 힘들어 죽겠다.. 아직 학습이 너무 부족하다. 아니면 내가 멍청한건가?

### 8. 다음 학습 계획

* 라우팅, 채널 설정
