천지인 이력서
안녕하세요,
프론트엔드 개발자 천지인입니다.
1년 동안 4개의 프로젝트를 진행하며 촉박한 일정 속에서 프로젝트의 시작부터 끝까지 진행해본 경험이 있습니다. 또한, 요구사항에 맞는 적절한 라이브러리를 선택하고, 빠르게 학습하여 적용하는 과정을 반복하며 기술 역량을 키웠습니다.
이제, 실제 고객 피드백을 반영해 제품을 발전시키는 과정에 직접 기여하고 싶습니다. 사용자의 목소리를 빠르게 반영하며 제품을 개선하는 사용자 중심의 개발을 경험하고, 팀과 함께 의미 있는 제품을 만들어가는 과정에 함께하고자 합니다.
경력
주식회사 벽촌프론트엔드 개발자
2023.10 ~ 2024.10
프로젝트
SLP Placement Test
2024.07 ~ 2024.09
간단 소개
4명의 프론트엔드 개발자와 백엔드 개발자, 디자이너, 기획자가 투입된 프로젝트입니다. 서강교육그룹의 학생들이 시험을 보기 위해 필요한 대시보드 개발 파트를 담당했습니다.
사용 기술
주요 작업
- 데이터 패칭시 생기는 waterfall 문제를 해결하기 위해 로더를 통해 문제 해결
[데이터 패칭시 생기는 waterfall 문제를 해결하기 위해 로더를 통해 문제 해결]
배경: 대시보드 파트를 구현할 때, 한 페이지에서 여러 API 호출이 연쇄적으로 이루어지며 화면의 데이터가 순차적으로 나타나는 문제가 발생했습니다.
액션: 기존 useEffect 내부에서 개별적으로 데이터를 가져오던 방식 대신, React Router의 loader에서 병렬 요청을 처리하고 페이지로 전달하는 방식으로 최적화 했습니다.
결과: 페이지 내 데이터가 순차적으로 로드되던 현상이 사라졌습니다. 이를 통해 사용자에게 일관된 화면을 제공할 수 있었습니다.
법률신문 웹 서비스 유지보수
2024.03 ~ 2024.06
간단 소개
Next.js의 page router로 구현되어있는 법률 전문 신문 법률신문 사이트의 유지보수를 담당했습니다.
사용 기술
주요 작업
- 테스트 환경 개선
- API 검증을 통한 기사 URL 오류 방지
[테스트 환경 개선]
배경: 인수인계 받은 초기에 hosts.ini 파일을 수정하여 프로덕션 테스트 환경을 구성하고 있었습니다. 이 방식은 다른 개발자들의 온보딩과정에서 혼란을 주었고, 로컬과 프로덕션 환경 전환이 번거로웠으며, 다른 프로젝트를 확인할 때마다 추가적인 설정 변경이 필요하다는 문제가 있었습니다.
액션: Next.js의 next dev와 next start 스크립트를 기반으로 환경을 분리하고, 환경 변수 기반 설정을 적용하여 로컬과 배포 테스트 환경을 명확하게 구분하도록 개선했습니다. 또한 Next.js에서 제공하는 proxy를 이용해 로컬 개발 환경에서 API 요청을 우회하여 문제 없이 요청하도록 마이그레이션을 진행했습니다.
결과: 개발자들이 별도의 설정 변경 없이 일관된 환경에서 개발과 테스트를 진행할 수 있게 되었고 개발자 경험(DX)이 향상되었습니다.
[API 검증을 통한 기사 URL 오류 방지]
배경: 기존 시스템에서 잘못된 URL 경로로 접근할 경우, 페이지가 잘못된 레이아웃으로 렌더링되는 문제가 있었습니다. 확인해보니 Next.js의 라우팅 시스템을 이용하고 있지만, 적절한 라우팅 가드가 이루어지지 않고 있는 점이 문제였습니다.
액션: 문제를 해결하기 위해 API에서 받아온 분류 코드와 URL 경로를 비교하여 일치하지 않으면 서버에서 바로 리다이렉트를 적용하는 방식으로 개선을 추진했습니다. 처음에는 클라이언트 사이드에서 렌더링 후 리다이렉트하는 방법(useEffect를 통해)을 고려했지만, 페이지가 렌더링 되고난 후 리다이렉팅 된다는 점에서 성능 저하와 비효율적인 동작을 우려하여, SSR을 활용한 Next.js 서버 사이드에서 리다이렉트를 처리하는 방법(Middleware를 이용하는 방법)으로 전환했습니다.
결과: 잘못된 레이아웃 렌더링 문제를 해결하였고, 불필요한 리렌더링을 제거하고 리다이렉션 속도를 개선했습니다.
지역혁신인재양성 온라인플랫폼
2023.12 ~ 2024.02
간단 소개
대구시 청년 관련 정보와 대구 소재 대학교 관련 정보를 제공하는 웹사이트입니다.
사용 기술
주요 작업
- 회원가입시 여러 페이지에 걸쳐 분산된 상태를 관리하기 위해 퍼널 구조로 설계
[회원가입시 여러 페이지에 걸쳐 분산된 상태를 관리하기 위해 퍼널 구조로 설계]
배경: 회원가입이 여러 단계로 나뉘어 있었고, 개별 state로 관리하다보니 각 단계간 데이터 전달이 불편하고 데이터 흐름을 파악하기 힘들다는 문제가 있었습니다.
액션: 퍼널 구조를 도입하여 회원가입 단계를 하나의 흐름으로 연결하고, useFormState와 Server Action을 통해 서버에서 상태를 관리함으로써 데이터 흐름을 한 눈에 볼 수 있도록 설계하였습니다. 또한 추가적으로 Zod를 사용해 입력 값을 검증하여 데이터의 타입 오류를 런타임 환경에서도 검증할 수 있도록 했습니다.
결과: 회원가입을 하는 동안의 데이터를 한 눈에 파악할 수 있게 되었으며, zod 기반 데이터 유효성 검증을 추가하여 유효하지 않은 데이터가 저장되는 것을 방지할 수 있었습니다.
딜라이트 북스 출판사 정산 웹서비스
2023.10 ~ 2023.11
간단 소개
출판사의 수입과 관련된 정산 내역을 ß편하게 관리하고 작가들이 직접 열람할 수 있도록 대시보드를 구현했습니다.
사용 기술
주요 작업
- - 초기 세팅부터 끝까지 대부분의 기능을 단독으로 개발하였으며, 이후 유지보수 및 추가 개선 작업까지 단독으로 수행
- - 최초 페이지 로딩 시간이 7초 가량 걸리던 문제를 2초로 최적화
[최초 페이지 로딩 시간이 7초 가량 걸리던 문제를 2초로 최적화]
배경: 프로젝트에서 최초 로딩 시간이 7초나 걸리는 문제가 발생했습니다. 네트워크를 확인해보니 SPA로 만들어진 사이트라 모든 기능을 초기 페이지에서 불러오는데, 그 중 엑셀 관련 기능을 위해 Base64 형식으로 인코딩한 폰트 파일을 불러오는 데 약 5초 가량이 소요됨으로써 문제가 되는 것을 확인했습니다.
액션: 먼저 폰트파일을 압축률이 좋은 woff2 형식의 파일로 교체하려 했으나 라이브러리에서 지원하지 않았기 때문에 불가능 했고, 최종적으로 Base64 형식의 폰트 파일을 엑셀 기능이 필요한 페이지에서 불러오도록 레이지 로딩 및 서스펜스를 적용함으로써 최초 페이지의 로딩에서 해당 파일을 분리했습니다.
결과: 캐싱이 없는 상태에서 최초 페이지의 로딩 시간을 7초에서 2초 이내로 5초 가량 감소시킴으로써 사용자 경험을 크게 향상시켰습니다.
학력 및 교육
프론트엔드 과정코드 스테이츠
2022.12 ~ 2023.06
자바 풀스택 과정KH 정보교육원
2022.06 ~ 2022.11
한국외국어대학교 글로벌캠퍼스Global Business & Technology 전공
2015.03 ~ 2021.08