환영합니다!

프론트엔드 개발자 벤입니다.

  • 항상 '왜?'에 대한 고민을 하면서 개발합니다.
  • 작성한 코드와 프로젝트에 대해 자식처럼 생각하며 오너십을 갖고 개발하고 있습니다.
  • 글 쓰는 것을 좋아하며 블로그를 통해 생각을 공유하고 있습니다.

Projects

gist를 embed 할 때 사용했던 패키지가 최신 버전을 지원하지 않아, 직접 만들고 배포했습니다.

  • github gist를 보다 쉽게 embed 할 수 있도록 개발 및 npm 배포
  • 최신 문법으로 작성되어 React의 최신 버전을 지원하며, Rollup 번들러로 패키지를 관리
  • 주간 다운로드 수 800 달성
  • 현재 블로그에서 직접 만든 패키지로 대체하였음
  • 다사다난했던 npm 패키지 배포(iframe, embed등)

사용 기술

TypeScript

인터페이스를 선언하여 인터페이스 외의 프로퍼티에 접근할 경우 에러를 내주어 생산성 향상에 기여할 수 있습니다.

또한 인터페이스만 보고 빠르게 속성을 파악할 수 있기 때문에 협업에 큰 도움이 됩니다.

기존에 사용하던 블로그 서비스를 대체하고, 개발했던 프로덕트를 한 곳에 모아보기 위해 개발한 사이트입니다.

  • 마크 다운 파일 기반 정적 블로그 서비스
  • 백엔드로부터 자유롭게 개발 진행(firbase store를 이용한 피드백 페이지, utterances api issue 기반 댓글 시스템, 외부 api를 활용한 조회수 기능 등)
  • 느린 초기 로딩속도 개선을 위한 페이지 분석 및 개선 작업 진행 (번들 파일 분석 및 코드 스플리팅으로 번들 크기 축소, 리소스 분석을 통한 요청 리소스 파일 크기 최적화)
  • web vital 성능 점수를 60 → 90점으로 50% 개선
  • vercel analytics, ga를 통한 유입 관리 및 web vital 체킹
  • 사용성 경험을 개선하기 위한 작업 및 리팩토링 진행 중(블로그에 진행 사항을 기록 중에 있습니다.)

사용 기술

TypeScript

인터페이스를 선언하여 인터페이스 외의 프로퍼티에 접근할 경우 에러를 내주어 생산성 향상에 기여할 수 있습니다.

또한 인터페이스만 보고 빠르게 속성을 파악할 수 있기 때문에 협업에 큰 도움이 됩니다.

링크

개발자를 위한 간단한 지식 체크 서비스를 제공합니다. RPG적 요소와 퀴즈를 합쳐서 보다 재미있게 풀 수 있도록 시도해 보았습니다.

  • 면담을 통해 팀원의 관심사와 성향을 파악, 친밀감 형성
  • 자유로운 의견 제안 환경을 위해 팀 페이지 내 화이트보드 도입, 데일리 스크럼 시간 단축
  • 서비스에 필요한 유스케이스를 산출 및 우선순위 부여, 주어진 시간 내에 핵심 기능들 우선 구현
  • TypeScript 장점을 팀원들과 공유 및 도입 제안
  • Webpack과 Babel 기반 React 스캐폴딩 구축
  • 팀 컨벤션 기반 eslint 및 prettier 구축 및 husky, lint-staged를 통한 개발 프로세스 개선
  • React 스캐폴딩 템플릿 구성 및 유지 보수
  • REST API 기반 퀴즈 풀기 및 해결 페이지 구현
  • 사용자가 다양한 문제를 경험할 수 있도록 셔플 알고리즘 도입, 편향되지 않도록 퀴즈 풀 생성
  • 가독성 개선을 위해 담당 부분 리팩토링 진행

사용 기술

TypeScript

인터페이스를 선언하여 인터페이스 외의 프로퍼티에 접근할 경우 에러를 내주어 생산성 향상에 기여할 수 있습니다.

또한 인터페이스만 보고 빠르게 속성을 파악할 수 있기 때문에 협업에 큰 도움이 됩니다.

링크

오직 Vanilla JS만을 사용하여 노션의 사이드바와 에디터를 구현하는 프로젝트입니다. 개발 후 TypeScript로 재작성 하였습니다.

  • 순수 JavaScript 기반 상태 기반 렌더링 구현, 상태 기반 렌더링 컴포넌트, 라우팅 및 API요청 처리
  • 컴포넌트 복잡도를 해결하기 위해 상태 코드를 컴포넌트 외부로 분리
  • Observer pattern 기반 전역 상태 관리 구현, 상태 변경 시 렌더링 처리
  • App 컴포넌트 300라인의 코드를 약 66% 간소화
  • 실시간 자동 저장 기능 구현을 위한 debounce 도입, 500ms의 debounce를 적용하여 불필요한 api 요청 횟수 개선
  • TypeScript를 학습하며 기존에 작성했던 JavaScript 코드 리라이팅 진행

사용 기술

Vanilla JS

외부 라이브러리의 도움 없이 모든 부분을 순수 JavaScript로 구현하기 위하여 다른 모듈을 사용하지 않았습니다.

링크

Educations

프로그래머스에서 진행하는 프론트엔드 데브코스에 참여하였습니다.

  • 스스로 학습 목표를 세우고, 일일 스크럼을 통한 목표 공유 및 학습 내용을 정리
  • 팀 단위로 설계부터 배포까지 참여하며 한 사이클의 개발 과정을 경험

링크

유기신소재 파이버공학과(신소재공학과)

Activities

개발을 본격적으로 시작하게 된 계기가 된, 알고리즘 문제 해결을 취미로 진행하고 있습니다.

  • 백준 플랫폼에서 약 650문제를 해결, 현재 플래티넘 5단계
  • 해결 여부와 관계 없이 다른 사람들의 풀이를 참고하며 로직의 다양성과 유연한 사고에 대해 학습
  • 풀이시 프로젝트 진행과 다른 패러다임으로 의도적으로 접근(iteration → recursion)
  • 팀원을 대상으로 그래프, 트리, 탐색 알고리즘 지식 공유 세션 진행

링크

함께 주제를 선정하고 공부하며 질답 방식을 통해 학습 내용을 정리하는 스터디에 참여했습니다.

  • 스터디 팀원으로 참여하였으며, 운영진으로서 활동
  • 주기적으로 회고를 진행하며 스터디 시간을 효율적으로 사용하고, 팀원의 부담감을 낮추는 방향으로 진행 방식을 개선

Prize

열린 수업 프로젝트 에세이 공모전 최우수상(총장상)

  • 2019학년도 2학기에 진행한 수업 참여율 개선을 위한 프로젝트(보고서 작성)에서 최우수상(총장상)을 받았습니다.

취미

커피

커피를 즐겨마십니다. 다만 맛은 가리지 않고 카페라는 공간을 좋아합니다.

  • 번화가 대형 커피전문점에서 파트타임으로 약 8개월정도 근무
  • 학교 생활과 병행했으며 주말 타임으로 근무하였음
  • 그 외 베이커리에서도 파트 타임 경력

여행

국내, 해외 여행을 모두 가리지 않고 좋아합니다.

  • 파리, 스위스, 스페인등 다양한 나라 방문
  • 최근에는 일본, 홍콩 등 근거리 여행 위주로 다니는 중
  • 한적한 곳을 좋아하며 반려견과 함께 있는 것을 좋아함