profile
모험을 떠나보자
post-thumbnail

FOUC 해결을 위한 `PreventFlash` 컴포넌트: 다크 모드 전환 시 깜빡임 방지

웹 애플리케이션에서 다크 모드와 라이트 모드를 지원하는 것은 현대 사용자 경험(UX)의 필수 요소입니다. 하지만 테마 전환 시 FOUC(Flash of Unstyled Content)라고 불리는 깜빡임이 발생하면 사용자가 불편함을 느낄 수 있습니다. 이를 해결하기 위해

2025년 8월 5일
·
0개의 댓글
·

웹 성능 최적화

이미지 최적화 - LCPhttps://velog.io/@jay_chae/LCP-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B5%9C%EC%A0%81%ED%99%94vhsxm chlwjrghk - FCPhttps://velog.io/@ja

2025년 2월 5일
·
0개의 댓글
·
post-thumbnail

그렇게 쓰면 아무도 안 읽습니다

“가장 우선해야 하는 것은 사용자의 과업의 완성을 위해 적정한 정보를 생산하고 전달하는 일이고, 오직 우리가 집중해야 할 문제는 정보를 어떻게 디자인해서 사용자와 진정한 의미의 대화를 할지이다.”: 이력서 보는 사람의 과업what you say 그다음 how you s

2025년 1월 20일
·
0개의 댓글
·
post-thumbnail

UX 7가지 디자인

“UX 디자인은 사용자가 제품을 구입하기 전부터 구입해서 사용하고 폐기하는 전 과정을 포함하기 때문에 전 회사 차원에서 협력해야 달성할 수 있는 목표다”: 사용하기 전 후 과정 다 고려해야 함. 이력서 열기 전, 후 과정을 고려 → 이력서 보기 직전 화면에 메시지를 넣

2025년 1월 20일
·
0개의 댓글
·

📏단일 책임 원칙으로 렌더링 개선(react next js)

“어떤 문제가 있었나요”splitView 내용만 바뀌는 데 splitView 컨테이너까지 리렌더링 된다.“문제 원인이 무엇인가요”splitView 컨테이너 열고 닫는 로직과 내용 바꾸는 로직이 같은 컴포넌트에 있다. 그래서 내용이 바뀔 때 컨테이너 까지 리렝더링“해결책

2024년 12월 22일
·
0개의 댓글
·

⭕ LCP 이미지 최적화

“어떤 문제가 있었나요”LCP 점수 나쁨“문제 원인이 무엇인가요”이미지가 늦게 뜬다“해결책”next Image에 priorty 속성 true 적용“왜 이런 해결책 사용했나요”priorty 적용하면 이미지를 preload 한다.공식 문서priority가 true로 설정되

2024년 12월 22일
·
0개의 댓글
·

🔠Next font 최적화

“어떤 문제가 있었나요”폰트를 다운로드 하는 데 오래 걸렸다.“문제 원인이 무엇인가요”CDN으로 받아오는 데 시간이 오래 걸린다.“해결책”폰트를 다운로드하고 next/font를 사용한다. “왜 이런 해결책 사용했나요”셀프 호스팅 + next font다른 곳에 요청을 해

2024년 12월 22일
·
0개의 댓글
·

⛏️selector로 렌더링 최적화 (react,next js)

“어떤 문제가 있었나요”버튼을 누르면 누른 버튼 색이 바뀐다.그런데 버튼 하나를 누르면 색이 변하지 않는 모든 버튼이 리렌더링 된다.“문제 원인이 무엇인가요”버튼 컴포넌트가 전역 상태를 가지고 있기 때문에 렌더링 변화가 없어도 전역상태가 바뀌면 리렌더링이 된다.“해결책

2024년 12월 22일
·
0개의 댓글
·
post-thumbnail

지역 상태의 문제점

지역 상태를 컴포넌트 간에 공유하려면 prop drilling과 리렌더링 문제가 생긴다.context:하위 트리마다 특정 값을 공유해야 할 때 사용한다.subscribe: 트리 외부에 store를 두고 그 값을 특정 컴포넌트가 가져다가 쓰는 모델지역 상태(useStat

2024년 11월 19일
·
0개의 댓글
·

NEXT MIDDLEWARE

next js로 프로젝트 할 경우middleWare 활용법로그인 안 했으면 접근 못하는 페이지의 경우 미들웨어 쓰면 좋다예를 들면 마이페이지는 로그인 하지 않으면 로그인 페이지로 리다이렉트 시켜주어야 한다.브라우저에서 리다이렉트 할 경우브라우저 -> 마이 페이지요청

2024년 10월 26일
·
0개의 댓글
·
post-thumbnail

디버깅 툴 활용해 주세요

결론: 복잡해지기 전에 미리 미리 디버깅 툴을 활용해서 개발하자profiler를 통해 불필용한 렌더링 줄이자 회색 좋아요, 노란색 싫어요부모 렌더링 되면 자식 다 렌더링 되니까, state는 최소 컴포넌트로 쪼개자.

2024년 10월 21일
·
0개의 댓글
·

전역 상태 관리 selector

전역 상태에서 필요한 값만 select해서 가져오면 렌더링을 최적화 할 수 있다.예를 들어 전역 상태가 객체 {a:1,b:2}라고 해보자.이때 컴포넌트A가 a만을 사용하고, 컴포넌트B는 b만 사용한다.만일 이 때 B가 b의 값을 바꾸었을 때, 컴포넌트 A는 리렌더링이

2024년 10월 16일
·
0개의 댓글
·

전역 상태 관리

여러 컴포넌트에서 접근 가능해야 한다.상태를 바꾸면 이 상태를 가지고 있는 모든 컴포넌트에서 리렌더링이 일어나야 한다.상태가 객체인 경우, 예를 들어 {a:1,b:2} 경우 a만을 사용하는 컴포넌트는 b가 변경 되었을 때 렌더링이 일어나서는 안 된다.전역 상태 stor

2024년 10월 15일
·
0개의 댓글
·

import { cookies } from 'next/headers'

결론: 쿠키를 다루고 싶은 경우, 프런트 서버에서 돌아가는 코드는 "next/headers"의 cookies 메소드를 사용하면 된다. 그러나 서버 컴포넌트에서 set cookies는 해줄 수는 없다. 클라이언트에서도 "next/headers"의 cookies 메소드를

2024년 10월 13일
·
0개의 댓글
·
post-thumbnail

카카오 소셜 로그인

프런트 개발 들어가기 전에!카카오 소셜 로그인 4단계로 가기 전에 알아야 할 기초 지식들인증인증은 "너는 누구냐?"를 묻는 단계ex) 카카오가 아는 놈인지 모르는 놈인지 확인ex) 로그인인가인가는 “너 어디까지 할 수 있어?” 묻는 단계권한을 확인하는 단계토큰토큰은 일

2024년 10월 11일
·
0개의 댓글
·
post-thumbnail

hydrate

결론: SSR 시 서버 렌더링(트리) 된 것과 클라이언트에서 렌더링(트리) 된 것이 다르면 안 된다.(hydration 오류)이유: paint 과정이 두 번 발생해서 좋지 않다.설명:ReactDom.hydrate서버에서 받은 html을 받는다. -> 화면에 보여준다.

2024년 10월 10일
·
0개의 댓글
·

SSR vs SPA

결론: SPA와 SSR 둘 다 알아야 함이유: SPA와 SSR 의 장단점을 섞어서 개발해야 하기 때문적용: 최초 진입은 SSR로 하고 그 이후는 내려 받은 자바스크립트로 SPA처럼 작동하게 한다.spa: 최초 접근할 때 브라우저가 필요한 자바스크입트를 모두 받는다. 이

2024년 10월 10일
·
0개의 댓글
·
post-thumbnail

화면 크기 전역 상태로 관리

우주윗미 프로젝트 리팩토링 했어요.상황1: 화면 크기가 모바일인지 아닌지에 따라서 조건부 렌더링이 필요.상황2: 화면 크기를 검사하는 useIsMobile 훅을 만듬.상황3: 조건부 렌더링이 필요한 컴포넌트가 여러 곳에 있다.상황4: 여러 곳에서 useIsMobile

2024년 9월 22일
·
0개의 댓글
·

matchMedia

핵심: 미디어 쿼리 조건이 현재 환경과 일치하는지 확인하는 메서드.실천: matchMedia()를 통해 미디어 쿼리를 감지하고, 화면 크기나 디스플레이 조건이 변경될 때마다 해당 이벤트를 처리하고자 할 때 사용vschange는 미디어 쿼리 조건이 변하는 순간에 반응.r

2024년 9월 22일
·
0개의 댓글
·

하위 폴더에서 husky 설정

상황: husky 폴더가 .git 폴더보다 하위에 있는 폴더 구조.문제: husky와 git 파일은 동일 선상에 없으면 돌아가지 않는다.해결: package.json에 script 추가, husky 파일에 코드 추가문제 상황프로젝트 폴더 구조는 위와 같다.backend

2024년 9월 18일
·
0개의 댓글
·