채용공고 올리기

김동현님을 응원해보세요!

이직/구직 중이에요
창의적
커뮤니케이션
자기 주도적
문제 해결사
열정적

미리보기

기본 정보

이름
김동현
직업
프론트엔드 개발자
간단 소개

안녕하세요, 호기심을 바탕으로 지속적으로 학습하며 원리를 이해하고 기술을 사용하는 프론트엔드 개발자 김동현입니다. c/c++ 로우레벨 프로젝트 기반 학습을 통해 CS에 대한 탄탄한 기초를 쌓았습니다. 기반 지식을 토대로 새로운 기술을 빠르게 학습할 수 있으며 이해를 바탕으로 문제가 발생했을 시 빠르게 해결이 가능합니다.

경력

회사명

주식회사불마켓랩스(BullMarketLabsCo.,Ltd.)

직급 | 부서 | 근무 유형

Frontend Engineer

근무 기간

2024.07. ~ 2024.11. (5개월)

담당 업무

IAMBIT 코인 거래소 개발

Vue2 + WebWorker + Event Bus 구조의 코인 현물,선물 통합 거래소 시스템을 Next.js14 + MobX로 마이그레이션

사용 기술 : typescript, Next.js14, tailwindCss, react-query, mobx-react-lite

next.js의 SSR, RSC를 이해하고 partial hydration적용

배포 링크: https://www.iambit.com/futures/?coin=E-BTC-USDT


레거시 코드의 비즈니스 로직, 웹소켓 로직, 뷰 로직 분리 및 재구조화
  • 레거시, 마이그레이션 계획 플로우차트 구현 후 발표

  • layout.tsx의 mount, unmount에 class 생성/소멸 로직을 추가해 컴포넌트 생명주기와 동기화

  • 차트, 호가창, 거래기록 채널별 store 구현으로 비즈니스 로직 분리

  • websocket 연결, 채널 구독/구독 취소 관리 class 구현

  • 선택 코인 변경에 따른 비동기 작업 순서를 mobx when() 사용해 조정

TradingView PoC, 라이센스 취득 및 실시간 차트 구현
  • 기업용 라이센스 컨택 및 취득

  • websocket data기반 캔들스틱 차트 구현

  • 공통 api, websocket 연결 및 구독 후 차트 렌더링되게 비동기 순서 보장

  • 차트 api에 websocket 구독 바인딩

  • 디자인에 맞게 커스텀 및 모달, 드롭다운과 같이 outsideClick action에 호환되게 설정

실시간 호가 테이블, 거래 기록 테이블 구현
  • 기본, 구매, 판매별 보기 타입 변경 sort 커스텀훅으로 재사용 가능하게 구현

  • 가격의 소수점 자리 변경에 따른 websocket 구독/구독 취소 구현

  • pretendard font의 openType속성을 적용해 숫자 가로 고정폭 적용

  • 누적 양에 기반한 테이블 배경 막대차트 구현

헤더, 코인 검색 드롭다운 구현
  • 이름, 가격, 등락률 기준 filter 커스텀훅으로 재사용 가능하게 구현

  • 시가, 변동률 websocket 데이터 반영

  • favorite, 현물, 선물에 재사용 가능한 ui table component설계 후 적용

  • 현재 코인, 타겟 코인, 현물/선물 의 특성에 맞게 페이지 라우팅, 현재 코인 변경 구현

선물/현물 거래소 공통 컴포넌트, store 재사용 가능하게 구현
  • 호가 테이블, 거래 기록, 헤더, 코인 검색 드롭다운, 트레이딩 뷰 차트 컴포넌트 재사용

  • websocket 구독 관련 비즈니스 로직이 들어간 store 재사용

styled component에서 tailwindcss로 마이그레이션
  • runtime css in js와 SSR의 상관관계에 대한 세션 발표

  • 기존 styled component로 만들어진 레이아웃 충돌 없이 마이그레이션

프로젝트

프로젝트명

mejai.kr

소속/기관명

운영중인 프로젝트

프로젝트 기간

2024.02. ~ 2024.10.

프로젝트 내용

League of Legends 게임 전적을 Riot API를 통해 시각화하는 서비스

https://github.com/mejaiKR/Frontend
사용 기술 : typescript, Next.js14, tailwindCss, shadcn, react-query

배포 링크: mejai.kr


UI에 맞는 data fetching을 설계
  • 기존 기획인 연간 게임 정보가 아닌 월간 게임 정보를 가져오기 위해 API를 분할

  • 사용자가 carousel을 스크롤할 때 다음 월간 정보를 fetch하게 lazy loading을 구현

  • https://github.com/mejaiKR/Frontend/pull/4

사용자 친화적 기능 구현
수익화 모델 도입
검색 추천 기능 구현
유저 정보, 스트릭 갱신 버튼 구현
프로젝트명

vanilla-js-SPA-starter-kit

소속/기관명

개인

프로젝트 기간

2024.01. ~ 2024.01.

프로젝트 내용

vanilla JS로 SPA를 만들기 위한 스타터킷

https://github.com/donghyun1998/vanilla-js-SPA-starter-kit


vanilla JS로 SPA를 만들기 위해 동적렌더링, 상태관리, 라우팅을 구현
프로젝트명

ping-pong

소속/기관명

42seoul

프로젝트 기간

2024.01. ~ 2024.03.

프로젝트 내용

실시간 핑퐁게임 서비스
https://github.com/GunGonGamLee/ft_transcendence
사용 기술: vanilla-js-SPA-starter-kit, Bootstrap, vite


  • Websocket을 이용한 실시간 게임 방 리스트, 대기 방, 대진표, 토너먼트 게임 구현

  • 재사용 가능한 대진표 페이지 컴포넌트를 설계하여 예선 및 결승 대기방에서 동시에 사용하도록 구현

  • Websocket으로 게임의 실시간 공, 바의 위치를 받아와 canvas에 반영

대외활동

활동명

42seoul 8기

소속/기관명

이노베이션 아카데미

연도

내용

Ecole42의 2년 교육 과정을 1년 4개월만에 조기 수료 (2022/11 - 2024/03)

C, C++, JavaScript를 활용한 프로젝트 기반 학습을 통해 CS를 직접 경험하며 학습
매월 160시간 이상의 교육 과정을 이수했으며, 해당 기수에서 상위 10% 성적으로 수료

동료 학습, 피어 리뷰를 통해 의사소통 능력 강화


minishell : 쉘을 구현하면서 멀티 프로세스, 복잡한 문자열 파싱 경험
philosopher : 멀티 쓰레드, 뮤텍스를 사용해 철학자 문제 구현
cpp module : C++로 예제를 구현하며 OOP 이해
webserv: I/O멀티플렉싱 함수 kqueue를 사용한 http 비동기 웹 서버 구현
inception : wordpress/nginx/mariaDB를 docker-compose로 서비스 구성
ft_transcendence : vanilla JS로 SPA구현, 실시간 핑퐁게임 웹 클라이언트 구현

포트폴리오

URL

link

github

깃허브
link

dev blog

티스토리

자기소개

자기소개

호기심이 많습니다

리액트를 스터디하면서 재조정 스케줄러에 대해 탐구했습니다. 특히 리액트의 비동기 메커니즘과 사용자 인터랙션의 우선 처리 방식이 매우 흥미로웠습니다.

비동기는 작업들을 큐잉해서 순차적으로 처리하는 방식인데, 리액트는 어떻게 애니메이션 같은 사용자 인터랙션 작업을 우선적으로 비동기 처리할 수 있는지 궁금했습니다.

이를 더 깊이 파고들면서 리액트의 작업 큐가 우선순위 큐로 구현되어 있다는 사실을 발견했습니다. 이러한 구조적 이해는 리액트의 성능 최적화 방식을 보다 명확하게 파악하는 데 큰 도움이 되었습니다.

성과를 달성하기 위해 주도적으로 일합니다

입사 후 온보딩 없이 프로덕트의 개선점을 찾아 tailwindcss migration부터 시작해 Websocket 관리 로직 재구조화까지 필요한 업무 티켓을 스스로 생성해 책임지고 완료했습니다.

스프린트 기반 애자일 프로세스에 적응하며 업무 우선순위를 파악하고 스프린트 일정 내에 업무를 완수해 수습 기간을 통과했습니다.

완성도 높은 프로덕트를 만들기 위해 자발적으로 찾아 건의후 도입합니다. 색상 대비 정도, 폰트 가로폭 등 개선점이 보이면 팀의 리소스를 고려하며 상의해 개선한 경험이 있습니다.

문제 해결 능력이 뛰어납니다

사이드 프로젝트에서 얻은 비동기 큐에 대한 지식을 기반으로 (https://donghyk2.tistory.com/151)

복잡한 비동기 작업이 혼재된 거래소 시스템을 제작하며 생긴 문제들을 확실한 이해를 바탕으로 해결했습니다. 특히 선물거래소 페이지에서 주 코인 변경 시 우선적으로 처리해야 하는 비동기 작업들을 mobx when()과 promise를 사용해 개발 완료했습니다.

트레이딩 뷰 라이브러리를 사용하며 매크로태스크에 콜백을 넣어야 하는 이유를 이해하고 차트 분봉이 그려지지 않는 이슈를 해결했습니다.

웹소켓 매니저 재구조화에 앞서 레거시, 리팩토링 버전에 대한 플로우 차트를 그려서 발표 후 성공적으로 구현했습니다.

개발 서버 장애 상황에서 일정 준수를 위해 목업 로컬 소켓 서버를 제작하여 주어진 업무를 해결했습니다.

기술 스택

기술 스택

JavaScript, HTML/CSS, TypeScript, React, Next.js, tailwind-css, react-query, C, C++, Docker, docker-compose, Git

교육

소속/기관명

유원대학교

종류 | 전공

대학교(학사) | 정보통신보안학과

재학 기간 | 재학 상태

2017.02. ~ 2024.02. | 졸업

댓글