서울에 거주하고 있는 9년차 프론트엔드 개발자입니다.
주로 리액트를 다루며, 반응형 프로그래밍, 테스트 주도 개발, 쉘 스크립트를 활용한 자동화 등에 관심이 있습니다.
☎️ 연락처
🐙 Github: wonism
📧 Email: [email protected]
🐦 Twitter: wo__won
🔗 LinkedIn: wonism
🧑🏻💻 이력
토스증권
서울, 한국 – (Nov 2020 - Present)
- "매매", "입출금", "권리", "계좌 개설", "내 정보 설정" 등의 기능을 처음부터 개발했습니다.
- 소켓 통신으로 데이터가 실시간으로 갱신되도록 했습니다.
- 싱글톤 패턴을 사용하여 웹소켓 클라이언트가 단 한 번만 생성됨을 보장했습니다.
- RxJS를 사용해 소켓 통신으로 주고받는 메시지를 효과적으로 처리했습니다.
- 웹 애플리케이션의 성능 개선을 했습니다.
- 타임 슬라이싱 기법을 통해 작업 소요 시간이 긴 작업을 쪼개 프레임 레이트가 떨어지지 않도록 했습니다.
- React.lazy 를 활용하여 크기가 큰 컴퍼넌트가 메인 쓰레드를 오래 점유하지 않도록 하여 프레임 레이트가 떨어지지 않도록 했습니다.
- 런타임에 실행되지 않아도 될 연산들을 바벨 매크로를 사용하여 빌드 타임에 미리 연산하여 연산 횟수를 최소화했습니다.
- 리액트 돔의 배치 업데이트 함수를 활용하여 여러 상태 업데이트에 따른 리렌더링 횟수를 줄였습니다.
- CSS in JS 로 인해 낮아진 성능을 최적화한 경험, 사용 시 주의할 점 등을 팀에 공유하여 팀원들이 같은 전철을 밟지 않도록 했습니다.
- 데이터의 관리를 위해 Recoil을 사용했습니다.
- 리액트 외부에서 리코일 상태에 접근할 수 있는 팀 라이브러리를 개발했습니다.
- 테스트 코드를 간편하게 작성할 수 있도록 여러가지 헬퍼 유틸리티를 작성했습니다.
- Suspense, Next.js Router, Recoil, React Query 에 종속적인 테스트를 손쉽게 작성할 수 있는 HOC를 만들었습니다.
- 애니메이션 라이브러리인 framer-motion 컴퍼넌트의 렌더 테스트를 손쉽게 할 수 있도록 Proxy를 사용하여 모킹하였습니다. (차트 애니메이션 테스트 등에 사용)
- 민감 정보 입력 등의 행동을 제외한 유저의 모든 동작을 추적하는 자동 로깅 시스템을 개발했습니다.
- 유저의 클릭 요소 정보를 탐색하기 위해 DOM 요소를 재귀적으로 탐색하는 로직을 구현했습니다.
- 행동 문맥 등을 저장할 수 있도록 옵저버블을 사용했습니다.
- 데이터 슬라이싱, 디바운싱, 로깅 재전송 로직을 위해 RxJS를 사용했습니다.
- 국내 주식 사일로와 해외 주식 사일로가 따로 관리하던 매매 퍼널을 단일화했습니다.
- 모든 비지니스 로직의 유닛 테스트를 작성하고, 리팩토링하여 코드의 가독성을 개선했습니다.
- 서버와의 통신 과정에서 고객의 민감 정보가 평문으로 오고가지 않도록 ECDH 암호화/복호화를 적용했습니다.
- 영문 및 한글(자음 검색 포함)을 지원하는 퍼지 문자열 검색 유틸리티를 개발하여 검색 하이라이팅 기능을 개발했습니다.