위치 서비스를 기반으로 동네 주민들과 물물 혹은 재능 교환 서비스를 제공하는 플랫폼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 개발 지식에 대해 심도 깊게 학습하였고, 팀 프로젝트를 통해 학습한 내용을 실제로 구현해보며 "개발자"가 되기 위해 꾸준히 나아가고 있습니다.