
📞 +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 - 1명 Backend - 2명 Frontend - 3명
트래픽: 25,000,000+
:commit: 100+ :pr:60+
부산SW마이스터 고등학교 입학 전형 시스템 V2 2025.05. ~ 2026.01.
Github
https://github.com/Bamdoliro/marubase
https://github.com/Bamdoliro/maruruuu
Link
Stack
Next.js recoil axios react-query emotion TypeScript
<aside>
마루는 부산SW마이스터고등학교의 입학전형 지원을 위해 개발된 서비스입니다.기존에 파편화되어 접근이 어려웠던 전형 과정을 하나로 통합하여, 학생과 교사 모두가 보다 효율적으로 이용할 수 있는 환경을 제공합니다.입학 원서 작성 및 관리 기능을 비롯해 입학설명회 운영, 지원자 데이터 조회, 단체 문자 발송 등 전형 운영 전반에 필요한 다양한 기능을 지원합니다.해당 서비스는 2024년 입학전형부터 실제 운영에 적용되었으며, 이후에도 지속적인 유지보수와 기능 개선을 통해 안정적으로 운영 중입니다.
</aside>
<aside>

메인 페이지

입학설명회 페이지

원서 관리 페이지
.png)
학생 통계 페이지
</aside>
<aside>
개발 중 빌드 속도가 느려 Lighthouse로 측정해보니 Performance 점수가 60점대로 낮게 측정됐다. 빌드 시간도 약 3.45s로 느린 상태였습니다.
🔨 해결
@suspensive/react, react-cookie, react-toastify 등의 패키지가 번들에 그대로 포함하고 있었습니다.배경 이미지를 WebP(70.1KB)로 교체해 용량을 약 94% 줄이고, <head>에 fetchPriority="high" preload와 CDN preconnect를 추가해 브라우저가 HTML 파싱 초기에 이미지를 선점 로드하도록 처리했습니다.
폰트는 @import를 제거하고 strategy="afterInteractive" Script로 렌더링 이후 비동기 삽입하도록 전환해 렌더링 블로킹을 완전히 제거했습니다.
미사용 패키지 4종을 제거해 번들 사이즈도 줄였습니다. 그 결과 Lighthouse Performance 점수가 60 → 100으로, 빌드 시간이 3.45s → 1.02s로 개선됐습니다.
'-' 문자열을 계산 로직에서 제거하지 않은 것이 원인이었습니다. 백엔드와 계산식을 대조 검증하며 로직을 수정했고, 이후 프론트와 백엔드의 계산 결과가 일치함을 확인했습니다.Vercel 도메인 소유권 인증 실패 오류 발생했습니다.maru.bamdoliro.com 서브도메인이 ANAME으로 설정되어 있어 Vercel 정책에 맞지 않는 것을 확인 하고, ANAME → CNAME으로 변경하고 TXT 레코드를 추가해 인증 성공했습니다. 하지만 이후 동일한 오류가 재발생했습니다.
🔨 해결
DNS 쿼리를 직접 확인하던 중 네임서버가 가비아가 아닌 AWS Route 53으로 변경되어 있음을 발견했습니다. 팀원이 네임서버를 변경한 것으로, 가비아에 추가한 TXT 레코드가 실제 DNS 권한이 있는 Route 53에는 반영되지 않아 인증이 다시 실패했습니다.
Route 53에 TXT레코드와 CNAME을 추가해 소유권 재인증을 하여 도메인을 정상 연결했습니다. DNS 문제 발생 시 레코드보다 네임서버 권한 위치를 먼저 확인하는 습관이 생겼습니다.
</aside>
<aside>
</aside>