(파란별) Index

(파란별) Date

의 회의록 마스터 : 고주형

(파란별) Participants

TEAM FIRE (고주형 윤영기 이하령) + WonYong Jeong

(파란별) Discussion topics

아침 회의

하령님

영기님

  • 목소리가 안 나와영 ㅠ

  • 밥 못 드셔서 죽 시킴

  • 몸 조심하세용

→ 푹 쉬세영!! https://swm-fire.atlassian.net/jira/software/projects/FIRE/boards/1?selectedIssue=FIRE-351

주형

  • CD 마무리 작업

  • video socket 개조 ㅎ

    • uid보내도록 수정

  • timer를 위한 DB 테이블 만들기

+ 어제 CD하다가 힘들었습니다 ㅎㅎ

여기를 클릭하여 펼치기...

CD

과정 (CodePipeline으로 관리)

  1. GitHub Authenticate (성공)
    (커밋 푸쉬될 때마다 트리거)

  2. 해당 Git 저장소 S3에 업로드 (성공)

  3. Code Build (실패!)
    yarn ci && yarn build

  4. Elastic Beanstalk을 통해 배포

진행상황

깃헙이랑 S3랑 연동 완료

Code Build에서 실패

  • Code Build에서 S3로 부터 다운로드를 하지 못함.

  • (추측) VPC 문제이거나 Security Group 문제로 S3의 오브젝트를 가졍오지 못함

이어서 하다가 3시간 넘게 안 되면 문서화하고 멈출 것임.


계획 정리

  • 369팀과의 기술별 소모임 (금요일) 불참 - (연락 완료)

  • 엑스퍼트님께 오후 6시로 시간 확정 ← 이하령

  • (월요일 시작) 스크럼마스터 윤영기고주형으로

  • 주형 - 개인 일정으로 금요일(내일) 일찍 퇴근


정원용 멘토님 멘토링

주형 고민: 소켓 통신은 어떻게 협업 하나요?

3가지를 명세화 하면 된다

그리고 명세 문서로 교류한다  + 이후 지속적으로 업데이트하면 됨

1. 송수신 주체

-서버

-클라

2. 이벤트 명

  • HTTP에서는 url 기준이듯 소켓(socket.io)은 이벤트 기준이므로

3. 페이로드

  • 대부분 JSON

    • 이것을 통한 통신의 내용이 규격

REST와 비슷하다

method path body


HTTP 강의

HTTP 헤더를 설정해보자

  • CORS 해결

HTTP의 상태코드

  • 상태코드만 봐도 어디서 문제가 생겼는지 파악이 된다

  • 200

  • 300

  • 400

  • 500

Cache

  • Last-Modified

  • If-Modified-Since

Chunk로 보내기

  • Content-Length가 없다

  • 서버도 얼마나 보내줄지 몰라

  • {바이트 수}\n{바이트열}

주형 고민: Redis공부 및 Redis 구축 방법

pub 자체를 레디스에게 위임

매개 릴레이 역할 

LB의 Stikyness

연결 지향 실시간 통신은 Sticky 의미 없어

해결법: Session Clustering

Scale-out해도 무방해야 돼

  • 클라가 여러대의 서버에 접속

서버들끼리 여러 유저가 어딨는지 알아야돼

  • Pub Sub에 윔임

  • 레디스를 통해 세션 관리

레디스가 중간에 있다.

Aggregation

노드가 상태를 가지면?

  • 메모리 공유가 안돼서 자원을 모두 어그리게이션

Aggreation이 되어야 해

  • 프로세스간

    • 메모리가 공유되지 않으므로 

  • 여러 서버간


Redis로 분산시키는 방법 2가지

redis 2가지 방법으로 실시간 유저를 분산

1. 클러스터링

2. 샤딩

  • 2군데의 서버가 다 액티브

  • Rule-based

    • 특정 규칙으로 나누기

    • ex. 홀짝

  • Hasing

    • 생일 끝짜리가 2

한 서버에 굉장히 많은 사람 붙을 것이다.

적어도 노드가 여러 프로세스간 클러스터링이 되야 할 것이다.


공부법 추천

책보면서 계속 실습

  • 최신버전 레퍼런스 책과 더불어 공부

  • nosql중에서 러닝커브가 낮음

  • 운영도 러닝 커브 낮음

공식 문서

  • 사이트에 함수마다 섹션이 나누어짐

  • 그 명세를 보자

Redis를 사용할 때 막연한 점 2가지

1. 키를 만드는 규칙

  • 네임스페이스가 있어야 될 것 아니야?

 네임스페이스는 하이픈을 쓰자 / .

  • 프리픽스

  • 서브픽스

2. 운영에 필요한 스케일 아웃

위에서 언급함


정리

pub/sub만 필요

node입장에서는 매개 함.

노드의 역할과 레디스의 역할이 정의되지 않음

노드클러스간의 동기화 구성

하나의 레디스에 모든 노드 서버가 붙는다


스토리

애매한 부분이 있었다.

입장했을 때 어느 화면이 보여야되는지

입장이라는 것은 범위는 무엇인지

ex) [dev] 로비에서 공유화면에 입장한다. + 입장해서 어느 화면이 보이는지까지 적어주자

→ 좀 더 분명히 할 필요가 있다!

회고 때 생각할 것

  • 각 스토리에 대한 범위가 애매하다

  • 어느 범위까지가 다루는 것인가?

지금은 추가할 때가 아니라 기존의 스토리를 처낼 때

돌아오는 스토리는 기존 스토리 중 완료하지 못한 것 + 이미 만들어 둔 것으로 진행하자


코로나

코로나에 걸리면 컨디션이 들쑥날쑥하다

  • 회복되다가도 나빠져서 예측하기 어렵다

영기님 푹 쉬자!


Pattern 공부

  • 책이 쉬워야 돼

  • 가장 쉬운 책

  • 자바 언어를 TS로 전환해서 세미나 방식으로 하자

    • 전환하기 쉽다

  • (가능하면) 다음주에 ch1 멘토님이 세미나 진행

    • 이후 돌아가면서 진행