Phil Goo Kang (강필구)
Email : philgookang@gmail.com Phone Number : 010-9126-0221
Github : github.com/philgookang Portfolio : portfolio.philgookang.com
Objective

I am a hardworking, passionate, and dedicated software engineer with a thesis on Image Caption Generation using Deep Learning Models. I am seeking a position researching Computer Vision and Language Processing using Machine (Deep) Learning Models.

Experience

AI Engineer
Saltlux (솔트룩스) Mar 2022 — May 2023 (1.3)

솔트룩스에서 AI 연구소에서 근무하며 AI 서비스 운영하는 개발을 맡게 되었습니다. 주로 서비스 운영하는 개발로 AI 모델을 활용하는 FE/BE 개발 작업을 진행했습니다.

RDBMS Engineer
TmaxTibero (티맥스티베로) Feb 2020 — Mar 2022 (2.2년)

티맥스에서 티베로(Tibero)란 자체 RDBMS 제품에 database recovery와 disaster recovery를 담당했습니다. Recovery 담당으로 os, hardware, network 문제로 서버가 비정상 종료 후 정상 기동을 실패하면 빠르게 원인 분석 및 해결책을 모색하여 빠른 대응을 했어야 합니다. 긴급 대응 작업 외에도 다양한 recovery 연구와 기능 개발 했습니다. database에서 select query를 허용하면서 동시에 data recovery 할 수 있는 기능을 개발하였고 database 안정성을 위해서 multi-layer disaster recovery 서버 기능을 개발하여 다단계로 disaster server 구축 가능하게 만들었습니다. 딥러닝 모델 연구로는 recovery 과정에서 disk crash로 복구 할 수 없는 data block을 time series redo log와 lstm 모델을 이용해서 정상 data block을 생성하는 recovery 모델도 연구했습니다.

Server & Database Developer
Osquare Corp (집꾸미기) Mar 2016 — Feb 2017 (1.1년)

집꾸미기는 인테리어를 기반으로 소셜 네트워크 서비스를 운영하는 스타트업입니다. 스타트업인 만큼 서버 개발 단계부터 시작해야 했고, 저는 그 외에도 웹과 애플리케이션 개발까지 동시에 담당했습니다. 웹 서버는 아마존 AWS 바탕으로 구축했고, Redis을 통해서 Session과 SQL 데이터를 cache 하는 등 무난하게 진행했습니다. 문제는 인테리어 분야가 복잡한 외래어를 많이 쓰고 단어와 가구의 관계가 복잡해서 간단한 SQL로 검색할 수 없다는 점이었습니다. 이를 해결하기 위한 방법으로 Elastic Search을 도입하여 데이터베이스의 attribute 관계를 정의하고 weight을 주어 복잡한 검색을 구현했습니다. 또한, PHP로 구현한 서버는 간단한 기본 데이터베이스 라이브러리 구조로 되어 있었기에 별도의 데이터베이스 클래스를 구현했습니다. 데이터베이스는 Master-Slave 구조로 되어 있어서 Read query는 slave에서만 실행하고, write query는 master에서 실행하도록 자동화된 라이브러리를 구현했습니다. 한편, Index로 performance가 나오지 않는 query는 별도 view를 통해서 해결했습니다.

Back & Front-end Developer
Riversoft Feb 2014 — Mar 2016 (2.10년)

카페24 쇼핑몰 플랫폼의 제한적 확장성 문제를 제기하는 온라인 쇼핑몰 업체 사장님들 얘기를 듣고 더 많은 커스터마이징과 해외 서비스 (페이스북 스토어) 연동을 지원하는 신규 쇼핑몰 플랫폼 개발 작업을 진행했습니다. PHP Codeigniter 바탕으로 Mustache template을 쓰고 해외 Amazon, Ebay, 그리고 Facebook Store로 연동 할 수 있었습니다. Database는 MySQL 기반으로 구축하고 글로벌한 목표로 아마존 AWS의 여러 region에 서버를 구축하였습니다. Load balancing을 위해서 Route53을 이용하여 세계 어디에서든 접속하여도 빠르게 반응할 수 있는 서비스를 구축했습니다.

Server & Database Developer
SK Planet, Seoul Sept 2012 — Feb 2014(1.5년)

SK플래닛의 인큐베이션 센터에서 근무했습니다. 인큐베이션 센터는 사내 신사업을 추진하면서 각 팀별 기획, 개발, 운영을 모두 진행하는 부서입니다. 당시 제가 속한 팀은 미국에서 사용 중이었던 Square라는 서비스를 국내에 도입하려고 했습니다. Square는 스마트폰 이어폰 잭에 리더기를 꽂아 어디에서나 신용카드 결제를 이용할 수 있게 만드는 서비스로, 배달과 신용카드 결제가 활성화된 한국에 적격이라고 판단했습니다. 우선은 자영업자와 배달원에게 먼저 서비스를 도입하는 것을 목표로 사업을 시작했습니다. 그중 제가 담당한 업무는 어플리케이션 RESTful API와 서버 및 데이터베이스 개발 작업이었습니다. 서버 및 데이터베이스는 아마존 AWS 클라우드 서비스에서 구현했습니다. 구체적으로, 서버는 EC2 바탕으로 PHP/Apache로 개발하고, 데이터베이스는 RDS에서 MySQL로 Master-Slave 구조를 구축했습니다. PHP 바탕으로 구현한 API는 서비스를 위한 기본적인 회원과 상품 API를 제공했지만, 추가로 암호화된 신용카드 Hash 데이터를 PHP Security 라이브러리를 이용해서 DES3 CBC를 해독(decrypt)한 뒤, TRACK II란 데이터를 이용해서 카드사에 결제를 요청했습니다. 대역폭 처리를 위해 아마존 Load Balancer 서비스를 이용하여 트래픽을 여러 서버로 분산하며 문제를 해결했습니다. 이와 관련된 기사는 머니투데이 2013.7.8일 자에서도 확인할 수 있어 링크를 첨부합니다.

Education

MS in Computer Science & Engineering Mar 2018 — Feb 2020

Seoul National University (Internet Database Laboratory - 김형주 교수님)

Thesis: Detecting Parts of Speech from Image for Caption Generation

BS in Computer Science & Engineering Mar 2009 — Dec 2017

Hanyang University (Seoul)

Faith Academy Sept 1997 — Dec 2008

International Private School

Papers

Boosting Image Caption Generation with Parts of Speech Mar 2021

Journal of KIISE, Vol. 48, No. 3, pp. 317-324, 2021. 3

ISSN 2383-630X(Print) / ISSN 2383-6296(Online)

Activities

Best of the Best: White Hackers Jul 2013 — Dec 2013

Ministry of Science, ICT and Future Planning, 2기로 합격

Software Maestro Jun 2012 — Dec 2012

Ministry of Knowledge Economy, 3기로 합격

Samsung Software Membership Jul 2011 — Dec 2012

Samsung Electronic Gangnam Division, 21-2기로 합격

Competitions

Samsung Electronic Young & Smart Mobile App Competition May 11 2012

Third Place

Licence & Certificate

TOEIC Oct. 13 2019

Score: 940/990

정보처리 산업기사 May 1 2013

Score: 합격

Introduction

"프로그래밍이 취미다" 라는 모토로 즐기면서 개발합니다.

소프트웨어 개발 프로젝트를 진행하면서 항상 느끼는 것이 나는 이 길은 나의 길이다라는 것입니다. 그만큼 매번 열정을 다하고 스스로 공부하는 자세로 개발을 합니다.

어려서부터 프로그래밍에 관심이 많았고 이를 계기로 한양대학교 컴퓨터공학과에 입학했습니다. 교내 프로젝트로 iPhone기반 어플리케이션 여러 가지를 만들었습니다. 그 이후, 국내 우수 개발자 대학생들이 모인 삼성전자 소프트웨어 멤버십에 21기로 합격하여, 본격적으로 개발 역량을 키웠습니다. 각 분야의 고수들에게서 다방면의 지식을 전수 받으며 멤버십 내에서 여러 프로젝트와 공모전 과제를 진행하여 경험을 쌓았고 자신감을 키웠습니다.

그리고 2012년 하반기에 SK Planet에서 근무를 시작하여 새로운 Swipe 기반 결제 플랫폼을 개발하게 되었습니다. 본 프로젝트는 스마트폰에 제작한 카드 리더기를 붙여 결제 단말로 사용 할 수 있는 서비스입니다. 본 서비스를 진행하면서 신용카드를 리더기에 Swipe 후 읽어오는 데이터를 가공하여 결제를 위한 정보를 추출하고 VAN(PG)사에게 결제 요청을 내리는 시스템을 개발하였습니다. (보도자료: https://goo.gl/vfsAbE 머니튜데이)

SK Planet 이후 리버소프트란 회사에서 어플리케이션와 서버개발을 경험하게 되었습니다. 국내 탑 의료 브랜드 국내 시스템망과 국제 물류 시스템 개발하면서 Big Database과 High Transaction 경험을하게 되었습니다. 본 기술 바탕으로 2016년 오스크웨어에서 62만명 동시 접속자를 처리 할수 있는 시스템을 개발 능력을 갖추게 되었습니다.

산업에서 활동하면서 앞으로 AI 기술은 소프트웨어 분야와 상관없이 꼭 갖춰야 하는 기술로 보였습니다. 전문 지식을 얻기 위해 서울대학교 대학원으로 진학하였습니다. 서울대학교 인터넷 데이터베이스 연구실에서 석사 과정을 이수하면서 딥러닝을 이용한 이미지 캡션 생성 기술에 대한 연구를 진행했습니다. 진행한 연구에서는 이미지 캡션 생성시 언어적 특징을 반영하기 위하여 영어 품사 별로 여러 개의 Convolution Neural Network(CNN) 모델을 활용하는 방법을 제안했습니다. 품사 별 CNN 모델을 학습하여 하나의 이미지로부터 여러 개의 품사 정보를 추출하고, 추출한 정보를 Long-Short Term Memory(LSTM)에 입력하여 캡션을 생성하는 모델을 만들었습니다. 이 연구로 작성 된 논문은 Journal of KIISE Vol 48 Boosting Image Caption Generation with Parts of Speech로 출판하였습니다.

지금까지 공부한 것과 경험한 바탕으로 앞으로 계속 딥러닝 모델을 산업 서비스에 적용하는 소프트웨어 엔지니어로써의 전문실력을 키워나가고 싶습니다.

Questions

창의성을 발휘했던 사례
게임을 좋아했던 저는 즐기는 차원을 넘어 직접 만들고 싶었고, 프로그래머의 길을 걷게 되었습니다. 초기에는 의욕만 있고 기술이 없었습니다. SSM에서 바다 운영체제 바탕으로 게임을 개발할 기회가 생겼지만, 당시까지만 해도 Java만 다룰 수 있을 뿐 게임 개발 관련 지식은 전무했습니다. 사실 저만의 문제는 아니었습니다. 바다가 막 출시되었던 때라 관련 정보가 매우 제한적이었기 때문에, 바다 기반 게임 개발 정보를 찾을 수 없었습니다. 온라인 강의, 개발 커뮤니티, 깃헙 등 여러 방면에서 배우려 했으나 허사였습니다. 그러던 중 발견한 게임 프레임워크 Cocos2d-x가 실마리가 되었습니다. 개발 초기라 커뮤니티가 없었고 베타 버전은 개발문서도 없었지만, 다행히 공개된 Cocos2d-x 기반의 FPS 게임 코드를 발견한 것입니다. 비록 개인이 개발한 코드라 문서나 주석처리 등이 없었지만, 그걸 분석하며 첫걸음을 뗄 수 있었습니다. 방법은 원시적이었습니다. 한 줄씩 지워가며 그 코드가 어떤 기능을 하는지 알아냈습니다. 외부 클래스나 함수 호출을 많이 하지 않는 단일 코드부터 지우면서 공부했는데, 시간이 오래 걸릴 뿐만 아니라 어려움도 많았습니다. 가장 어려운 부분은 객체 클래스로, 글로벌하게 사용되다 보니 프로젝트 한쪽의 코드를 봐도 전체 그림이 그려지지 않았습니다. 로그 출력 코드를 지웠는데 앱이 실행되지 않아 당황스러운 적도 있었습니다. 그렇게 코드를 분석하는 데만 2개월이라는 시간이 소모되었습니다. 하지만 코드를 완전히 분해해서 분석하다 보니, Cocos2d-x 프레임워크 내부 코드를 보면서 필요한 부분을 사용할 수 있는 수준으로 성장했습니다.

그렇게 갖춘 능력으로 게임을 만들었습니다. 제가 만든 게임이 앱스토어 1위까지 올라가는 것을 보면서 그동안의 고생을 모두 보상받은 것 같았습니다. 무엇보다 그 노력들은 앞으로 더 발전할 수 있는 저의 단단한 토대가 되었습니다.


성격의 장단점
책임감은 저의 가장 큰 장점입니다. 4형제 중 막내로 태어난 제 삶은 치열했습니다. 부모님께선 저를 막내라고 편애하지 않고 모든 형제를 똑같이 사랑하셨기 때문에, 형들 사이에서 저는 이리저리 치일 때가 많았습니다. 그렇다고 막내라는 이유만으로 뒤처지고 싶지도 않아 공부부터 집안일까지 제가 할 수 있는 일에는 항상 최선을 다했습니다. 학교와 달리 집에서는 모든 과정이 드러나기 때문에, 평소 태도부터 인정받고 싶었습니다. 그렇게 제 일에 책임지려는 열정은 나이를 먹을수록 자연스러운 습관으로 몸에 뱄습니다.

반면, 이런 환경에서 자란 저에겐 생각이 많다는 단점이 있습니다. 실수 없이 좋은 결과를 보여주려는 마음에 늘 신중할 수밖에 없었고, 자연히 생각도 많아졌습니다. 그러다 보니 스트레스도 많이 받는 편입니다. 그 과정을 딛고 이룬 것도 많지만, 장기적으로 하려면 결국 몸과 마음을 관리해야 한다고 생각합니다. 그래서 조금 더 여유로운 마음가짐을 갖기 위해 철저히 일정을 조정하려고 노력하고 있습니다.

이런 토대에서 저는 전문성을 갖춰왔습니다. 늘 배우려는 자세로 일하니 실력이 늘었고, 무엇보다 책임감 있는 자세로 신뢰를 받았습니다. 프리랜서로 일하던 시절, 전 직장 동료들로부터 제가 책임감이 강하다는 말을 들은 협력 업체들은 많은 외주 프로젝트를 맡겼고, 저는 실수나 지연 없이 그 일들을 수행하며 능력을 인정받았습니다. 앞으로도 변치 않는 자세로 책임감 있게 일하겠습니다.