About Jinsu Kim

Résumé

Technologies

Web Frontend

  • HTML5
  • CSS
  • Sass/SCSS
  • JavaScript
  • EcmaScript 6+
  • Webpack

Backend

  • Python
  • nginx
  • PHP 5

Python-specifics

  • aiohttp
  • Flask
  • SQLAlchemy
  • requests
  • Click
  • lxml
  • pytest
  • mypy

Database

  • MySQL/MariaDB
  • PostgreSQL

DVCS

  • Git
  • GitHub
  • BitBucket
  • GitLab

Work Experiences

XS Inc. (2014-12부터 2015-01까지)

XS. Inc에서 웹 개발자 인턴으로 근무하였습니다.

내부 배포 관리 시스템인 Ready-APP의 안정성을 향상시켰습니다.

내부 관리 시스템인 ReadyBoot의 관리자 인터페이스를 변경하였습니다.

내부 인증 서버의 보안성을 향상시키고 관리 기능을 추가하였습니다.

  • Python
  • Django
  • Gunicorn
  • PHP
  • CodeIgniter 3
  • JavaScript
  • Backbone

비즈원 (2012-11부터 2014-01까지)

웹 에이전시에서 PHP 담당 개발자로 근무했습니다.

비즈원 사내 솔루션용 일정관리 프로그램 및 웹앱용 페이지, 사내 내부용 전자결재 솔루션을 개발하여 사내 행정 및 고객용 서비스에도 접목되었습니다.

쇼핑몰 솔루션 가격 연산부 수정, 보안 취약점 수정 등의 작업을 하여 자체 쇼핑몰 솔루션의 내부 구조를 개선하였습니다.

기존 사내 솔루션의 SMS 연동 부분을 개량하고 쏜다넷, 가비아의 SMS 기능을 사내 솔루션과 연동하여 자체 솔루션에서 보다 많은 SMS 벤더를 지원할 수 있게 되었습니다.

그 외에도 이미지링크(특수형태의 쇼핑몰 개발), 세마스포츠마케팅, 오앤오컨설팅 등 여러 사이트의 개발에 참여하였습니다.

  • PHP
  • JavaScirpt
  • jQuery

Organizations

아카데미 (2015년부터 계속)

넥슨사의 온라인 게임 클로저스의 서클(게임 내 소모임), '아카데미'에서 부회장으로 활동하고 있습니다.

아카데미 서클은 게임 플레이에서 멈추지 않고 게임 역기획등을 주력으로 하고 있으며, 해외 플레이어와의 교류도 진행하고 있습니다.

서클 전반 관리 및 일본인 서클원들과의 의사소통을 담당하고 있습니다.

  • 일본어

Software Maestro 5th (2014-07부터 2014-11까지)

미래창조과학부, NIPA가 주관하는 소프트웨어 마에스트로 5기 연수생으로 활동했습니다.

1단계 연수생 선발 경쟁률은 약 6.8:1이었고, Cliche.io 팀에서 활동했습니다.

  • Python 3
  • Flask
  • OAuth
  • SQLAlchemy
  • Click
  • py.test

Snoin (2006년부터 계속)

웹 서비스 개발 동호회인 Snoin에서 개발자로 활동하고 있습니다.

인터넷 24시간 음악 방송국인 KKaul Cast, 파일 공유 서비스인 Snoin 파일창고 등의 서비스를 개발하였습니다.

  • Python
  • Flask
  • SQLAlchemy
  • Click
  • py.test
  • Wand
  • PHP 5
  • JavaScript
  • jQuery

Participated Projects

Yui (저장소) (2017년 06월 10일부터 계속)

개인용 Slack 대화방을 위한 봇입니다.

Python으로 개발되고 있으며, 추후 코어를 분리하여 프레임워크화 할 계획입니다.

asyncio를 이용한 비동기 프로그램으로 작성되어있습니다.

Python AST에 기반한 계산 기능을 지원합니다.

SQLAlchemy와 결합되어 있어서 쉽게 ORM기반의 DB사용이 가능합니다.

mypy를 사용해서 정적 타입검사를 하고, pytest등을 통해 품질 관리에 노력하고 있습니다.

  • Python 3
  • ast
  • asyncio
  • aiohttp
  • SQLALchemy
  • Alembic
  • lxml
  • mypy
  • pytest

TalkYou (2017년 02월부터 2017년 04월까지)

페이스북 기반 KAIST 커뮤니티입니다.

Python Django REST Framework 기반의 Backend와 React 기반의 Frontend로 구성되어 있습니다.

주로 Frontend 기반을 잡고 API 서버와 통신 결과 처리 작업을 했습니다.

  • Python
  • Django
  • DRF
  • React
  • Redux
  • axios

후니홀릭 수능작전소 (2016년 09월부터 2017년 02월까지)

외주로 개발한 학원 홈페이지입니다.

IE를 통한 접속도 고려 대상이었기에 최신 Frontend 기술 중 IE 친화적인 것을 선별적으로 적용했습니다.

Frontend는 Webpack+babel+SCSS를 통합적으로 사용할 수 있도록 기반을 구축했습니다.

Backend는 Python 3과 Flask, SQLAlchemy를 통해 사이트를 전체 개발하였습니다.

  • Python 3
  • Webpack
  • Babel
  • SCSS
  • Flask
  • SQLAlchemy

ugoira (저장소) (2015년 11월 18일부터 계속)

일본의 동인 이미지 사이트 Pixiv에서 제공하는 Ugoira(움직이는 이미지)는 일반적인 이미지 출력법을 사용하지 않아 통상적인 방법으로 다운로드 할 수 없는데, 이를 다운로드 할 수 있도록 하는 프로그램입니다.

Python과 ImageMagick을 커맨드 라인에서 사용 가능한 환경이라면 사용 가능합니다.

GIF 이미지 형식과 ZIP 압축 형식을 지원합니다.

Travis CI를 통해 자동 테스트를 하고 있으며, readthedocs에도 사용법 및 API에 대한 문서가 업로드 되어 있습니다.

  • Python 3
  • Wand
  • Click
  • requests
  • py.test

just-news (저장소) (2015년 10월 13일부터 계속)

최종찬(disjukr)님이 개발하신 Browser User Script입니다.

User Script를 사용 가능한 환경이라면 어디서나 국내 각종 언론사에서 본문만 볼 수 있도록 만들어 줍니다.

Travis CI를 통한 자동 릴리즈 시스템을 개발하였습니다.

  • JavaScript
  • EcmaScript 6
  • jQuery
  • Webpack
  • Travis-CI

JS: The Right Way (저장소) (2015년 07월 05일부터 계속)

JavaScript를 잘 활용할 수 있는 방법을 소개하는 사이트인 JS: The Right Way의 i18n을 최초로 제안하고(#185) 한국어(ko-kr)의 번역의 전체 지휘를 담당했습니다.

현재 이 프로젝트는 7개국어로 번역되어 있습니다.

  • JavaScript
  • Grunt

cliche.io (저장소) (2014년 07월 01일부터 2015년 05월 10일까지)

소프트웨어 마에스트로 1단계 프로젝트입니다. 1단계 종료 후에도 계속 진행중입니다.

서브컬쳐 데이터를 이용한 온톨로지(Ontology) 및 검색, 시멘틱 웹(Semantic Web)을 다룹니다.

  • Python 3
  • Flask
  • SQLAlchemy
  • Celery
  • Click
  • Sphinx
  • test.py

DogBot (저장소) (2013년 01월 27일부터 2015년 01월 23잉ㄹ까지)

Multi-thread IRC Bot입니다. 다중 서버 접속과 다중 명령어 동시 실행을 지원합니다.

  • Python

Snoin FileStorage (2009년부터 2014년까지)

Snoin에서 고등학생 때 만들어서 2014년까지 운영해왔던 클라우드 파일 저장소입니다.

각자 자신의 계정을 두고 파일을 올리고 다운로드 할 수 있으며, 파일을 관리할 수도 있습니다.

한때 월 1,000GB 이상의 전송량을 감당했었습니다.

  • PHP
  • Python 3
  • Wand
  • JavaScript
  • jQuery
  • jQuery UI

XNova (2009년부터 2010년 08월까지)

PHP와 JavaScript로 개발된 우주전쟁 배경의 전략시뮬레이션 웹 게임입니다.

운영 당시 한국 내 동일 장르 게임 중 세 손가락 안에 꼽히는 접속자 수와 사용자 수를 보유했었습니다.

동시접속과 실시간성 이벤트 처리 알고리즘, 보안 결함 등의 다양한 부분을 개선했었습니다.

  • PHP
  • JavaScript

Untouchable (2005년부터 2015년까지)

중학교 때부터 만들어서 운영해오고 있는 게이미피케이션(Gamification)이 적용된 미스터리 소설 플랫폼입니다.

소설에 사용자 참여 요소를 도입해 몰입도를 끌어올리고 있습니다.

  • PHP
  • JavaScript

Fishing Arena (2004년부터 2010년 06월 26일까지)

중학생 때 만들어서 운영했던 간단한 낚시 관련 웹게임입니다.

당시 국내 인디(indie) 웹 게임 중 자체 개발 된 몇 없는 게임이었습니다.

2010년, 당시 게임물등급위원회의 시정요청으로 운영이 중지되었는데, 이 시기에 과도한 심의요청으로 국내 인디 웹 게임은 거의 다 운영을 정지하게 되었습니다.

  • PHP
  • JavaScript

Open-Source Contributions

Activities

ZeroBoard4 보안 이슈 패치 발표 (2014-11-16)

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

인사이트 출판사 알고리즘 문제 풀이 이벤트 (2012-10-09)

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

ZeroBoard4 보안 이슈 패치 발표 (2012-10-07)

PHP로 개발된 유명 사이트 빌더 솔루션인 ZeroBoard 4의 보안상 문제점을 발견하여 수정법을 공개했습니다. 이 패치는 SQL-Injection 취약점을 수정합니다.

LG CNS IT드림프로젝트 2회 (2009-08-12)

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

Disorders

선택적 함구증 (Selective Mutism)

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

불안장애 (Anxiety Disorder)

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