큰 그림을 보고 쪼개는 설계
4개의 서비스를 하나의 모노레포로 운영
홈페이지, 계정 서버, LMS, 백오피스를 하나의 저장소에서 관리하면서 공통 컴포넌트와 설정을 분리했습니다. 새 기능을 추가할 때 "이건 공통인가, 특정 앱 전용인가"를 먼저 판단합니다.

Frontend Developer
프론트엔드는 화면을 만드는 일이 아니라, 사용자와 시스템 사이를 연결하는 구조를 만드는 일이라고 생각합니다.
4개의 서비스를 하나의 모노레포로 운영
홈페이지, 계정 서버, LMS, 백오피스를 하나의 저장소에서 관리하면서 공통 컴포넌트와 설정을 분리했습니다. 새 기능을 추가할 때 "이건 공통인가, 특정 앱 전용인가"를 먼저 판단합니다.
브라우저 한계를 인정하고 서버로 전환
브라우저에서 FFmpeg로 영상 변환하다 메모리 오버플로우가 발생했을 때, "될 때까지 고치기"보다 "왜 안 되는지"부터 파악했습니다. 결국 브라우저의 한계를 인정하고 서버 사이드로 전환하는 게 맞다는 결론을 내렸습니다.
QA 피드백과 PR 리뷰 반영
기능이 동작한다고 끝이 아닙니다. QA 피드백이 오면 "왜 그렇게 느꼈을까"를 먼저 생각합니다. PR 리뷰에서 받은 의견도 단순히 고치는 게 아니라, 왜 그런 피드백이 나왔는지 이해하려 합니다.
블록체인 부트캠프에서 처음 개발을 시작했습니다. 지갑 앱을 만들면서 React와 상태 관리의 기초를 배웠고, 해커톤에서 팀과 협업하는 경험을 했습니다.
입사 후 처음 맡은 건 사업 승인을 앞둔 서비스의 마무리 작업이었습니다. 다른 사람이 작성한 코드를 읽으면서 "왜 이렇게 했을까"를 이해하려 노력했고, 기존 구조를 해치지 않으면서 새 기능을 붙이는 법을 배웠습니다. 결국 사업 승인이 됐고, 그 서비스가 지금 운영 중인 LMS의 기초가 됐습니다.
LMS 프론트엔드를 전담하면서 처음으로 "내가 설계한 대로" 구조를 잡을 기회가 생겼습니다. 대용량 파일 업로드 실패, 영상 변환 크래시 같은 문제를 마주하면서 "되게 만들기"와 "제대로 만들기" 사이에서 균형을 찾는 법을 배웠습니다.
이제는 새 기능을 구현하면서 "6개월 뒤에 이 코드를 볼 사람"을 생각합니다. PR 리뷰에서 받은 피드백을 반영하고, QA에서 발견된 이슈를 개선하면서 점진적으로 코드 품질을 높입니다.
64%↓
LCP 개선
3.1s → 1.1s
95%↓
미디어 최적화
67MB → 3MB
58%↑
SEO 점수
58 → 92

개발팀 · Frontend Developer
수강생을 위한 온라인 학습 플랫폼 프론트엔드 전담 개발
문제500MB 영상 업로드 시 타임아웃 발생
→S3 Presigned URL + Multipart 업로드로 변경. 청크 크기를 파일 사이즈에 따라 동적으로 조절
1GB 파일도 안정적 업로드, 진행률 표시로 UX 개선
문제브라우저에서 영상 변환 시 탭 크래시
→클라이언트 한계 인정. AWS MediaConvert로 전환해서 서버에서 처리
메모리 오버플로우 해결, 안정적인 영상 처리
5개+ 도메인을 하나의 인증 체계로 통합
문제5개 이상 서비스에서 각각 로그인해야 하는 불편
→OAuth2 Authorization Code Grant 표준 구현. 중앙 accounts 서버 구축
어느 도메인에서 로그인해도 전체 서비스 접근 가능
문제외부 플랫폼(Bettermode) 연동 필요
→OAuth2 클라이언트 설정으로 redirect_uri, scope 화이트리스트 관리
기존 회원 정보로 외부 커뮤니티 자동 로그인
기업 홈페이지 성능 최적화 및 결제 시스템 구축
문제초기 로딩 3초 이상, 미디어 파일 67MB
→WebP 변환 + 코드 스플리팅 + 정적 Export
LCP 3.1초 → 1.1초, 미디어 67MB → 3MB (95% 감소)
문제결제 플로우에서 뒤로가기/새로고침 시 데이터 유실
→use-funnel 패턴으로 단계별 상태 관리
뒤로가기/새로고침에도 데이터 유지

"약자와의 동행" 부문 3위 수상
블록체인, 실시간 통신, 풀스택 등 다양한 기술을 활용한 프로젝트들입니다.

