짧은 자기소개


스무 살 부터 여러 직업을 거치며 일경험을 쌓았습니다. 뒤늦게 진로를 탐색하는 과정에서 프론트엔드 개발을 접하게 됐어요. 프로그래밍은 제가 해왔던 일이나 전공과도 달라 배움 자체가 쉬운 일은 아니었습니다. 어렵긴 했지만 프로그래밍은 저에게 재미있고 꽤나 흥미로워서, 공부를 멈추지 않았습니다. 일과 병행하기도 하면서 천천히 개발 지식을 쌓았습니다. 배운 것들로 몇 개의 프로젝트를 혼자서 진행하기도 하며, 현재는 프론트엔드 개발자로 일하고 있습니다.

저를 채용하시면...


  • 레거시 프로젝트를 새로운 기술 스택의 프로젝트로 다시 만들거나, 개선할 수 있어요.

    • 자바스크립트 코드로만 이루어진 레거시 React 프로젝트에 타입스크립트를 도입하고, 자바스크립트 코드를 타입스크립트로 다시 쓴 경험이 있습니다.
      • 복잡한 레거시 코드를 단순하게 다시 작성해서 향후 유지 보수가 용이하도록 만들었습니다.
    • create-react-app으로 생성된 React 프로젝트를 Vite 기반의 프로젝트로 전환한 경험이 있습니다.
      • Vite와 같은 새 개발 툴로 전환할 때, 가장 문제가 되는 것은 프로젝트 종속성(dependency)의 버전 관리입니다. 저는 각 종속성의 버전을 바꾸어 가며 레거시 프로젝트가 새로운 환경에서도 잘 작동하도록 만들었어요.
      • React 프로젝트의 경우 버전이 달라진 주요 종속성(react, react-dom 등)로 인해 충돌이 발생하거나, StrictMode가 적용되는 등 많은 변화가 일어납니다. 이런 변화에 영향을 받는 페이지나 컴포넌트가 있다면 코드를 다시 써야할 수도 있어요. 저는 프로젝트 환경 변화에 따른 다양한 에러를 처리한 경험이 있고, 이를 바탕으로 빠르게 이슈에 대응할 수 있죠.
      • 기존 프로젝트를 실행하기 위해 특정 버전의 Node.js를 사용해야 했었는데 Vite로 전환하면서 버전 업이 가능해졌고, 최신 라이브러리를 도입하는 등 코드를 공유하는 팀원들의 개발자 경험을 개선할 수 있었습니다.
    • Vue를 CDN 방식으로 활용하여 독립적으로 사용할 수 있는 웹 컴포넌트를 구현했습니다.
    • Next.js 14(App Router) 기반으로 기존 페이지를 대체할 수 있는지 검증하는 테스트 페이지를 제작했습니다.
  • 프론트엔드 프로젝트의 설계부터 구현과 운영까지 모든 과정에 기여할 수 있습니다.

    • 비즈니스 요구 사항에 맞는 다양한 SPA(해상 물류 서비스, 경매 차량 등록 시스템, 관세 업무 대행 시스템, 각 서비스의 관리자 페이지 등)를 제작 및 배포했어요. 현재는 지속적으로 모니터링 하며 운영 중에 있습니다.
    • 프론트엔드 개발 생태계에 대한 깊은 이해를 바탕으로 현 시점과 상황에 맞는 설계를 할 수 있으며, 프로젝트에 꼭 필요한 기술과 도구를 채택할 수 있습니다.
      • Tanstack Query를 이용해 선언적인 데이터 fetching 코드를 작성할 수 있어요.
      • React-Hook-Form으로 코드는 더 단순하지만 기능은 더 많은 form을 만들 수 있습니다.
      • Drag & Drop과 같은 기능을 라이브러리 없이 구현할 수 있습니다.
  • 웹 애플리케이션의 성능 최적화 및 사용자 경험 향상을 위한 적절한 렌더링 방식 선택하고 구현할 수 있습니다.

    • Spring(Java, JSP) 서버를 웹 서버로 활용하여 정적인 파일을 제공하도록 해서, MPA 프로젝트 내부에 SPA로 기능하는 페이지를 추가했어요.
      • 이런 방식으로 차량 검색 페이지에 CSR을 도입하여 검색 기능을 보다 즉각적이고 반응성이 높은 기능으로 제공하게 되었습니다.
    • 사용자 정보 등 캐싱이 되어서는 안 되는 데이터를 제외한 모든 콘텐츠를 CDN에 배포하여 웹 페이지 로드 속도를 대폭 개선했습니다.
      • 서비스 메인 페이지 로드 시간을 FCP 기준으로 6초 대에서 3초 대로 줄였습니다.
  • 특정 프레임워크가 아니더라도 개발을 진행할 수 있습니다.

    • Next.js, Angular, SvelteKit, SolidJS, Flutter 등 다양한 프레임워크로 사이드 프로젝트를 진행했습니다.
    • 새로운 프레임워크, 기술 스택에 금방 익숙해질 수 있는 적응력을 갖고 있습니다.
  • RESTful API와 CI/CD, '기획 -> 디자인 -> 개발' 같은 업무 방식에 이해도를 갖추고 있어 수월하게 협업할 수 있습니다.

    • Java의 Spring 프레임워크에서 작동하는 API에 익숙한 편입니다. 최근에는 Go 언어를 사용해서 RESTful API를 만드는 사이드 프로젝트를 진행 중이에요.
    • 현업에서는 Jenkins 서버를 이용해 구현된 CI/CD 파이프라인과 Github Actions를 통해 배포를 합니다. CI/CD 파이프 라인 전체를 구성하는 것은 어려울 수 있겠지만, 프론트엔드 프로젝트를 배포할 수 있도록 연결하는 일은 충분히 할 수 있습니다.
    • 프론트엔드 개발자의 시각에서 기술 정책의 미흡한 부분을 보완하고, 사용자 경험을 최우선으로 고려한 실용적인 접근 방식을 제안하기 위해 노력합니다.

이력


오토위니(Autowini)

2022.08 ~ 현재 / 프론트엔드파트 주임

  • 해상 물류 서비스 페이지(React, SPA)의 해상 운임 견적 계산, 회원 가입과 로그인 등 유저 인증 기능을 개발.
  • 해상 물류 서비스 페이지의 SEO를 위해 Next.js app router를 활용한 시범 페이지를 제작.
  • 해상 운임 견적 관리를 위한 레거시 관리자 페이지(React, SPA)를 Typescript로 전환하고 Vite 기반으로 교체.
  • CRA로 만들어진 차량 매물 등록 서비스(React, SPA) 유지 보수 및 Vite 기반으로 Migration 진행.
  • 관세사 면허 발급 대행 신규 서비스(React, SPA) 설계 및 개발.
  • 기존 차량 검색 페이지(Java, JSP)를 대체하는 새로운 웹 페이지를 (Vue, SPA)로 개발.
  • 오토위니 웹 페이지(Java, JSP)의 최적화 작업 진행.

보유 기술


('이 기술을 사용해서 하나의 프로젝트를 완성할 수 있다'는 전제 하에 작성한 기술 목록입니다.)

  • 프로그래밍 언어
    • Typescript, Go
  • 프론트엔드 도구
    • Vite, Webpack, React, Vue, SvelteKit, Next.js, zustand, Tanstack Query, React-Hook-Form, Redux-toolkit, tailwindcss, styled-components, MUI...
  • 백엔드 도구
    • gin, SQLite
  • CI/CD
    • Jenkins, Github Actions

사이드 프로젝트


  • both-of-us
    2023-10
    기념일 알려주는 웹 앱
    • Flutter 기반의 웹 앱입니다.
    • 이름과 기념일을 입력하면 해당 기념일의 100일 단위, 연 단위의 기념일을 목록으로 만들어 보여줍니다.
    • 무한 스크롤이 적용되어 있습니다.
    • Firebase와 App Store를 통해 배포되었습니다.
    • Skill Icon
    • Skill Icon
  • to-be-published
    2022-07
    출판예정도서 검색기
    • Vue3 + Typescript 기반의 단일 페이지 어플리케이션(SPA, single page application)입니다.
    • 국립중앙도서관의 서지 정보 API를 활용했습니다. 각 출판사에서 직접 등록한 출간 예정 도서를 검색할 수 있습니다.
    • Pinia(Vuex와 거의 똑같은 기능)를 이용하여 전역 상태를 관리합니다.
    • Vercel로 배포 되었습니다.
    • Skill Icon
    • Skill Icon
    • Skill Icon
    • Skill Icon
  • asuwant
    2022-02
    News API를 활용한, 뉴스를 골라보는 웹 앱
    • 2019년에 만든 비슷한 프로젝트를(Pionner) 2022년에 최신 흐름에 맞춰 다시 만들었습니다.
    • 국가와 카테고리를 골라 상위 25개의 뉴스 헤드라인을 데이터로 받아와서 보여줍니다.
    • News API를 활용했습니다.
      (free-tier로 쓰고 있으며 요청을 하루에 100회까지 받을 수 있습니다. 100회 초과시 에러 페이지가 나타납니다.)
    • Create-React-App의 프록시 설정으로 CORS 에러를 방지하고, 이를 통해 News API에서 데이터를 받아올 수 있습니다.
    • 프론트 영역은 Github Pages, Express 서버는 heroku로 배포했습니다.
    • 전역 상태 관리 도구로 zustand, 비동기 데이터 관리 라이브러리로 React Query를 사용했습니다. (22년 7월 업데이트)
    • 모든 코드를 자바스크립트에서 타입스크립트 코드로 변환했습니다. (22년 7월 업데이트)
    • Skill Icon
    • Skill Icon
    • Skill Icon
    • Skill Icon
  • time-to-grow-up
    2022-02
    Next.js 기반의 온라인 이력서
    • Gatsby를 이용해서 블로그를 만든 후, Next.js에도 관심이 생겨서 튜토리얼을 따라해보다가 온라인 CV로 만들게 되었습니다.
    • Vercel을 이용한 배포가 굉장히 편리해서 놀랐습니다.
    • Skill Icon
    • Skill Icon
  • mongnokam
    2021-12
    Github API를 통해 나만의 저장소 리스트를 만들 수 있는 웹 앱
    • Angular를 이용해 작은 프로젝트를 만들고 싶어, 깃헙 저장소를 리스트로 관리해주는 웹 앱을 계획했습니다.
    • 초기에는 angular-material을 이용해 간단하게 드래그 & 드롭을 구현할 계획이었으나, angular-material이 제공하는 드래그 & 드롭 애드온의 작동 방식이 이해가 되지 않았습니다. 결국 HTML 드래그 앤 드롭 API를 이용했습니다.
    • Firebase를 백엔드 서비스로 이용했고, 배포도 Firebase를 활용했습니다.
    • 스타일링, 리스트 삭제 구현 등 업데이트 예정입니다.
    • Skill Icon
    • Skill Icon
  • tyange-dev-blog
    2021-11
    Gatsby 기반 정적 블로그
    • Gatsby를 기반으로, 타입스크립트를 적용해 만들어진 정적 블로그입니다. (22년 7월 업데이트)
    • 전역 상태 관리 도구로 zustand, 스타일링을 위해 styled-components를 사용했습니다. (22년 7월 업데이트)
    • Gatsby Cloud(Vercel과 거의 유사한 배포 플랫폼)로 배포되었습니다.
    • 이 블로그에 개발과 관련된 글을 쓰고 있습니다.
    • Skill Icon
    • Skill Icon
    • Skill Icon
    • Skill Icon
    • Skill Icon
  • burger-finder
    2021-08
    입력한 재료(들)와 가장 비슷한 햄버거를 찾아주는 웹 앱
    • 처음(?) 제대로 만들어본 React 프로젝트로 평소에 피클을 싫어하는 제가 피클이 들어가지 않는 햄버거를 쉽게 찾으려고 만들었습니다.
    • CRA로 프로젝트를 빌드했습니다.
    • Firebase를 REST API 형식으로 활용하며, 배포도 Firebase로 진행했습니다.
    • 유저 등록 및 로그인을 Firebase Authentication으로 구현했습니다.
    • Skill Icon
    • Skill Icon
  • wto
    2020-08
    주문서 작성에 불편함을 덜어주는 초간단 미니 ERP (heroku 배포의 특성상 로딩에 조금 시간이 걸립니다.)
    • IKEA에서 근무할 때 계획하고 개발된 프로젝트입니다.
      (IKEA의 정식 프로젝트는 아닙니다.)
    • IKEA 주방은 수많은 부품의 조합으로 만들어집니다. 이로 인해 팀의 업무가 주문서 작성 & 검증에 집중되어 있었습니다. 각 부품들의 정확한 이름과 제품 번호, 가격 등을 테이블로 정리하고, 이를 활용해 좀 더 쉽게 주문서를 작성하도록 만들었습니다.
    • Express로 만들어졌으며, 템플릿 엔진으로 pug를 사용합니다.
      (여타의 프론트엔드 프레임워크는 사용되지 않았습니다.)
    • heroku로 배포되었습니다.
    • Skill Icon
    • Skill Icon
    • Skill Icon
    • Skill Icon
  • Longtime
    2019-01
    커플 디데이 계산기
    • 바닐라 자바스크립트로 만들어졌습니다.
    • Unsplash의 API를 이용해 커플 키워드가 들어간 사진을 배경으로 띄웁니다.
    • 입력된 데이터는 브라우저의 localStroage에 저장됩니다.
    • 정적인 하나의 페이지로, Github-Pages로 배포되었습니다.
    • Skill Icon
    • Skill Icon
    • Skill Icon