Builder.shin
전체
1263개의 게시물
Elasticsearch
Elasticsearch 동적 매핑 때문에 발생한 타입 충돌 해결
로그 수집 시스템에서 같은 필드명에 다른 타입의 데이터가 들어오면서 인덱싱 에러가 발생했다. Elasticsearch의 동적 매핑 정책을 이해하고 명시적 매핑으로 전환한 과정을 정리했다.
2020년 1월 4일
Node.js
Node.js 이벤트 루프와 setTimeout 0ms의 실행 순서
Promise와 setTimeout을 섞어 쓰다가 실행 순서가 예상과 달라 당황했다. Node.js 이벤트 루프의 페이즈별 동작 방식을 정리하고, microtask queue와 macrotask의 차이를 이해하게 되었다.
2020년 1월 2일
Python
Python 비동기 처리 실전 적용기 - asyncio와 aiohttp
레거시 배치 작업을 비동기로 전환하면서 겪은 시행착오를 정리했다. asyncio와 aiohttp를 도입해 외부 API 호출 속도를 4배 개선한 과정을 기록한다.
2019년 12월 31일
React
React Hooks로 복잡한 폼 상태 관리 리팩토링
레거시 클래스 컴포넌트로 작성된 다단계 폼을 Hooks로 전환했다. useReducer와 custom hook을 조합해 상태 로직을 분리하니 테스트와 유지보수가 훨씬 수월해졌다.
2019년 12월 30일
React
React Hooks 도입 후 Custom Hook으로 API 호출 로직 정리하기
프로젝트에 React Hooks를 본격 도입하면서 반복되는 API 호출 로직을 Custom Hook으로 추상화했다. useFetch 훅을 만들어 로딩, 에러, 데이터 상태를 일관되게 관리할 수 있게 되었다.
2019년 12월 24일
TypeScript
React 프로젝트에 TypeScript 점진적으로 도입하기
레거시 React 프로젝트에 TypeScript를 한 번에 적용하기엔 리스크가 컸다. allowJs 옵션을 활용해 점진적으로 마이그레이션한 과정을 정리했다.
2019년 12월 21일
React
React Hooks로 Form 상태 관리 리팩토링
기존 클래스 컴포넌트로 작성된 복잡한 Form을 Hooks로 전환했다. useState와 useEffect를 활용해 코드량을 30% 줄이고 가독성을 개선한 과정을 정리했다.
2019년 12월 16일
gRPC
gRPC 스트리밍으로 대용량 로그 전송 구조 개선
REST API로 처리하던 대용량 로그 전송을 gRPC 서버 스트리밍으로 전환했다. 메모리 사용량이 70% 감소하고 타임아웃 문제가 해결됐다.
2019년 12월 13일
gRPC
gRPC에서 Deadline 설정으로 타임아웃 제어하기
MSA 환경에서 gRPC 통신 시 타임아웃 처리가 제대로 되지 않아 장애가 전파되는 문제가 있었다. Deadline을 설정해 연쇄 장애를 방지한 경험을 정리했다.
2019년 12월 10일
Flutter
Flutter 앱에서 SQLite 마이그레이션 처리하기
모바일 앱 버전업 과정에서 SQLite 스키마 변경이 필요했다. sqflite 패키지를 사용한 마이그레이션 전략과 실제 구현 방법을 정리했다.
2019년 12월 8일
Previous
1
More pages
82
83
84
85
86
More pages
127
Next
카테고리
Builder.shin