FrontEnd

FrontEnd

Light House를 통한 웹 성능 최적화 진행 해보기

최근 사이드 프로젝트의 담당 기능을 다 구현하여 Light House의 지표를 통한 성능 최적화를 진행해 보았습니다. Light House의 점수 기준은 아래와 같습니다. 0~49(빨간색): 나쁨 50~89(주황색): 개선 필요 90~100(녹색): 양호 Light House의 공식문서에는 좋은 사용자 경험을 위해 90점 이상을 유지하도록 노력해야 한다고 말하고 있습니다. Light House 측정은 정확한 측정을 위하여 yarn build -> yarn start를 진행하여 production 환경에서 진행하였습니다. 최적화 전 측정 점수 Performance 최적화 Performance를 측정하는 항목은 5가지로 정의됩니다. 초록색은 빠름, 노란색은 중간, 빨간색은 느림을 의미합니다. First ..

FrontEnd

Next.js 프로젝트 폴더구조 개선

폴더구조 처음엔 너무 집착하지 마세요! 다들 프로젝트 진행 전에 폴더구조를 어떻게 하면 이쁘게 만들 수 있을까? 한 번쯤은 고민해 보셨을 겁니다. 하지만 이건 정답이 없는 문제입니다. 리액트의 공식문서에서도 너무 깊이 생각하지 말고 5분 이상 시간을 투자하지 말라고 권고하고 있습니다. 그만큼 폴더구조란 언제든 변경될 수 있는 것이고 프로젝트가 커짐에 따라 어느 파일은 어느 폴더로 가야 할지 리팩토링 할 순간이 알아서 오기 때문입니다. 제가 최근 진행했던 사이드 프로젝트의 기존 폴더구조입니다. 현재 리팩토링을 진행하고 있으며 팀원들과 소통하여 최근 폴더구조를 변경하였습니다. 해당 프로젝트 폴더 구조의 간략한 설명은 아래와 같습니다. app : 페이지 라우팅 components pages : 특정 페이지에서..

FrontEnd

React Query 의 useQuery 훅 공통 에러처리

useQuery 에서 더이상 onError 콜백을 사용할 수 없습니다. React Query 에서 자주 쓰였었던 onError,onSettled,onSuccess 세개의 콜백이 더이상 사용할수 없게되었습니다. 그래서 저같은경우 API를 정의한 파일에서 에러발생시 토스트 알림을 띄우도록 설정을 해주었습니다. export async function getChatHistory( roomId: string, targetId: number, ): Promise { try{ let url = `/endpoint/api/chatroom/${roomId}/message?size=20`; if (targetId !== 0) { url += `&targetId=${targetId}`; } const response = a..

FrontEnd

리액트 Stompjs,Sockjs 실시간 채팅 구현 - (2)

https://taejinii.tistory.com/73 리액트 Stompjs,Sockjs 실시간 채팅 구현 - (1) 진행 중인 사이드 프로젝트에서 실시간 채팅 도메인을 전적으로 맡았는데 실시간 채팅, 채팅 이미지 업로드를 어떻게 구현했는지 공유를 해보려 합니다. 일단 웹소켓을 구현하려면 백엔드와 소 taejinii.tistory.com 지난 글인 웹소켓 연결에 이어서 이번 포스트에서는 이전에 채팅했던 기록을 역순 무한스크롤로 불러오는 기능에 대해 포스트 해보겠습니다. 해당 기능구현에 있어 필요한 라이브러리는 React-query 하나만 있으면 충분합니다. yarn add @tanstack/react-query 1. 이전 채팅 기록 역순으로 바꿔주기 import { useInfiniteQuery } f..

avalanche-
'FrontEnd' 카테고리의 글 목록