차트는 멈췄는데 윈도우가 움직인다2026.05.26차트는 멈췄는데 윈도우가 움직인다Error CaseTypescriptReact#debugging+1 more categories or tags2026.05.26차트는 멈췄는데 윈도우가 움직인다Error CaseTypescriptReact#debugging+1 more categories or tags상황 어느날 서비스를 살펴보시던 팀장님께서 이런 말씀을 slack에 남기셨다. 진호님, 예측 차트에서 zoom을 계속하면 어느 순간 라인 차트가 아니라 단일 스캐터 차트처럼 보이는 데, 이거 수정하면 좋을 거 같아요. 어느정도 zoom을 하면 그 이후로는 zoom이 안 되도록 할 수 없…
Nullish Coalescing Assignment2025.09.29Nullish Coalescing AssignmentError CaseJavascript2025.09.29Nullish Coalescing AssignmentError CaseJavascript최근 Grunfeld를 사용해본 지인으로부터 다소 기묘한 버그 리포트를 전달받았다. 모달의 기본 동작을 전역적으로 설정할 수 있도록 제공한 GrunfeldProvider의 options 프로퍼티가, 특정 상황에서 기대와 전혀 다른 방식으로 동작한다는 내용이었다. 사용자는 단순히 defa…
Next.js 데이터 캐시와 크롬 개발자 도구2025.06.05Next.js 데이터 캐시와 크롬 개발자 도구Error CaseNext.js#debugging#cache+1 more categories or tags2025.06.05Next.js 데이터 캐시와 크롬 개발자 도구Error CaseNext.js#debugging#cache+1 more categories or tags상황 나는 page router를 좋아하지만, 이번에는 여러 사정이 있어서 app router를 쓰게 되었다. 이왕 쓰게 된 김에 이런 저런 기능을 몽땅 활용할 생각이었다. 가장 기대하던 기능은 데이터 캐싱이었는데, 가능한 많은 걸 캐싱해두면 랜더링 완료 시점을 한참 일찍 앞당길 수 있…
재귀 조건부 타입에서의 추론 컨텍스트 손실2025.04.06재귀 조건부 타입에서의 추론 컨텍스트 손실Error CaseTypescript#recursive2025.04.06재귀 조건부 타입에서의 추론 컨텍스트 손실Error CaseTypescript#recursive타입스크립트에서는 조건부 타입의 분배 과정에서도 타입 추론 컨텍스트가 유지된다. 이 특성 덕분에 단순한 분기 수준을 넘어, 상당히 복잡한 조건부 타입에서도 개발자가 의도한 방향으로 타입 추론을 유도할 수 있다. 실제로 이러한 특성은 고급 유틸리티 타입을 설계할 때 매우 강력한 도구로 작…
미들웨어 조합 구조에서의 unique symbol 활용기2025.01.22미들웨어 조합 구조에서의 unique symbol 활용기Error CaseJavascriptTypescript2025.01.22미들웨어 조합 구조에서의 unique symbol 활용기Error CaseJavascriptTypescript요즘 다른 전역 상태 라이브러리 대신 caro-kann 3 버전을 적극적으로 사용하고 있다. 여러 기능을 미들웨어 단위로 분리할 수 있어 번들 크기를 700B대까지 줄일 수 있었고, zustand, useReducer, useState 스타일을 상황에 따라 선택할 수 있다는 점도 다른…
this2024.12.13thisError CaseJavascript#decorator#metaprogramming2024.12.13thisError CaseJavascript#decorator#metaprogramming내가 혼자 개발하고 있는 onef에 댓글 기능을 추가하기로 했다. 댓글 작성 기능을 구현한 뒤 수정 기능이 필요하다는 사실을 깨달았을 때, 처음 든 생각은 “로직은 거의 같고 메서드만 바꾸면 되겠네”였다. 실제로 댓글 작성과 수정은 HTTP 메서드만 post와 put으로 다를 뿐, 요청…
라이브러리를 죽여버릴 수야 없겠지만2024.12.07라이브러리를 죽여버릴 수야 없겠지만Error CaseNest.js#jest#configmodule+1 more categories or tags2024.12.07라이브러리를 죽여버릴 수야 없겠지만Error CaseNest.js#jest#configmodule+1 more categories or tags상황 Nest.js 서버에서 jest를 사용한 테스트 코드를 작성하고 있었다. 평소에는 아래와 같이 ConfigService를 모의하여 configService.get으로 환경 변수를 처리했다. 그런데 이런 방식이 마음에 들지 않았다. 가장 큰 이유는 필요한 문자열이 하드코딩 되어있어…
에러도 테크닉이 될 수 있다2024.09.05에러도 테크닉이 될 수 있다Error CaseTypescriptReact#debugging+1 more categories or tags2024.09.05에러도 테크닉이 될 수 있다Error CaseTypescriptReact#debugging+1 more categories or tags상황 Button과 Link 및 여러 컴포넌트를 인자로 받아서 통일된 스타일을 처리해주는 Clickable 컴포넌트를 만들고 난 직후의 일이다. 로그인 페이지에서 Clickable 컴포넌트가 문제 없이 동작하는 걸 확인한 뒤 코드를 커밋했고, github action이 동작하며 라이브…
오직 크롬에서만 발생하는 요청 문제2024.07.13오직 크롬에서만 발생하는 요청 문제Error Case#elb#networking#aws+1 more categories or tags2024.07.13오직 크롬에서만 발생하는 요청 문제Error Case#elb#networking#aws+1 more categories or tags이번 에러 케이스에는 서술 트릭이 존재한다. 상황 나는 onef라는 이름의 풀스택 프로젝트를 혼자서 진행하고 있다. AWS로 배포하는 데 익숙해져서, 이번에도 AWS를 통해 서비스를 배포하려고 했다. 늘 그렇듯 VPC를 하나 만들고 거기에 두 개의 서브넷을 만들었다. 퍼블릭 서브넷에는…
React Query와 AXIOS2024.02.03React Query와 AXIOSError CaseNext.js#serialization#react-query+1 more categories or tags2024.02.03React Query와 AXIOSError CaseNext.js#serialization#react-query+1 more categories or tags상황 서버 상태관리를 React Query로 관리하기 시작하면서 기존에 fetch로 만들었던 리퀘스트 함수들을 AXIOS로 싹 갈아 엎기로 했다. AXIOS 자체가 러닝 커브가 낮은 편이라 갈아 엎는 작업 자체는 금방 끝났다. 그런데 npm run dev를 때리자 getServerSid…
tailwind config와 남의 코드 갖다 쓰기2024.02.03tailwind config와 남의 코드 갖다 쓰기Error CaseCSSReact#debugging+1 more categories or tags2024.02.03tailwind config와 남의 코드 갖다 쓰기Error CaseCSSReact#debugging+1 more categories or tags상황 진행중인 프로젝트에서 기존에 사용하던 module css가 아닌 tailwind를 사용하기로 결정되었다. 작업 빨리 쳐내야 할 때 클래스 검색하는 거로 시간을 쓰는 게 싫어서 공식문서도 읽고 카카오FE의 사용 후기도 읽어보면서 이것저것 테스트해보는 시간을 가지고 있었다. tailw…