인프런 커뮤니티 질문&답변

김건희님의 프로필 이미지
김건희

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

제로초님

해결된 질문

작성

·

166

1

안녕하세요

질문1. 

const sockets = {};
sockets[workspace]

이 문법이 헷갈립니다. sokets이라는 객체를 만들었는데 sokets[ ] 이건 무엇을 뜻하나요?

sokets안에 workspace 배열을 넣은것인가요? 이런식으로 ?   { [ ] }

질문2. 

소켓을 콘솔에 찍어보면 네임스페이스 안에 /ws-sleact라고 적혀 있습니다.

그런데 네임스페이스가 이름이 들어오는 경로가 궁금합니다.

hooks 컴포넌트에서 

  if (!sockets[workspace]) {
    sockets[workspace] = io.connect(`${backUrl}/ws-${workspace}`, {
      transports: ['websocket'],
   });

sokectes[workspace] 처럼 소켓객체의 wrokspace로 해줘서 그런것인가요? soket에는 수많은 객체가 있는데 soketes[workspace]로 해주면 알아서 네임스페이스를 인식해서 넣어주는것인가요? 들어오는 흐름이 궁금합니다!

질문 3.

강의에중 제로초님께서 usememo는 개별값들을 캐싱하고 싶을 때 쓴다고 하셨는데 useCallback과 usememo의 차이점이 무엇인지 헷갈립니다. 구글링 해봐도 차이점이 뭔지 명확히 안와 닿더라구요. 어떤 차이점이 있는지 궁금합니다!

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 너무 어렵게 생각하시는 것 같은데요. 객체 안에 속성에 접근하는 기본 문법입니다.

const a = { 'hello': 'world'};
const b = 'hello'
a[b] === 'world';

2. 서버의 socket.ts에서 ws-이름 이면 워크스페이스 이름인걸로 정해두었습니다.

3. useMemo는 값을 캐싱하고, useCallback는 함수를 캐싱합니다.

김건희님의 프로필 이미지
김건희

작성한 질문수

질문하기