
📞 +82 10-2394-4952 ✉️ [email protected] 깃허브 https://github.com/hjy080530
<aside> <img src="/icons/hammer_blue.svg" alt="/icons/hammer_blue.svg" width="40px" />
전체의 흐름을 읽는
코드베이스를 파악하고, 영향범위를 먼저 확인한 뒤 안정적으로 설계합니다.
</aside>
<aside> <img src="/icons/ruler_blue.svg" alt="/icons/ruler_blue.svg" width="40px" />
사소한 디테일까지
배포 당일 계산식 불일치를 즉시 발견하고 수정할 만큼, 사소한 케이스도 놓치지 않습니다.
</aside>
<aside> <img src="/icons/water_blue.svg" alt="/icons/water_blue.svg" width="40px" />
배포를 끝이 아닌 운영의 시작으로 여기는
연속 장애를 직접 대응하며 서비스 운영이 개발 이후까지 이어진다는 걸 경험으로 배웠습니다.
</aside>
주력
사용 경험
Design - 2명 Backend - 4명 Frontend - 4명
프론트엔드 리드 개발자
:commit: 460+ :pr: 90+
트래픽: 30,000,000+
해운대 고등학교 입학전형 시스템 2025.08. ~ 2026.01.
Github
https://github.com/Bamdoliro/haemarururu
https://github.com/Bamdoliro/haeundae-marubase
Link
Stack
Next.js styled-components recoil axios TanStack-query Emotion TypeScript Vercel
<aside>
해운대마루는 마루라는 본교입학 전형을 해운대고등학교 입학전형에 맞게 전면 개편한 프로젝트입니다. 기존 코드베이스를 인수해 해운대고등학교 요구사항에 맞게 빠르게 파악, 개편해야 했고, 프론트엔드 리드로서 팀원 이탈 상황에서도 인증 보안 개선, 분석 페이지 API 연동, Emotion 마이그레이션 등 대부분의 작업을 주도했습니다. 클라이언트인 해운대고등학교와 직접 소통하며 요구사항을 반영했고, 서비스는 2025년 실제 입학전형에 사용되어 3,000만 건 이상의 트래픽을 처리했습니다.
</aside>
<aside>

원서 작성 페이지

학생 원서 관리 페이지
.png)
학생 분석페이지

학생 원서 - 입학원서
</aside>
<aside>
인증/보안
/users API 서버 검증 + 리다이렉트로 전환해 비인증 접근 차단&와 같은특수문자 필터링으로 보안 강화기능 개발
useEffect로 해결코드 구조 개선
Recoil atom/selector를 value/set/state로 역할별 분리하고 import 경로를 단일 진입점으로 통일해 상태 추적 비용 감소mobileSchoolPhonenumber → teacherPhonenumber 네이밍 불일치를 백엔드와 협의해 DB 컬럼명까지 통일Image Optimization 요청 한도 초과 방지를 위해 <Image /> → <img />로 교체Thymeleaf로 제작 및 리팩토링안정성/UX 개선
null/undefined 처리 및 소수점 표시 로직 수정
</aside><aside>
</aside>
[ 클라이언트와의 협업 경험 ] 해마루는 외부 클라이언트와 함께 진행된 입학 전형 사이트로, 초기에는 요구사항 해석과 일정 조율에서 혼선이 있었습니다. 이를 해결하기 위해 노션과 카카오톡을 기반으로 빠른 컨펌 체계를 구축했고, 그 결과 요구사항 반영 속도와 정확도를 안정화할 수 있었습니다.
[ 배포 및 운영 경험 ] 프로젝트의 전 사이클을 담당하며 프론트엔드 외 배포 및 서비스 운영까지도 경험했습니다. 배포 이후 도메인 설정 및 접근 오류 등 프로덕션 이슈를 직접 대응하며, 서비스 안정화가 개발 사이클의 핵심 단계임을 체감했습니다. 이후에는 배포 전 환경변수·도메인 설정을 체크리스트로 사전 검증하고, 변경 사항은 즉시 스모크 테스트로 확인하는 방식으로 배포 프로세스를 개선했습니다.
[ 팀원 이탈 상황에서의 업무 조율 경험 ] 프론트 팀원 이탈로 인한 리소스 부족 상황에서, 잔여 태스크를 중요도·난이도 기준으로 우선순위를 재조정하고 고난이도 작업 사이에 경량 태스크를 인터리빙하는 방식으로 번아웃 없이 스프린트를 완수했습니다.