profile

안녕하세요,
피드백 받는 것을 좋아하는
프론트엔드 개발자 이한빈입니다.

담당 범위를 스스로 넓혀, 문제를 끝까지 해결하고자 합니다.
  • 기업교육 랜딩페이지를 개선해 기업교육 문의 전환율을 +57% 개선했습니다.
  • 프론트로 참여한 프로젝트에서, 일부 백엔드까지 직접 구현해 예상 인력계획 대비 약 33% 절감(4.5M/M → 3M/M) 했습니다.

 

혼자보다는, 함께일 때 더 성장한다고 믿습니다
  • 4명이 참여한 자바스크립트 스터디를 5개월간 리드해 900페이지 교재를 이탈자 없이 완주했고, 총 7회 발표를 직접 진행했습니다.
  • 개발자 관련 다양한 동아리, 커뮤니티, 행사 등에 꾸준히 참여하여 자극을 통해 성장하고자 합니다.

Work Experience.

Inzisoft

Inzisoft

개발팀Web Developer2025. 01 - now

1. 유진투자증권 AI OCR 검수 백오피스 구축

React Vite Tailwind CSS Spring Boot

1,500건 이상의 3개의 업무별 증권사 문서를 AI OCR로 인식한 후 담당자가 검토 및 수정할 수 있는 백오피스 프로젝트입니다.

상태 동기화 로직을 파생 상태(Derived State) 구조로 재설계했습니다.

  • 필터 7종 · 정렬 3단 · 페이징이 반영된 목록 리스트와, 원본 데이터가 각각 별도의 상태로 관리되고 있어 조건이 바뀔 때마다 리스트를 재계산해 동기화를 해줘야 했음
    • 조건이 늘수록 동기화 누락 지점도 비례해 증가, 정렬만 바뀌고 리스트는 stale 상태로 남는 등 치명적인 문서 누락으로 이어질 수 있었던 휴먼 에러 발생율 존재
  • 원본 데이터만 단일 상태로 유지하고, 필터 · 정렬 · 페이징 리스트는 원본과 현재 조건값으로부터 매번 재계산되는 파생 상태(useMemo)로 전환 → 동기화 필요성 자체가 사라져 갱신 누락 버그 발생율 0% 달성

3종 업무 화면을 공통 컴포넌트 구조로 재설계해 확장성을 확보했습니다.

  • 업무마다 목록 컬럼 · 조회 조건 · 인식 필드 구조가 모두 달라, 화면을 업무별로 각각 구현할 시 동일한 로직이 세 곳에 중복되고 수정 시 세 곳을 전부 수정해야 하는 비효율 발생
  • 공통 로직과 업무별 차이를 관심사 분리 원칙에 따라 나누고, 업무 코드를 키로 런타임에 분기하는 매핑 구조로 설계 → 업무 추가 시 상위 구조 변경 없이 폴더 단위로 확장 가능한 구조 확보

백엔드 영역까지 직접 맡아 공수를 줄이고 프로젝트를 완수했습니다.

  • 조회 · 저장 등 API 10종 설계 · 구현까지 함께 맡아 별도 백엔드 인력 투입 없이 진행 → 프로젝트 소요 공수 4.5M/M → 3M/M 절감
  • 3개 업무의 저장 로직이 동일함을 확인, 엔드포인트는 화면별로 유지하되 처리 로직은 단일 서비스 메서드로 통합 → 로직 중복에 따른 변경 누락 위험 제거
  • 개인정보는 DB에 암호화 저장돼 프론트에 복호화 키가 없어 원본 대조 자체가 불가능한 문제 → 수정 여부 판단 로직을 복호화 가능한 서버로 일원화(Single Source of Truth)

 

2. 공공기관 내부 이미지 관리 시스템 고도화

Internet Explorer(ActiveX) 기반의 레거시 시스템을 크로미움 기반 네이버 웨일 브라우저 환경으로 전환한 프로젝트입니다.

레거시 기술을 표준 웹 기술로 전환해 고객사 내부 업무 효율을 높였습니다.

  • IE 전용 ActiveX 기반으로 동작하던 iframe · DOM · 이벤트 처리 로직을 표준 Web API로 재구현해 크로스 브라우저 호환성 확보
  • 비반응형 + 레거시 기반 주요 화면 20~30종의 UI를 반응형 레이아웃으로 재설계

중복 렌더링으로 발생하던 플리커링을 제거했습니다.

  • DB 조회 결과를 화면에 그릴 때, 1차 조회 결과를 먼저 렌더링한 뒤 전체 조회가 끝나면 그 결과로 한 번 더 렌더링하는 구조라 하나의 요청에 렌더링이 두 번 발생하며 플리커링(화면 깜빡임) 발생
    • 두 조회를 하나로 합쳐 단일 조회 결과만으로 렌더링하는 구조로 변경해 플리커링 제거

인증 우회로 이어질 수 있던 비정상 접근 경로를 차단했습니다.

  • 팝업 페이지가 GET 요청과 URL 직접 접근만으로 열려, 권한이 없는 사용자가 해당 자료에 접근 할 수 있는 보안 취약점 발생
    • GET은 요청 정보가 URL 자체에 담겨 주소창 직접 입력만으로도 동일 요청이 재현되는 구조라, 요청 방식을 POST로 전환해 URL 직접 접근 경로부터 차단
  • 다만 POST 방식도 개발자도구 등으로 임의 재현이 가능해 "정상 호출 절차를 거쳤는지" 여부까지는 요청 방식만으로 검증 불가 → 팝업 호출 직전 세션에 인증값을 설정하고 진입 시점에 값을 검증 후 즉시 제거하는 방식으로 세션 기반 검증을 추가해, 정상 흐름 외 접근을 이중으로 차단하여 보완성 확보
TeamSparta

TeamSparta

B2B팀Web Publisher Intern2024. 09 - 2024. 12

1. B2B팀 기업교육 랜딩 페이지 개선 🔗 팀스파르타 B2B

국내 주요 기업을 대상으로 임직원 교육 프로그램을 소개하고, 도입 문의·신청을 할 수 있는 팀스파르타의 기업 교육 서비스입니다.

Next.js TypeScript styled-components Amplitude

랜딩 페이지 이터레이션 중, 시안에 없던 태블릿 브레이크포인트를 직접 제안했습니다.

  • SSR 기반 랜딩 페이지 퍼블리싱 중, 카드 그리드가 데스크톱/모바일 두 브레이크포인트 외 태블릿에서 깨지는 지점을 발견 → 중간 브레이크포인트의 레이아웃을 직접 정의해 디자이너에게 제안 및 반영
    • 데스크톱/모바일 사이즈 외 태블릿 사이즈에도 반응형 레이아웃이 안정적으로 동작

데이터 로깅을 통해 실제 성과 개선을 확인했습니다.

  • Amplitude 이벤트 트래킹을 통해 이터레이션 성과를 데이터로 측정할 수 있게 구현
    • 메인 페이지 → 문의 페이지 전환율 +57% (3.3% → 5.2%)
    • 기업교육 도입 문의 제출 전환율 +60% (0.3% → 0.5%, 상대 개선률)

 

2. 스파르타 커리어 서비스 컴포넌트 디자인 시스템 구축

팀스파르타에서 주관하는 부트캠프의 수료생들을 대상으로한 취업 지원 서비스입니다.

Storybook

  • 공통 컴포넌트의 상태 · 스타일 기준이 코드에만 구현되어 있어, 재사용하거나 특정 상태(hover, disabled 등)를 확인하려면 매번 코드를 직접 읽거나 화면에서 재현해야 하는 비효율 발생
    • 주요 공통 컴포넌트 약 20종을 Storybook으로 문서화해 컴포넌트 단위 디자인 시스템 구축 → 모든 상태를 한 곳에서 확인 · 재사용할 수 있게 되어 개발 생산성과 UI 일관성 향상

Team Project.

디톡스 메이트

디톡스 메이트

2026. 03 - ing
스마트폰 사용량(스크린 타임) 목표를 설정하여, 지인들과 팀을 구성해 함께 디지털 디톡스를 하는 iOS 앱입니다.
React NativeExpoZustand

소셜 로그인 기반 인증 시스템을 설계·구축했습니다.

  • 로그인과 모든 API 요청 인증 흐름 설계 → 카카오 SDK 연동, 서버 인증 API 연계, 토큰 저장 · 재발급 구조 구현
    • 카카오 로그인 라이브러리는 카카오톡 앱이 설치된 경우 앱 전환 로그인(네이티브 UX)을 지원하고, Expo config plugin이 제공돼 app.json 설정만으로 네이티브 연동이 가능해서 @react-native-kakao/user 대신 react-native-kakao-login을 채택
    • 토큰은 expo-secure-store에 저장 → 보안 저장소(SecureStore)와 통합돼 있어 별도의 암호화 저장 로직 구현 없이 토큰을 안전하게 보관
  • axios 인스턴스에 request 인터셉터와 response 인터셉터를 추가
    • 재발급 자체가 실패하는 경우는 별도 예외 처리로 분리해, 토큰 재발급 로직과 인터셉터 로직의 책임 분리 → 사용자가 세션 만료를 인지하지 못하더라도 인증을 유지할 수 있는 구조를 완성하여 사용자 경험 개선

낙관적 업데이트 불일치 버그를 수정해 사용자 경험을 개선했습니다.

  • 친구의 기록에 남기는 상호작용 기능 중, 일부 기능에서 처리 후에도 설정된 이미지가 아닌 기본 이미지가 그대로 남아 있는 버그 발견
  • 정상 동작하던 기능은 처리 성공 후 상세 데이터를 다시 불러와 화면을 갱신했지만, 나머지 두 기능의 로직에는 갱신 호출이 빠져 있었음 → 재사용이 안 되던 갱신 로직을 공통 함수로 분리해, 세 기능 모두 성공 후 동일하게 데이터를 다시 불러오도록 개선
  • 세 기능 모두 성공 후 백엔드 서버의 응답 데이터로 재동기화되는 일관된 패턴 확립 → 남아있던 임시 데이터로 인한 불일치 제거
2025 OSSCA Next.js 블로그

2025 OSSCA Next.js 블로그

2025. 05 - 2025. 06
2025 오픈소스 컨트리뷰션 아카데미의 [Git 활용 및 Next.js 뽀개기] 교육 기간 동안 팀원들이 작성한 TIL 모아둔 블로그입니다.
Next.jsReactTypeScriptTailwind CSS

게시글 페이지의 서버/클라이언트 컴포넌트 책임을 분리했습니다.

  • 데이터 조회(서버 영역)와 화면 렌더링·사용자 상호작용(클라이언트 영역)이 한 컴포넌트에 섞여 있던 게시글 페이지 → 화면을 그리는 컴포넌트를 별도로 분리해, 서버 처리 로직과 브라우저 처리 로직의 책임 분리

검색 페이지의 기능 중복을 발견해 게시글 목록 페이지로 통합했습니다.

  • 검색 대상 페이지 중 하나가 외부 댓글 위젯(Giscus) 기반으로 개편되며 검색 기능을 지원할 수 없게 되어, 사실상 게시글 목록 페이지 하나만 검색이 가능해진 상황 → 별도 검색 페이지를 유지할 이유가 없다고 판단해 팀에 제안
    • 별도 검색 페이지를 없애고, 목록 페이지가 URL 쿼리 파라미터로 검색어를 받아 서버에서 바로 필터링하는 방식으로 통합
    • 검색 결과가 많아질 경우를 대비해 정확도순·최신순 정렬 기능과 결과 개수 표시를 추가하고, Not Found 예외 처리를 더해 검색 기능의 사용성 개선

트레이드 오프에 의한 아키텍처를 선정했습니다.

  • 컴포넌트를 재사용 단위로 잘게 나눌지, 기능(도메인) 단위로 묶을지에 대한 구조를 팀과 논의 후, 이론적으로 더 정교한 구조보다 팀 규모와 프로젝트 진행 단계에 맞는 실용적인 구조 선택

Activities.

DEPROMEET, 디프만 코어 3기

DEPROMEET, 디프만 코어 3기

2026. 08 - ing
- 디프만 동아리 운영을 위한 내부 프로덕트 개발
DDD 13기, Frontend

DDD 13기, Frontend

2026. 03 - 2026. 06
- DDD 동아리 13기 웹 프론트엔드로 참여하여 iOS 앱 디톡스 메이트 출시
모던자바스크립트 Deep Dive 스터디

모던자바스크립트 Deep Dive 스터디

2024. 02 - 2024. 08
- 스터디 리드로서 스터디 전반적인 운영을 담당 - 총 4명으로 구성, 5개월간 900페이지 교재 완독
TEOConf 2025, Staff

TEOConf 2025, Staff

2025. 08 - 2025. 12
- 약 200명 규모의 테오콘에 스태프로 참여하여 행사 총괄 운영 및 전반적인 기획 담당 - 참여자 만족도 조사 재참가 의사 약 98% 달성 (59명 중 58명)
FEConf 2025, Staff

FEConf 2025, Staff

2025. 07 - 2025. 08
- 공식 홈페이지 QA에 참여하여 오탈자 및 내용 검수 - 세션 리허설 및 피드백 참여해 세션 퀄리티 향상에 기여 - 행사 당일 진행 및 운영 보조

Award.

오아시스 특별상 수상

오아시스 특별상 수상

2023. 08. 31
제4회 오아시스 해커톤, 광주정보문화산업진흥원주제 : 호남지역 문제 해결을 위한 서비스 개발 '페이팅' 이라는 반려동물 커뮤니티 프로젝트를 출품하여 수상

Certificates.

정보처리기사

정보처리기사

2024. 09. 10
한국산업인력공단