위치 서비스를 기반으로 동네 주민들과 물물 혹은 재능 교환 서비스를 제공하는 플랫폼FE 2명, BE 1명, 디자이너 2명으로 구성된 팀 프로젝트입니다.* 현재 API 개발 중입니다.
메인페이지, 게시물 작성 페이지, 오퍼 페이지, 채팅 페이지, 검색페이지를 담당하였습니다.
useCallback, useMemo 등 메모이제이션 Hook을 통해 렌더링 최적화 및 전체적인 성능 개선useModal, useNavigate 등 Custom Hooks 구현하여 재사용성을 높임Redux-toolkit를 통한 전역 상태를 관리하고, Web App을 구현했습니다.
Web App으로 구현Styled-Component를 생성하고 해당 태그에 props을 전달해 스타일 변경 처리를 하던 중, 해당 에러가 발생하여 원인을 파악해 문제를 해결하였습니다. Error-code
$를 붙여 문제를 해결하였습니다.
transient props을 사용하면 더이상 DOM 요소로 전달하지 않고 Styled-Component props으로 사용할 수 있다는 것을 알게 되었습니다.온라인으로 편지를 작성하고, 보낼 수 있는 서비스원하는 문구로 URL 주소를 만들 수 있는 커스텀 기능과 SNS에 쉽게 업로드할 수 있도록 이미지 저장 기능을 제공합니다.FE 3명, BE 3명으로 구성된 팀 프로젝트입니다.
회원가입, 로그인, 로그아웃에 해당하는 전체적인 회원인증 절차 기능을 구현했습니다.
Cookie와 Web Storage를 활용한 JWT 인증절차 구현
회원가입이나 편지 작성 등 다수의 input 요소를 효율적으로 관리하기 위해 React-hook-form 을 활용한 비제어 Form Component 구현
YUP 라이브러리를 통해 유효성 및 중복검사 기능 구현
yup.object을 사용해 schema를 만들어 검증로직과 에러메세지를 한번에 정의하는 직관적인 코드 구현편지 조회 페이지 주요 기능 및 상태관리 라이브러리를 통한 전역 상태 관리, 반응형 Web을 구현했습니다.
Web Speech API를 이용한 음성 TTS 기능과 Dom to image, File Saver를 활용한 이미지 저장 기능 구현Zustand를 통한 유저의 로그인 상태와 MemberID 정보 전역 상태 관리media query를 사용한 반응형 Web 구현하여 Desk, Tablet, Mobile에 따른 레이아웃 최적화를 통한 UX 향상Vercel 을 사용한 CI/CD 워크플로우 구축편지의 보관 상태를 동기화하는 기능을 구현하던 중, state값이 실시간으로 반영되지 않은 문제를 발견하였습니다. 이를 해결하고자 setSate의 비동기 동작에 대해 공부하여 해당 문제를 해결할 수 있었습니다.
setState의 호출은 비동기적으로 이뤄지기 때문에 새로운 값이 즉시 반영되지 않습니다.
state를 일괄적으로 업데이트하고 렌더링하기 때문입니다. 덕분에 불필요한 렌더링을 방지하고 성능을 향상시킬 수 있지만, 최신값을 보장하지 않는다는 문제가 존재합니다.setState에 객체 대신 함수를 전달해 문제를 해결하였습니다.
state값에 접근할 수 있기 때문에, setState를 동기적으로 처리할 수 있다는 것을 알게 되었습니다.
약 7년 간 하나금융 TI의 재무팀으로 근무하며 다수의 사내 소프트웨어 개발 프로젝트에 참여하고 진행하였습니다. 이 과정에서 개발직군을 비롯한 여러 유관 부서와 긴밀하게 협업하며 탁월한 커뮤니케이션 능력을 발휘하였습니다.
프로젝트를 거듭 진행하며 개발을 통해 복잡한 데이터를 직관적이고 효율적으로 구현할 수 있다는 점에 큰 매력을 느꼈고, 이는 “개발자"로 직무 변경을 결심하게 되는 계기가 되었습니다.
개발자로서 기술 역량을 집중적으로 키우기 위해 퇴사 후 부트캠프와 스터디 그룹을 진행하며 Front-end 개발 지식에 대해 심도 깊게 학습하였고, 팀 프로젝트를 통해 학습한 내용을 실제로 구현해보며 "개발자"가 되기 위해 꾸준히 나아가고 있습니다.
