본문 바로가기
반응형

개발/React173

리액트 - debounce vs throttle로 최적화하기 with useMemo (lodash-es) 리액트 전체 링크 참고 - https://www.npmjs.com/package/lodash-es - React.memo, useMemo, useCallback으로 최적화하기 - Socket.IO로 Toast UI Editor 동시 편집하기 debounce와 throttle은 성능 최적화를 할 때 사용된다. debounce는 연속된 이벤트를 하나로 묶어 처리할 수 있다. (딜레이 적용) throttle은 일정 시간 간격으로 이벤트를 호출되도록 제한한다. (주기적 호출) debounce 예를 들어 input에서 타이핑을 할 때, 타이핑을 멈춘 후, 검색 요청을 보내고 싶다고 가정하자. 이런 경우 debounce를 이용할 수 있다. 예시 코드는 다음과 같다. import React, { useMemo, us.. 2024. 4. 6.
리액트, Node JS - Socket.IO로 Toast UI Editor 동시 편집하기 리액트 전체 링크 Node JS 전체 링크 참고 - Toast UI 에디터로 깃허브 마크다운 저장하기 - Socket.IO로 로그인 유저 관리하기 - debounce vs throttle로 최적화하기 with useMemo (lodash-es) socket.io를 이용해서 구글 docs 공동 작업처럼 리액트에서 문서를 동시에 편집해 보자. 구현 소켓 서버는 매우 간단하다. 클라이언트는 전체 Editor의 내용을 보내기 때문에 현재 data를 currentData 저장하도록 하였다. 그리고 broadcast로 다른 클라이언트에게 에디터에 있는 내용을 전송한다. const { Server } = require("socket.io"); let currentData = undefined; const io = n.. 2024. 4. 6.
리액트, Node JS - Socket.IO Middleware로 중복 로그인 방지하기 (Limiting Connections using Socket.IO Middleware) 리액트 전체 링크 Node JS 전체 링크 참고 - https://socket.io/docs/v4/middlewares/ - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 이전 글에서 중복 로그인을 제한했던 내용을 Socket.IO의 Middleware로 구현해 보자. Middleware socket.io의 미들웨어는 use()를 이용해서 구현할 수 있다. use.. 2024. 4. 5.
리액트, Node JS - Socket.IO로 중복 로그인 제한하기 (Limiting Connections with the Same ID) 리액트 전체 링크 Node JS 전체 링크 참고 - https://socket.io/how-to/get-the-ip-address-of-the-client - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 중복된 아이디로 로그인을 한 경우, 자동으로 로그아웃 해보자. 구현 namespace 대신 room을 이용한 코드로 돌아간다. 로그인 유저의 ID와 클라이언트의.. 2024. 4. 3.
리액트, Node JS - Socket.IO namespace로 채팅방 관리하기 (Managing Chat Room using namespace) 리액트 전체 링크 Node JS 전체 링크 참고 - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 room 대신 namespace를 이용해서 채팅방을 구현해 보자. namespace Socket.IO는 namespace를 이용해서 소켓 그룹을 만들어 분리된 통신 채널을 사용할 수 있다. express의 라우터와 비슷한 개념이다. 예를 들어 아래와 같이 room0에.. 2024. 4. 1.
리액트, Node JS - Socket.IO Room으로 채팅방 관리하기 (Managing Chat Room) 리액트 전체 링크 Node JS 전체 링크 참고 - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 Socket.IO의 room 기능을 이용해서, 선택한 채팅방에서만 메시지가 전달되도록 구현해 보자. 위의 구현은 선택한 채팅방에 대해서만 메시지를 받는다. 구현 Socket 서버에는 enter와 leave 이벤트를 등록한다. join 메서드로 해당 socket에 방 .. 2024. 4. 1.
리액트, Node JS - Socket.IO로 채팅하기 (Chatting with Socket.IO) 리액트 전체 링크 Node JS 전체 링크 참고 - Socket.IO로 로그인 유저 관리하기 - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 Socket.IO를 이용해서 실시간 채팅을 구현해 보자. 구현 이전 글에서 구현한 채팅방은 bloodstrawberry와 Patrik (id 0, 1)이 있다. 편의상 존재하는 방은 빈방이고, 로그인 한 사용자는 id 0인.. 2024. 3. 31.
리액트 - 채팅방 들어오고 나갈 때 표시하기 (Message Separator) 리액트 전체 링크 참고 - https://chatscope.io/storybook/react/?path=/docs/components-messageseparator--docs - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 채팅방을 들어오거나 나갈 때, separator를 이용해 표시해 보자. MessageSeparator 추가하기 먼저 MessageList에 .. 2024. 3. 31.
리액트 - 채팅방 변경하기 (Change Chat Room) 리액트 전체 링크 참고 - https://chatscope.io/storybook/react/?path=/docs/components-maincontainer--docs - chat-ui-kit-react로 채팅창 UI 만들기 - 로그인 + 채팅방 UI 만들기 - 채팅방 변경하기 - 채팅방 들어오고 나갈 때 표시하기 - Socket.IO로 채팅하기 - Socket.IO Room으로 채팅방 관리하기 - Socket.IO namespace로 채팅방 관리하기 - Socket.IO로 중복 로그인 제한하기 - Socket.IO Middleware로 중복 로그인 방지하기 채팅방 UI를 만들었으니, 채팅방을 변경하는 기능을 추가해 보자. 컴포넌트와 데이터 분리하기 메시지 컴포넌트에서 데이터를 분리한 것처럼, Conv.. 2024. 3. 29.
반응형