About Jinsu Kim

Résumé

Jinsu Kim

Name
김진수
ID/Nickname
item4
Addr
경기도 부천시
Email
resume@jinsu.kim
Objective
웹 개발자
Links

Summary

빠르게 성장하는 스타트업에서 백엔드 위주로 프론트까지 개발이 가능한 풀스택 지향 개발자. 전통적인서버, 범용 클라우드, Docker를 이용하여 테스트, CI, 배포, 모니터링등 전반적인 서비스 영역을 경험하고 개선이 가능.

Technologies

Languages

Web Frontend

Backend and CLI

Networking and Crawling

Database and ORM

Code and Code Quality Managing

Documentation and Static Website

Work Experiences

브랜더진

포지션
백엔드 개발자
근무기간
부터 까지
업무내용
  • 초기 Django로만 작성된 코드를 DRF를 이용하여 상당부분 리팩토링하였습니다.
  • 실서버 배포시의 위험 방지를 위해 백엔드 구동환경을 Docker로 제한하고, QA용 베타 서버 시스템을 도입하였습니다.
  • 프론트엔드 개발자와의 원활한 의사소통을 위해 drf-yasg를 이용한 Swagger문서를 자동 생성하여 협업하였습니다.
  • 오작동하던 가상계좌 결제를 리팩토링하여 정상화시키고 보안 결함을 점검하였으며 물류 공급처와의 정산시스템을 확립하였습니다.
  • 기존 파일 첨부 시스템이 대응하지 못하였던 HEIC 타입 이미지를 지원하도록 수정하였습니다.
  • 서비스의 핵심 기능인 인플루언서 시스템과 Look 등의 인플루언서 기반 서비스가 가능하도록 백엔드 API를 개발하여 실서비스에 도입하였습니다.
  • Curation, Banner등의 기능을 개발하여 보다 여러가지 방법으로 상품을 소개할 수 있도록 백엔드 API를 개발하여 실서비스에 도입하였습니다.
  • 보다 다양한 마케팅 전략을 지원하기 위하여 할인행사 기능, 쿠폰기능, 인플루언서 연동 기능을 개발하여 실서비스에 도입하였습니다.
  • 고객들의 편의성을 위하여 관련상품 및 추천상품 기능이 개발되었고, 목록에서의 상품 필터 및 정렬 기능, 키워드 기반 검색 기능을 개발하여 실서비스에 도입하였습니다.
  • 보다 나은 정보 제공을 위해 고객, 브랜드, 회사 운영진들에게 카카오 알림톡이나 Slack 메시지를 보내서 관리의 편의성을 도모하는 기능을 실서비스에 도입하였습니다.
  • 실 접속자 증가에 따른 서버 부하를 분산하기 위해 인스턴스 업스케일과 Elasticache를 도입하였습니다.
  • 프론트엔드 개발 공수가 부족한 상황에서는 Vue.js와 TypeScript를 이용하여 서비스 개선에 참여했습니다.
사용된 기술
  • Python
  • Django
  • django-rest-framework
  • drf-yasg
  • Swagger
  • AWS EC2
  • AWS ECS
  • AWS S3
  • AWS Elasticache
  • AWS CloudWatch
  • Docker
  • Circle-CI
  • Sentry
  • Slack API
  • TypeScript
  • Vue.js

XS Inc.

포지션
웹 개발 인턴
근무기간
부터 까지
업무내용
  • 인터넷카페 관련 프로그램의 내부 배포 관리 시스템, Ready-APP을 WSGI 서버와 nginx를 이용하여 안정화시켰습니다.
  • 내부 관리 시스템인 ReadyBoot의 관리자 인터페이스를 개선하였습니다.
  • 내부 인증 서버의 보안성을 향상시키고 관리 기능을 추가하였습니다.
사용된 기술
  • Python
  • Django
  • Gunicorn
  • nginx
  • PHP
  • CodeIgniter 3
  • JavaScript
  • BackboneJS

비즈원

포지션
웹 개발자
근무기간
부터 까지
업무내용
  • 웹에이전시 사내 솔루션용 일정관리 프로그램 및 웹앱용 페이지, 사내 내부용 전자결재 솔루션을 개발하여 사내 행정 및 고객용 서비스에 접목시켰습니다.
  • 쇼핑몰 솔루션의 가격 연산부를 수정하고 보안 취약점 수정 등의 작업을 하여 자체 쇼핑몰 솔루션의 내부 구조를 개선하였습니다.
  • 기존 사내 솔루션의 SMS 연동 부분을 개량하고 쏜다넷, 가비아의 SMS 기능을 사내 솔루션과 연동하여 자체 솔루션에서 보다 많은 SMS 벤더를 지원할 수 있게 되었습니다.
  • 그 외에도 이미지링크(특수형태의 쇼핑몰 개발), 세마스포츠마케팅, 오앤오컨설팅 등 여러 사이트의 개발에 참여하였습니다.
사용된 기술
  • PHP
  • JavaScirpt
  • jQuery

Organizations

Software Maestro 5th

소속기간
부터 까지
활동내용
  • 미래창조과학부, NIPA가 주관하는 소프트웨어 마에스트로 5기 연수생으로 활동했습니다.
  • 1단계 연수생 선발 경쟁률은 약 6.8:1이었고, Cliche.io 팀에서 활동했습니다.
사용된 기술
  • Python 3
  • Flask
  • oauthlib
  • SQLAlchemy
  • Click
  • pytest

Snoin

소속기간
부터 까지
활동내용
  • 웹 서비스 개발 동호회인 Snoin에서 개발자로 활동하고 있습니다.
  • 인터넷 24시간 음악 방송국인 KKaul Cast, 파일 공유 서비스인 Snoin 파일창고 등의 서비스를 개발하였습니다.
사용된 기술
  • Python
  • Flask
  • SQLAlchemy
  • Click
  • pytest
  • Wand
  • PHP 5
  • JavaScript
  • jQuery

Participated Projects

성 키우기 도구모음

저장소
https://github.com/item4net/growcastle/
참여기간
부터 까지
프로젝트 소개
  • 심심풀이로 하고 있는 모바일 게임 <성 키우기>와 관련된 계산을 도와주는 WebApp입니다.
사용된 기술
  • Create-React-App
  • TypeScript
  • React

innocent static API

저장소
https://github.com/item4net
참여기간
부터 까지
프로젝트 소개
  • 기존에 운영하던 개인 홈페이지를 없애고 그 자리에 만든 API 서비스입니다.
  • 한국 기상청의 AWS 관측기 정보를 JSON으로 파싱하여 제공하고 있습니다.
  • 한국의 국경일 정보를 JSON 형식으로 제공하고 있습니다.
사용된 기술
  • nginx
  • Rust

aiohttp-doh

저장소
https://github.com/item4/aiohttp-doh/
참여기간
부터 까지
프로젝트 소개
  • DNS 보안 기술인 DNS-over-HTTPS를 aiohttp에서 사용할 수 있게 하는 구현체입니다.
  • 이 라이브러리를 사용하면 간편하게 DNS 패킷 도청 및 변조를 방지할 수 있습니다.
사용된 기술
  • Python 3
  • asyncio
  • aiohttp

yui

저장소
https://github.com/item4/yui
참여기간
부터 까지
프로젝트 소개
  • Slack 대화방에서 사용 가능한 다목적 봇입니다.
  • Python 3로 개발되고 있으며, 추후 코어를 분리하여 프레임워크화 할 계획입니다.
  • asyncio를 이용한 비동기 프로그램으로 작성되어있습니다.
  • Python AST에 기반한 계산 기능을 지원합니다.
  • SQLAlchemy와 결합되어 있어서 쉽게 ORM기반의 DB사용이 가능합니다.
  • mypy를 사용해서 정적 타입검사를 하고, pytest등을 통해 품질 관리에 노력하고 있습니다.
사용된 기술
  • Python 3
  • ast
  • asyncio
  • aiohttp
  • SQLALchemy
  • Alembic
  • lxml
  • pyppeteer
  • mypy
  • pytest

TalkYou

참여기간
부터 까지
프로젝트 소개
  • 페이스북 기반 KAIST 커뮤니티입니다.
  • 초창기에는 Python Django REST Framework 기반의 Backend와 React 기반의 Frontend로 구성되어 있었습니다.
  • Frontend 기반을 잡고 API 서버와 통신 결과 처리 작업을 했었습니다.
사용된 기술
  • Python
  • Django
  • django-rest-framework
  • React
  • redux
  • axios

후니홀릭 수능작전소

참여기간
부터 까지
프로젝트 소개
  • 외주로 개발한 학원 홈페이지입니다.
  • IE 접속도 고려 대상이었기에 최신 Frontend 기술을 사용할 수 없어 jQuery로 작성되었습니다.
  • Frontend는 Webpack+babel+SCSS를 통합적으로 사용하는 기반을 구축했습니다.
  • Backend는 Python 3과 Flask, SQLAlchemy를 통해 사이트 전체를 개발하였습니다.
사용된 기술
  • Python 3
  • webpack
  • SCSS
  • Flask
  • SQLAlchemy
  • jQuery

ugoira

저장소
https://github.com/item4/ugoira
참여기간
부터 까지
프로젝트 소개
  • 일본의 동인 이미지 사이트 Pixiv에서 제공하는 Ugoira(움직이는 이미지)는 일반적인 이미지 출력법을 사용하지 않아 통상적인 방법으로 다운로드 할 수 없는데, 이를 다운로드 할 수 있도록 하는 프로그램입니다.
  • Python과 ImageMagick을 커맨드 라인에서 사용 가능한 환경이라면 사용 가능합니다.
  • GIF 이미지 형식과 ZIP 압축 형식을 지원합니다.
  • Travis CI를 통해 자동 테스트를 하고 있으며, readthedocs에도 사용법 및 API에 대한 문서가 업로드 되어 있습니다.
사용된 기술
  • Python 3
  • Wand
  • Click
  • requests
  • pytest

just-news

저장소
https://github.com/disjukr/just-news/
참여기간
부터 까지
프로젝트 소개
  • 최종찬(disjukr)님이 개발하신 Browser User Script입니다.
  • User Script를 사용 가능한 환경이라면 어디서나 국내 각종 언론사에서 광고를 제외한 뉴스 본문만 볼 수 있도록 만들어 줍니다.
  • Travis CI를 통한 자동 릴리즈 시스템을 개발하였고, 최근에 GitHub Actions 기반으로 리팩토링하였습니다.
사용된 기술
  • JavaScript
  • ECMAScript
  • Travis-CI
  • GitHub Actions

JS: The Right Way

저장소
https://github.com/braziljs/js-the-right-way
참여기간
부터 까지
프로젝트 소개
  • JavaScript를 잘 활용할 수 있는 방법을 소개하는 사이트인 JS: The Right Way를 한국어로 번역했습니다.
사용된 기술
  • JavaScript
  • Grunt

cliche.io

저장소
https://github.com/clicheio/cliche
참여기간
부터 까지
프로젝트 소개
  • 소프트웨어 마에스트로 1단계 프로젝트입니다. 1단계 종료 후에도 한동안 지속되었습니다.
  • 서브컬쳐 데이터를 이용한 온톨로지(Ontology) 및 검색, 시멘틱 웹(Semantic Web)을 다룹니다.
사용된 기술
  • Python 3
  • Flask
  • SQLAlchemy
  • Celery
  • Click
  • Sphinx
  • pytest

DogBot

저장소
https://github.com/item4/DogBot/
참여기간
부터 까지
프로젝트 소개
  • Multi-thread IRC Bot입니다.
  • 다중 서버 접속과 다중 명령어 동시 실행을 지원합니다.
사용된 기술
  • Python

XNova

참여기간
부터 까지
프로젝트 소개
  • PHP와 JavaScript로 개발된 우주전쟁 배경의 전략시뮬레이션 웹 게임입니다.
  • 운영 당시 한국 내 동일 장르 게임 중 세 손가락 안에 꼽히는 접속자 수와 사용자 수를 보유했었습니다.
  • 동시접속과 실시간성 이벤트 처리 알고리즘, 보안 결함 등의 다양한 부분을 개선했었습니다.
사용된 기술
  • PHP
  • JavaScript

Snoin FileStorage

참여기간
부터 까지
프로젝트 소개
  • Snoin에서 고등학생 때 만들어서 2014년까지 운영해왔던 클라우드 파일 저장소입니다.
  • 각자 자신의 계정을 두고 파일을 올리고 다운로드 할 수 있으며, 파일을 관리할 수도 있습니다.
  • 한때 월 1,000GB 이상의 전송량을 처리했었습니다.
사용된 기술
  • PHP
  • Python 3
  • Wand
  • JavaScript
  • jQuery
  • jQuery UI

Untouchable

참여기간
부터 까지
프로젝트 소개
  • 중학생때 만들어서 운영했었던 게이미피케이션(Gamification)이 적용된 미스터리 소설 플랫폼입니다.
  • 소설에 사용자 참여 요소를 도입해 몰입도를 끌어올리고 있습니다.
사용된 기술
  • PHP
  • JavaScript

Fishing Arena

참여기간
부터 까지
프로젝트 소개
  • 중학생 때 만들어서 운영했던 간단한 낚시 관련 웹게임입니다.
  • 당시 국내 인디(indie) 웹 게임 중 자체 개발 된 몇 없는 게임이었습니다.
  • 2010년, 당시 게임물등급위원회의 시정요청으로 운영이 중지되었는데, 이 시기에 과도한 심의요청으로 국내 인디 웹 게임은 거의 다 운영을 정지하게 되었습니다.
사용된 기술
  • PHP
  • JavaScript

Open-Source Contributions

Activities

ZeroBoard4 보안 이슈 패치 발표

PHP로 개발된 유명 사이트 빌더 솔루션인 ZeroBoard 4의 보안상 문제점을 발견하여 수정법을 공개했습니다. 이 패치는 COOKIE를 통해 로그인을 갈취할 수 있는 문제, DB 접속 정보를 갈취할 수 있는 문제를 수정합니다. (현재는 ZeroBoard4 웹사이트가 폐쇄되어 확인할 수 없습니다.)

인사이트 출판사 알고리즘 문제 풀이 이벤트

인사이트 출판사에서 진행한 알고리즘 문제 풀이 이벤트에 참가해서 1등 상품인 HP 서버를 받았습니다.

ZeroBoard4 보안 이슈 패치 발표

PHP로 개발된 유명 사이트 빌더 솔루션인 ZeroBoard 4의 보안상 문제점을 발견하여 수정법을 공개했습니다. 이 패치는 SQL-Injection 취약점을 수정합니다. (현재는 ZeroBoard4 웹사이트가 폐쇄되어 확인할 수 없습니다.)

LG CNS IT드림프로젝트 2회

2회 장학생으로 선발되어 IT 교육 장학금을 받아 MySQL에 대해 교육받았습니다.

Disorders

선택적 함구증 (Selective Mutism)

  • 가족 외의 사람과 말(Speech)로써 대화할 수 없습니다.
  • 다른 사람의 말을 듣는 것은 가능하지만 입으로 소리를 내는 행위를 하지 못합니다.
  • 강제로 말을 시켜도 말을 할 수 없을 뿐만 아니라, 매우 강한 스트레스를 받습니다.
  • 이 문제를 해결하기 위해 상급종합병원에서 특진의의 진료를 꾸준히 받고 있습니다.
  • 이 문제는 필담이나 채팅등의 문자적 의사소통 수단을 사용하면 의사소통이 지장 없이 가능합니다.
  • 실제로 소프트웨어 마에스트로 과정에서는 말을 못하는 관계로 면접부터 멘토링까지 전체 필담 내지는 채팅으로 무난하게 진행하였습니다.

불안장애 (Anxiety Disorder)

  • 불안장애 전반의 여러 증상을 매우 강하게 오랫동안 겪고 있습니다.
  • 이로 인해 공황장애, 강박적인 사고 경향, 대인기피경향 등을 보입니다.
  • 이 문제를 해결하기 위해 상급종합병원에서 특진의의 진료와 약물 치료를 꾸준히 받고 있습니다.
  • 상대적으로 덜 강압적이고 편안한 분위기에서 증세가 덜하다는 경험적 사례가 있습니다.