미리보기
기본 정보
GitHub | https://github.com/eamon3481 Blog | https://velog.io/@eamon3481
자기소개
동료들과 함께, 조금 더 효율적으로 일하기 위해 노력합니다.
다른 동료들과 협업하기 좋은 코드 고민하고, 유지보수가 쉬운 코드를 설계하는 것을 지향합니다.
문제를 해결하기 위해 다른 사람들과 소통하여 해결책을 함께 만들어가는 과정
을 좋아합니다.
동료들과 함께, 꾸준한 성장을 지향합니다.
동료들의 다양한 피드백을 수용하고 빠르게 Try 와 Action 으로 이어집니다.
코드리뷰로 각자의 의견을 나누고 충돌하면서 좋은 코드에 대한 새로운 인사이트를 얻는 것을 좋아합니다.
동료들과 꾸준한 스터디를 진행하면서 같이 성장하는 방법
을 익히고 있습니다.
Skills 역량
React, React Native
- React 의 rendering flow를 이해하고, 렌더링 되는 컴포넌트들을 Memoization 하여 불필요한 렌더링을 줄입니다.
- 협업하는 동료들의 DX를 개선하기 위해 프로젝트에 맞는 util 과 component 를 설계, 구현합니다.
- React Native 에서 앱의 과부화를 막기위해 FlatList 등의 React Native 컴포넌트를 적극적으로 사용하여 렌더링 최적화를 합니다.
Webpack , Vite
- 자바스크립트 번들러를 이용하여 프로젝트에 맞는 FE환경을 세팅할 수 있습니다.
Recoil, Redux, React-Query
- 각 라이브러리들의 컨셉을 잘 파악하고, 전역으로 관리되는 데이터들을 어떻게 관리를 할 것 인지 등의 관점으로 어떤 라이브러리를 선택하여 프로젝트에 사용할 것인지 고민합니다.
TypeScript
- 성격에 따른 type네이밍과 컨벤션을 협의하고 지킵니다.
- 제네릭이나 유틸리티 타입들을 이용하여 더 확장성있는 타입을 만들어 낼 수 있습니다.
- 타입 단언 사용을 자제하고 효율적으로 협업하기 위해 안정적인 타입을 사용합니다.
경력
화이트큐브
프론트엔드 | 개발부서
2022.06. ~ 2022.10. (5개월)
Chlngers Design System
- UI 라이브러리를 사용하고 있던 컴포넌트들을 직접 구현하여 dependency 제거하여 유지보수가 편리하도록 구현하였습니다.
- reanimatedV2를 이용하여 애니메이션을 적용하였습니다. 구체적으로는, 드래그 가능한 Flatlist와 애니메이션 효과가 적용된 Progress Bar, Progress Circle 등을 구현하였습니다.
LocalNotification Manager
- LocalNotification Manager 기능을 추가하여, 챌린지 인증을 유도하는 Local Notification을 등록, 해제, 스케줄링할 수 있는 인터페이스를 설계 및 구현하였습니다.
- 또한, 동료들이 쉽게 사용하고 유지보수할 수 있도록, 객체지향 개발 방법론을 이용하여 객체들의 역할과 책임 그리고 객체 사이의 협력을 통해 설계 및 구현하였습니다.
성과
- 기존의 레거시 코드, 클래스형 컴포넌트들을 React Hook을 이용해서 리팩토링 후 배포
- 협업하기 좋은 디렉토리 구조와 코드를 고민하여 팀원들과 같이 컨벤션을 만듦
- 디자인 시스템에서 Reanimated V2 라이브러리를 도입하여 복잡한 애니메이션 관련 로직을 UI Thread 에서 처리하여 프레임드랍 없는 애니메이션으로 구현
eslint/import-order 적용
- import 구문 순서가 맞지 않아서 다른 팀원들과 충돌이 나는 경우가 많아서 eslint로 import order를 강제하였습니다.
반복된 탬플릿을 효율적으로 작성할 수 있는 snippet 생성
- 회사 코드에서 screen 이나 hook 을 생성할 때 반복적으로 작성해야하는 컨벤션을 snippet 사용으로 코드 작성 효율을 높였습니다.
당근마켓
프론트엔드 | 비즈프로필
2022.01. ~ 2022.02. (2개월)
🎯 당근마켓 안에 사장님을 위한 예약관리 프로그램
🎯 당근마켓 내 전환을 늘리기 위한 수단으로 사장님들에게 예약을 유용하게 관리할수 있도록 제공한 도구
- 팀에서 새롭게 시작하는 도메인의 MVP 프로덕트를 제작하였습니다.
- 백엔드와의 협업 유연성을 높이기 위해 msw를 이용하여 데이터 mocking 시스템을 구축하였습니다.
- 모바일 웹뷰에서 사용자의 일관적인 UX를 위해 time picker 컴포넌트를 개발하였습니다.
- 코드리뷰를 통해, 가독성이 좋은 코드와 변경에 유연한 코드를 고찰하였습니다.
- 출시 후 예약 기능의 유지 보수를 담당하였습니다.
성과
- 다른 부서에서도 native time-picker 를 사용하던 곳에서 제가 만든 time picker를 좀 더 고도화하여 사용하게 되었습니다.
- 현재 비즈프로필 예약 서비스는 미용, 용달 분야의 사장님 분들이 자주 사용하시는 기능이 되었습니다.
시연 영상 : https://www.notion.so/ahddongmin/04c6f7d778f64458aa7097cfa41d0ab4?pvs=4
당근마켓
프론트엔드 | 당근 마켓 MVP 인턴쉽
2021.09. ~ 2021.12. (4개월)
🎯 당근 마켓 내에 비즈프로필 사장님들이 고객들의 의견을 묻기위한 설문조사 서비스
🎯 당근 마켓서비스내에 설문조사라는 도메인이 어떤 형식으로 녹아들어야하는지를 검증하기 위한 MVP 앱
- react-hook-form 을 이용한 form 상태관리
- Input이 많아져서 관리해야 할 상태들이 너무 많아졌습니다. 따라서 제어 컴포넌트를 리팩토링해야 할 필요성을 느끼게 되어, React Hook Form을 이용하여 비제어 컴포넌트를 완성하였습니다.
- recharts 를 이용한 파이 차트 시각화
- Firebase Analytics
- 퍼널 개선을 위해 FA 를 이용해서 필요한 이벤트 데이터들을 로깅하고 분석하였습니다.
- github action 을 통한 CI/CD
- react-custom-hook 을 사용하여 비지니스 로직 분리
성과
가설과 검증을 위한 lean한 프로덕트 개발
MVP 앱을 만들면서 검증하기 위한 가설을 설정하고 그 가설을 검증하기 위한 프로덕트를 만들었습니다.
프로덕트의 feature 를 크게 설문 작성(1차) 설문 답변(2차) 통계(3차) 로 나누어서 각각의 기능들을 점차적으로 배포.github action 을 이용하여 aws의 S3와 CloudFront를 이용하여 배포를 단계적으로 배포.
디자이너와 첫 협업으로 어떻게 효율적으로 소통.
디자이너 분들에게 반응형 / 동적 웹환경에 대한 질문을 함으로써 UX/UI 적인 부분에 개선으로 프로덕트의 퀄리티가 향상되었습니다.
컴포넌트 설계에 필요한 디자인적 요소와 데이터적인 요소의 싱크를 맞추는 역할을 하였습니다.
firebase analytics 로 쌓은 이벤트 데이터들을 효과적으로 이용하기 위해 BigQurey 를 사용해 필요한 데이터들을 알맞게 뽑아내어 퍼널을 개선.
기술 스택
React, React Native, Webpack, TypeScript
교육
코드스쿼드 마스터즈 코스
사설 교육 | Frontend
2021.01. ~ 2021.06. | 졸업
대외활동
구름톤(kakao x goorm) 4기 - 대상
kakao x goorm