20210306(토)

2021-03-06

1. 학습 날짜

  • 2021-03-06

2. 학습 시간

  • 10:00 ~ 13:00

3. 학습 범위 및 주제

  • 백본 view, model, collection

  • 루비온레일즈

4. 학습 목표

  • 앞으로 정리할 것들에 대한 생각

5. 학습 정리

6. 상세 학습 내용

  • 레일즈에 대해 조금 생각을 해봤다. 이번 과제를 진행하면서 백엔드를 레일즈를 이용했는데, 아직도 레일즈에 대한 이해가 부족해보인다.

  • 서비스에서 실시간 채팅, appearance 뷰 등을 구현하기 위해서 액션 케이블이라는 기술을 이용했다.

    • 액션케이블은 웹소켓이라는 프로토콜을 레일즈에서 사용할 수 있게 만들어준 도구다.

    • 웹소켓의 등장 이전에는 http 만을 이용했었는데 이 http 통신은 단방향 통신 프로토콜이다. 단방향이라는 말이 조금은 어색하지만 쉽게 풀어 말하자면 클라이언트는 오직 받는 역할만하고 먼저 서버에 무언가를 할 수 없다는 것.

    • 이 웹소켓의 등장으로 클라이언트가 브라우저단에서 먼저 서버에 무언가 데이터를 보낼 수 있게 된 것이다.

    • 액션케이블을 이용하면 레일즈에서 이 웹소켓을 이용할 수 있다.

    • 하지만 프론트와 백엔드간의 통신을 컨트롤하는것은 조금은 어렵다.

    • 무엇보다 코드 자체가 너무 어렵고 헷갈리는 부분이 너무 많다.

    • 프로젝트를 끝내기 전에 이 액션케이블에 대한 확실한 정리를 해야겠다 생각함.

  • 액티브 스토리지

    • 액티브 스토리지란 클라우드 서버에 파일을 올리고 관리하는데 도움을 주는 도구다.

    • 물론 클라우드 서버에 올리지 않고 내 로컬에 올릴 수도 있다.

    • 액티브 스토리지를 사용하는 법은 그렇게 어렵지는 않다.

    • 프론트에서 이미지를 form-data 형식으로 전송해주면 백엔드에서는 이를 storage 에 저장한다.

    • 그리고 프론트로 이미지를 전송해야할 때는 이제 이미지 그 자체를 전송해주는게 아니라 이미지의 url을 주는것이다.

    • 이미지의 url 을 프론트에 준다고? 그렇다. 왜냐하면 우리의 이미지는 서버에 업로딩할 때 클라우드 서버에 올라간 것이므로 자신을 가리키는 고유한 주소인 url 을 갖고 있으므로 서버는 이제 프론트한테 이미지를 전송해줄 필요가 없고 그저 url 만 주면 브라우저가 알아서 클라우드 서버에서 이미지를 가져다 쓸 수 있게 되는 것.

  • 액티브 잡

    • 액티브 잡이란 특정 일(job) 을 선언하고 이 job 들을 백엔드에서 큐로써 관리하고 다루는 프레임워크다.

    • 이 job 의 종류는 무엇이든 될 수 있다. 일정 시간마다 돌아가야 하는 작업, 특정 요청이 들어오면 이메일 같은걸 보내주는 역할 등...

    • 엑티브 잡은 무엇이든간에 작게 쪼개질 수 있는 것이라면 작게 쪼개서 병렬로 사용할 수 있다.

    • 즉 액티브 잡을 이용하면 서비스의 특정 시간, 특정 조건에 발생하게 할 수 있는 이벤트를 만들수있다는 것이다.

    • 예를 들면, 특정 시간에 시작되는 토너먼트 그리고 토너먼트는 일정 시간마다 업데이트가 되어야하는데 이를 일일이 직접해줄수는 없는 노릇이다. 따라서 액티브 잡을 이용해서 자동으로 돌아가게 만드는 것.

    • 액티브 잡은 액티브 잡만을 이용해서는 사용할 수 없다. 서드파티 앱들을 함께 사용해야만 하는데 이중 가장 유명한건 사이드킥이다.

    • 아직 다룰줄모른다....

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

  • 오늘은 공부를 거의 하지 않았다.. 어정쩡하게 이거 알아보고 저거 알아보고 그랬던거같다.

  • 과제의 거의 마지막에 왔다. 뭔가 마음이 편하지는 않다. 마무리 깔끔하게 하자.

8. 다음 학습 계획

  • war_request_create PR 마무리, guild_invitation 마무리

Last updated