Builder.shin
전체
1263개의 게시물
Python
Python 비동기 처리 도입기: asyncio와 aiohttp로 API 호출 성능 개선
레거시 배치 작업에서 외부 API 호출이 병목이 되는 문제를 발견했다. requests 라이브러리의 동기 처리를 asyncio와 aiohttp로 전환하여 처리 시간을 1/5로 단축한 과정을 기록한다.
2019년 11월 12일
React
React Hooks를 실전 프로젝트에 도입하며 겪은 시행착오
6개월 전 출시된 Hooks를 팀 프로젝트에 본격 도입했다. Class 컴포넌트 마이그레이션 과정에서 만난 예상치 못한 문제들과 해결 방법을 정리한다.
2019년 11월 9일
React Native
React Native 0.61에서 Hermes 엔진 적용 후기
Android 앱의 초기 구동 속도 개선을 위해 Hermes 엔진을 적용했다. 번들 사이즈와 메모리 사용량이 크게 개선되었지만 몇 가지 주의할 점이 있었다.
2019년 11월 6일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
10GB 이상의 CSV 파일을 처리하다가 메모리 부족 오류에 직면했다. fs.readFile 대신 스트림을 활용해 메모리 사용량을 1/20로 줄이고 처리 시간도 단축시킨 과정을 정리했다.
2019년 11월 3일
TypeScript
TypeScript 타입 가드로 API 응답 안전하게 다루기
외부 API 응답을 타입 안전하게 처리하기 위해 타입 가드를 도입했다. Runtime에서 타입을 검증하면서 TypeScript의 타입 추론도 활용할 수 있었다.
2019년 11월 2일
gRPC
gRPC 프로젝트에 Reflection API 적용하기
마이크로서비스 간 통신을 gRPC로 전환하면서 겪은 디버깅 불편함을 해결하기 위해 gRPC Reflection을 도입했다. 별도 proto 파일 없이도 서비스 스펙을 확인하고 테스트할 수 있게 되었다.
2019년 10월 31일
React
React Hooks 도입 후 Custom Hook으로 폼 로직 분리하기
회원가입 폼의 반복되는 상태 관리 로직을 Custom Hook으로 추출했다. useState와 useEffect를 조합해 재사용 가능한 useForm 훅을 만들고, 여러 폼 컴포넌트에 적용한 과정을 기록한다.
2019년 10월 29일
React Native
React Native에서 Android 키보드 이슈 해결
Android에서 키보드가 TextInput을 가리는 문제를 겪었다. KeyboardAvoidingView와 android:windowSoftInputMode 설정으로 해결했다.
2019년 10월 27일
TypeScript
TypeScript 3.7 Optional Chaining 도입 후기
TypeScript 3.7에 추가된 Optional Chaining(?.)과 Nullish Coalescing(??)을 프로젝트에 적용했다. 중첩된 객체 접근 코드가 상당히 간결해졌고, 타입 안정성도 개선됐다.
2019년 10월 22일
Node.js
Node.js 멀티 프로세스로 CPU 집약 작업 처리하기
단일 스레드인 Node.js에서 이미지 리사이징 작업이 서버 전체를 블로킹하는 문제가 발생했다. Cluster 모듈과 Worker Threads를 조합해 CPU 집약 작업을 분리 처리하도록 개선했다.
2019년 10월 19일
Previous
1
More pages
84
85
86
87
88
More pages
127
Next
카테고리
Builder.shin