미리보기
기본 정보

“개발부터 배포, 서비스까지 경험을 바탕으로 성장하겠습니다.” 개인 프로젝트에서 MAU 3,000명 이상 이용하는 서비스와 유저 32,000명이 사용하는 서비스들을 운영 중이고, 데이터에비스 구조를 변경하여 기존 6번 요청이 들어가던 쿼리문을 2번까지 줄인 경험, 초기 로딩 속도 개선 위해 Redis를 이용한 캐싱 CSR, ISR, SSR을 다양하게 활용하여 Lighthouse 기준 30% 이상 성능 향상을 이끌었으며, 다양한 프로젝트에서 팀장으로서 데이터베이스 설계, 배포 자동화, 실제 서비스까지 만들어 이끌어 본 경험이 있습니다.
기술 스택
TypeScript, express.js, NestJS, React, React Native, Next.js, Git, AWS, Docker, PostgreSQL, MongoDB, Linux, Jenkins
프로젝트
스쿨메이트
기타
2023.05. ~ 진행 중
우리만의 커뮤니티, 스쿨메이트
참여자
- 백엔드 (3명) (70%)
- 프론트 (1명) (전체개발)
- 디자인 (1명)
본인 기여도
백엔드 - 전반적인 개발 주도, 코드리뷰, 데이터베이스 설계, 성능개선, 기능구현
프론트 - Figma 디자인 퍼블리싱, Custom Hooks, NextAuth, Webview 앱 연동성 개선
기술스택
- NodeJS, ExpressJS, PostgreSQL, Prisma
- React Native, Expo, NextJS 13 (App Routing), TailwindCSS, Figma
- NEIS API(교육청), Expo Push Notifications, SMS Message API (SOLAPI), OAuth (Instagram, RIOT)
- AWS(EC2, S3, Lambda, Cloudfront), Vercel, Sentry, Docker, NPM
- GA4, AppsFlyer
주요기능
- NEIS API(교육청) 연동을 통한 학교, 학년, 반 정보 제공
- 학교별 커뮤니티 및 통합 커뮤니티 제공
- AWS Lambda 를 이용한 커뮤니티 및 프로필 이미지 리사이징 처리
- Riot, Instagram 등 타사 플랫폼 OAuth 연동을 이용한 콘텐츠 개발
- 프론트, 백엔드 타입 공유를 위한 타입 전용 NPM 패키지 배포 자동화
- Jenkins를 이용한 Docker RED/GREEN 무중단 배포 자동화
- 관리자페이지 (가입인증, 유저목록, 게시글 목록, 신고관리, 주간통계)
성과
- 앱 마케팅을 위한 Deep lnking 처리로 전환률 증진
- 인스타그램을 통한 마케팅으로 출시 2주간 다운로드 수 150건
- CSR, ISR, SSR을 사용하여 게시글 초기 로딩속도 3초 -> 1.9초로 36% 개선
- 기존 9줄이던 주간 통계관련 쿼리문을 FILTER와 COALESCE를 이용한 RAW쿼리로 3줄로 개선
- 타입 전용 패키지배포 자동화로 타입관련 개발 편의성 증가
- 웹뷰기반 React Native 앱에서 키보드 입력 시 fixed position이 따라올라오지 않는 오류 대응
배틀이 (디스코드 봇)
개인
2022.04. ~ 진행 중
디스코드를 편리하게, 배틀이
기술스택
- NextJS 12, NodeJS, ExpressJS, SocketIO, MongoDB, TailwindCSS
- Discord API, Tosspayments(PG), PortOne(PG), Google Adsense
- Docker, Gitlab CI/CD, GA4, AWS Cloudwatch, Sentry
주요기능
- 디스코드 서버 내 정보 시각화
- 구글 애드센스를 이용한 수익화
- 반응형 디자인을 통한 모바일/데스크톱 동시 제공
- 프리미엄 월간/연간 결제기능(Tosspayments, PortOne)연동을 이용한 수익화
- 커스텀 봇 서비스 제공을 위한 Docker 컨테이너를 이용한 분할처리
성과
- DAU 약 100명++ / 사용중인 서버 8,500++ / 가입자 수 32,300++
- Docker Remote API를 이용하여 여러 개의 봇을 분할처리
- 초기에 개발했던 코드의 가독성이 부족으로 V2로 리펙토링 경험
- Gitlab CI/CD를 이용한 자동화 무중단 배포 파이프라인 구축
인천재능고등학교 (재학생용 앱)
인천재능고등학교 공공기관(학교)
2023.02. ~ 2023.12.
학교 재학생용 앱(IOS, Android),웹
기술스택
- React Native, Expo, NextJS, NestJS, SocketIO, NodeJS, ExpressJS, MongoDB
- NEIS API(교육청), Expo Push Notifications, Google Sheet API
- AWS (EC2, S3)
주요기능
- 날자별 급식 확인기능
- 신청곡 신청 (Google Sheet API 연계)
- 학생 셔틀버스 탑승 확인 (QR코드)
- 실시간 셔틀버스 위치 정보 제공 SocketIO 이용 (위치정보 공유용 기사님 앱 개발)
- 관리자페이지 (유저관리, 공지글 관리, 버스 탑승기록)
성과
- 기사님 전용 앱에서 실시간 GPS 정보를 SocketIO로 유저 클라이언트에 전송
- 앱에서 카메라를 통한 QR코드 확인으로 학생별 탑승확인 기능
프리랜서 프로젝트
기타
2023.02. ~ 진행 중
풀스택(웹) 프로젝트 (1건)
- 학원 출결 관리 시스템 (React, Next.JS)
디스코드 봇 프로젝트 (2건)
- NFT 홀더(보유자) 확인 프로젝트 (Klaytn, MetaMask, Kaikas, Node.JS, Express.JS)
포트폴리오
URL
교육
가천대학교
대학교(학사) | 게임·영상학과 (프로그래밍)
2023.03. ~ 현재 | 재학 중
자기소개
경험을 바탕으로 성장하는 개발자 김도현입니다.
중학교 때부터 게임을 좋아하여 게임을 해왔는데 여기에서 "게임의 전적을 쉽게 볼 수 있는 방법은 없을까?"라는 생각에 디스코드라는 음성 채팅 플랫폼에서 처음으로 전적을 쉽게 확인하는 챗봇을 파이썬으로 만드는 것을 시작으로 서버를 쉽게 관리하는 봇을 만들어 배포하고, 이것을 웹으로 하면 조금 더 편리하게 사용할 수 있지 않을까 라는 생각에 혼자 필요한 것을 찾아가며 자바스크립트로 기존 파이썬 코드를 마이그레이션 하며 개발 분야에 적극적으로 공부하기 시작했습니다.
저는 현재 풀스택 개발자로, 프로젝트를 기획부터 설계, 개발, 마케팅까지 해보았으며 결제, 외부 API 연동, AWS, 배포 자동화 등을 포함한 다양한 기술을 경험했습니다.
실제 서비스를 운영하면서 서버 구축, 보안 설정, 도메인 연결, 배포 자동화 시스템 구축, 안드로이드 IOS 배포, 심사까지 해보며 많은 어려움이 있었지만 서비스를 해보고 사용자들의 피드백을 받아 수정해 나가며 운영을 하고 재미를 느껴 개발 공부를 지속해서 하고 있습니다.
이 과정에서 많은 검색으로 개발적 지식을 습득하고, 프로덕션에서 생기는 문제들을 해결해 왔습니다. 이 중 기억에 남는 몇 가지 문제를 해결하거나 성능을 최적화한 경험이 있습니다.
웹 뷰 기반 앱 프로젝트에서는 초기 로딩 속도가 중요해 기존 SSR로 만들어진 게시글 페이지는 변동성이 거이 없기에 ISR로 변경하고, 댓글 기능과 같이 자주 변동되는 컴포넌트를 CSR로 변경하여 Lighthouse 기준 첫 페이지 로딩 속도를 3초 -> 1.9초로 36% 개선해 본 경험이 있습니다. 이를 통하여 페이지별로 적절한 CSR, ISR, SSR의 사용법을 이해했습니다.
이 앱을 배포하면서 다양한 기능으로 심사에 많은 어려움이 있었지만, 심사 중 요구하는 기능들을 추가로 개발해 보며 다양한 기능 구현을 경험해 볼 수 있었습니다.
어드민 페이지에서는 주간 통계를 필요로 하는 기능이 필요했는데, 기존 최근 1주, 2주 데이터 전체의 개수를 불러와 계산하는 로직을 FILTER와 COALESCE 쿼리문을 이용하여 데이터 생성일자를 기준으로 2주간 데이터 개수의 차이를 퍼센트로 계산하여 반환하는 쿼리문을 작성하여 서버 성능을 최적화해 보았습니다.
디스코드 봇 프로젝트에서는 커스텀 봇이라는 기능이 필요했는데, 봇을 커스텀 하기 위해서는 각각 다른 봇 정보로 디스코드 서버에 연결이 필요하여서 Docker를 이용하여 커스텀 봇 전용 이미지를 만들어 각각 독립화된 컨테이너 위에서 동작하게 만들었습니다. 여기에서 Docker 전용 서버가 필요했는데 메인 API 서버에서 Docker Remote API를 이용하여 컨테이너별 상태 모니터링 및 정지, 삭제 기능을 개발했습니다.