포트폴리오
포트폴리오
취소

Portfolio

현재 내가 가진 능력과 성과를 정리해보고, 가야할 목표를 살펴보자

“데이터 수집/검색/분석 및 웹애플리케이션 풀스택 개발자”

핵심 역량

  • 데이터 수집/검색/분석 및 시각화와 풀스택 웹애플리케이션 개발
  • Python, Java, Nodejs/Typescript 언어 사용 (최근 Python에 집중)
  • 딥러닝/NLP, Spring, FastAPI, Nestjs, Angular 프로젝트 경험
  • RDB/SQL, GDB/Tinkerpop, NoSQL, Spark, Elasticsearch, Docker 활용
  • 대기업 Duam/Kakao 7.5년, 스타트업 Bitnine 5.3년 등 개발조직 근무 경험

보유 기술

  • 웹애플리케이션 개발 : 프론트엔드 + 백엔드/API + DB 모델링 + 배포
    • 프론트엔드 : Angular, Nodejs/Typescript, Style
    • 백엔드/API : Nestjs(Node), Spring(Java), FastAPI(Python)
    • DB 모델링 : Spring JPA/JDBC, TypeORM, SQLAlchemy/SQLModel
    • 배포 : Docker
  • 클라우드 : 인프라, API 연동
    • 인프라 : AWS EC2/DynamoDB/S3/LB
    • API : GCS Map, GCS NLP, Google Login
  • 데이터 저장/SQL : RDB, NoSQL, GDB
  • 데이터 수집/가공 : 크롤링, 전처리, ETL
    • 크롤링 : Scrapy + Splash/Lua
    • 전처리 : 중복제거, 필터링, 분류, 품질 관리
    • 뉴스 200만건 전처리, 검색서비스 인덱싱, Logstash(PG 연동)
  • 데이터 분석 : Spark 프레임워크, 머신러닝, 딥러닝(활용)
    • Spark 프레임워크 : Spark(Scala/PySpark), Hive, Livy
    • 머신러닝 : 유사도, 분류/군집, NLP, Numpy/Pandas
    • 딥러닝 : TF/PyTorch 모델 활용 가능, NodeVec
  • 그 외 분야

나의 경력 (최신순)

자기 개발중 2022.5 ~ 현재

데이콘 - 쇼핑몰 리뷰 평점 예측 프로젝트 2022.7

  • 최종 51위 acc=0.67 획득 (1위는 acc=0.71)
  • 분석도구 : 한글 전처리/임베딩, pytorch, transformer/huggingface, TF/Keras
  • 분석모델 : LogisticRegression, LightGBM, MLP, RNN, CNN, BERT, ELECTRA

      포트폴리오 :  1) 깃허브/aib-proj-dacon
 

코드스테이츠 부트캠프 - AI 데이터 분석반 수료 2022.7


 


비트나인 2017.2 ~ 2022.5 (5년 4개월)

그래프 데이터베이스의 제품화에 기여하고 2022년 코스닥 상장 후 퇴사

  회고

> Postgresql 기반 그래프 쿼리 엔진 개발자 외엔 없던 시기에 입사했다. 그래프 DB 에 대한 관심을 끌어오고 사용처를 만들어야 하던 시기라 클라이언트 제품과 동시에 응용을 위한 기반 도구들도 만들어야만 했다. 기술 트렌드를 공부하고 개념과 기능을 정의하고, 기획부터 설계, 개발과 팀 관리까지 했었다. 하지만 시장은 좀처럼 반응하지 않았고 후반엔 혼자서 정부과제를 담당하는 형태가 되었다. (마케팅이라지만) 언론 홍보로 소비된 개발물들 중엔 내가 만든 것도 있다. 마침내 기술평가로 코스닥 상장을 달성하고 상황이 나아질까 기대했는데 사업전략이 바뀌었다. 조직도 개편되면서 여러 사람들이 자리를 바꾸게 되었다. 개발자를 지향하는 나에게 서울 근무와 관리 직무는 원하는게 아니어서 퇴사 결심을 하게 되었다.

> 지식그래프와 풀스택 개발 스킬을 체득한 것은 큰 성과였다.


그래프 기반의 지식그래프와 질의응답(Q&A) 개발 (1인개발)

  • 뉴스 120만건의 자연어를 NLP 처리 후 그래프 기반의 지식그래프 구축
  • 질의분석기와 그래프 검색으로 질문에 해당하는 답변을 출력 (+시각화)
  • 자체 정의한 Triple 구조와 Node2Vec 가중치로 그래프 유사도를 계산
  • 이 외에 중복문서 제거 및 유사문서, TFIDF, 단어그래프 탐색 등을 개발
  • Elasticsearch/검색, FastAPI/백엔드, Angular/프론트, GCS/자연어분석

      포트폴리오 :  1) AgensKG 최종발표 PPT,  2) AgensKG Demo 동영상,  3) 깃허브/kg-news-front(백엔드는 비공개)
 

그래프 분석을 위한 Spark, Livy 라이브러리 개발 (1인개발)

  • JDBC 와 Spark 간에 그래프 쿼리와 데이터 전달하는 Spark 라이브러리
  • 그래프 쿼리 API 기능을 위해 Apache Livy 플러그인 개발
  • 그래프 쿼리 결과를 Hive 에 Parquet 테이블로 생성하여 JDBC 와 연결

      포트폴리오 :  1) JDBC-Spark/Livy Demo 동영상,  2) 깃허브/agens-spark-modules
 

그래프DB 실시간 모니터링 개발 (1인개발)

  • Spring/Kotlin + HTTP Client 로 그래프DB의 Health 정보 수집
  • Angular와 Chart.js 로 실시간 차트와 모니터링 구현
  • Electron 으로 Windows 애플리케이션을 빌드하여 배포

      포트폴리오 :  1) 깃허브/agenspop-monitor
 

대용량 그래프 엔진 및 WebGL(GPU) 시각화 개발 (1인개발+디자이너)

  • 오픈소스 Tinkerpop 에 Elasticsearch 를 통합한 그래프 엔진 개발
  • WebGL + Canvas 라이브러리로 GPU 기반 고성능 시각화 도구 개발
  • ES 쿼리 최적화, 그래프 Crop 기능 등 대용량 그래프 탐색을 위한 기능 구현

      포트폴리오 :  1) GCS 과제보고 PPT - Agenspop,  2) Agenspop Demo 동영상,  3) 깃허브/agenspop-es
 

그래프DB 클라이언트 AgensBrowser v1, v2 개발 (1인개발+디자이너)

  • Spring/JDBC 기반으로 DB 연결, 스키마 관리, 쿼리 에디터/실행 등 개발
  • Angular 와 Canvas 를 사용해 그래프 시각화와 그래프 분석 기능을 제공
  • 2017년 12월 GS 인증 취득 (TTA) - 제품명 Agensgraph

      포트폴리오 :  1) AgensBrowser v1 튜토리얼 동영상,  2) AgensBrowser v2 개발 PPT
 


아라커뮤니케이션즈 2016.3 ~ 2017.1 (11개월)

제주도 지역의 SI 회사를 경험하고 개발자에 올인하기로 결심함

  회고

> 각오는 했지만 근무 환경이나 처우가 좋지 않았다. 내수 시장이 작아 생존 가능한 서비스가 나오기 어렵고, 충분한 인력을 구할 수 없어 사업 확장도 어렵다. 공공기관 용역이나 지원금 등으로 유지되는 회사들이 많다.

> 말들에겐 제주가 좋아도 개발자는 서울로 가야.. (서울 일감을 받자)


제주도청 도시관리용 지리정보시스템(GIS) 리뉴얼 프로젝트

제주올레 리뉴얼 프로젝트

  • 올레 관련 지도 관리 도구 개발 (POI 등록/관리/조회)
  • 올레 검색용 Daum/Google/OpenStreet 통합 지도 개발 (Openlayer 3)
     

제주관광공사 - 놀멍쉬멍 리뉴얼 프로젝트

  • 관광지역 검색을 위한 Daum/Google/OpenStreet 통합 지도 개발
  • 버스 최단경로 검색 개발 (최대 2회 환승 버스 경로)

      포트폴리오 :  1) 버스경로검색 Demo 동영상
 


1년 간의 휴식: 창업에 도전하다 접었고 가정을 꾸림

인생은 한치 앞을 알 수가 없고, 운명은 화살처럼 다가온다.

  회고

> 제주도 렌트카의 네비게이션을 위치기반 광고플랫폼으로 활용하는 사업 아이템이었는데, 나라는 사람은 내 생각보다 쫄보였던지 주변 지인들의 팩폭에 6개월만에 접었다. 이듬해 누군가가 렌트카마다 노란색 네비게이션을 배포하며 실행하더라. (배아프고 부러웠다)

> 이후 무계획으로 마음껏 놀다 보니 인연을 만나 가정을 꾸리게 되었다.



Daum/카카오 2007.10 ~ 2015.3 (7년 6개월)

대규모 검색 서비스를 구축 및 운영하고 품질개선의 성공 사례를 획득함

  회고

> 전공을 유감없이 발휘할 수 있는 기회였고 정말 열심히 일했었다. 하지만 Naver 검색 따라잡기에 급급했던 조직 분위기와 주류 인맥들에 밀려 하던 일만 하는 방구석 고수로 변질되었다. 이 때가 딥러닝이 막 태동하던 시기였는데 불만을 내려놓고 새로운 도전을 했다면 어땠을까 하는 안타까움이 크다.

> 연애 사업도 기술사 공부도 실패해서 잠시 흑화했던 시기도 있었다. 제주로 내려와 마음 다스리기에 힘쓰다 보니 회사 경영진들이 카카오에 회사를 넘겼다. (항마력이 zero 였던 나는) 카카오 조직이 Daum의 개발 인력을 나눠 갖는 혼돈의 시기를 버티지 못했다.


검색 로그, 쿼리 로그 분석 및 키워드 DB 구축 2012.2 ~ 2015.3 (3년 2개월)

  • 데이터마이닝팀 (부서 이동), 제주로 이주
  • 쿼리 로그에서 임의의 카테고리에 대한 신규 키워드 DB 구축
  • 쿼리 로그에서 카테고리별로 인기 키워드 추출 (타 서비스에 전달)
  • 검색 사용자의 동일 의도의 쿼리 세션 구분과 연관 키워드 추출
  • 검색 서비스별 사용자 이용 패턴에 대한 다양한 분석 요청을 처리

      포트폴리오 :  1) 키워드 분석업무 PPT,  2) 주제별 키워드 수집 PPT,  3) 뉴스 키워드 링크 서비스
 

검색서비스 구축 및 운영, 검색 랭킹 개발 2007.10 ~ 2012.1 (4년 4개월)

  • 검색서비스개발팀 (서울 근무)
  • 검색서비스 구축 및 운영: 카페명, 블로그, 게시판, 아고라 등
  • 검색 랭킹 알고리즘 및 모듈 개발 (검색 품질 개선)
  • 팀 전체의 검색엔진 실서비스 버전 배포 관리

      포트폴리오 :  1) 토픽맵 통합검색 PPT,  2) 제안-주제검색,오픈검색 PPT, 3) 카페글-스팸구문탐색 PPT
 

상호정보량을 이용한 카페검색 품질향상 사례 발표 (BI학회) 2008.4

      포트폴리오 :  1) 카페명 검색 개선사례 PPT
 


숭실대 대학원 석사 졸업 2007.4~2007.7 (4개월)

내 인생의 오점이던 학위취득에 성공했다. 논문도 훌륭했다.

  회고

> 이전에도 한번 시도를 했었다. 온라인 광고 CTR 관련한 아이디어로 첫 논문지도를 받은 후 도망갔다. 자신감은 바닥으로 떨어졌고, 연구실에 다시 찾아가지 못했다.

> 그러다 졸업 가능 마지막 학기라는 학과 사무실의 연락을 받고 다시 도전! 회사도 그만두고 수많은 밤을 새우며 논문을 완성했다. 기분도 좋았고 앞으로 인생이 달라질 것을 예감했다.

> 어느날 구글 코리아에서 면접 제의가 왔다. 대책없이 갔다가 알고리즘 질문에 진땀을 빼고 나왔다. 이후 Daum 에서 합격 연락을 받아 입사했고, Naver 에서는 뒤늦게 연락이 와서 포기했다. (바보, 멍충이!)


단어연관그래프를 이용한 단어 의미의 자동 군집 기법 (논문)

  • 네이버 쇼핑 키워드셋을 이용해 상호정보량(MI) 기준 연관그래프를 구성
  • 특정 단어의 연관단어그래프에 대해 간선을 정점으로 삼아 그래프 재구성
  • 그래프 기반 클러스터링 알고리즘으로 중의성 단어를 고려해 군집화
  • 특정 단어를 기준으로 여러 의미그룹을 군집 최적화하여 생성
    • ex) ‘허브’ => {네트워크 장비}, {의약품}, {방향제}

      포트폴리오 :  1) 논문발표 2007 PPT
 


그라비티 2006.7 ~ 2007.5 (11개월)

1 바이트도 아껴쓰는 패킷 통신과 게임업계의 애자일 개발 방법론을 배웠다.

  회고

지인 소개로 들어가게 된 첫번째 대형 개발회사였다. 돈이 많은 회사는 직원에 대한 처우가 이렇게나 다르구나 하는 것을 느꼈다. 게임 업계에 대한 신기한 경험을 한 시기였지만, 한편 수료 상태인 이대로는 개발자든 인생이든 롱런하기 어렵겠다는 생각이 들었다. 게임 개발 과정이 고되기도 했고.


온라인 야구 게임 개발 (캐주얼/소형 게임)

  • 야구 게임의 로직을 DB 에 구축 (MySQL)
    • 캐릭터 정보, 사용자 전적/승률 등의 대전 정보, 이벤트 처리 등
  • 클라이언트의 데이터 요청을 처리하기 위한 DB Proxy 서버 개발
    • Windows IOCP 기반의 멀티스레드 서버 프로그래밍 (C++)
       

소만사 2004.8 ~ 2006.7 (2년)

솔루션의 DB 스키마를 정리하고 수십개의 중복 프로시져들을 최적화했다.

  회고

정신을 차리고 제대로 된 직장을 찾아 다시 시작하기로 했다. 하지만 이전의 수준을 넘지 못하고 제자리를 도는 것 같아 늘 괴로웠다. 언젠가는 다시 돌아가야지 하면서도 두려움도 있는 어정쩡한 시기였다.


웹분석 솔루션팀 - ClickMind 제품 개발 및 SI

  • 웹사용 수집과 분석, 리포팅을 위한 DB 구축 및 프로시져 개발
  • 최대 1일 10억 PV 처리, 50여종의 웹분석 리포트 제공
    • 당시 유명 검색회사 엠파스에 솔루션을 납품하고 유지보수

2006 CRM 페어 Fall 발표 - CPA와 효과적인 키워드 광고 운용

      포트폴리오 :  1) CRM페어-CPA광고효과측정 PPT
 


대학원 복학, 그러나 졸업에는 실패 2002.8 ~ 2003.7 (1년)

  회고

공부 리듬이 깨진 상태라 일단 학과 수업에만 집중했다. 구매 데이터의 시간 특성을 고려한 협업적 필터링(CF) 알고리즘으로 학위 논문을 한번 시도했으나 나조차도 이해 못할 횡설수설을 하다가 포기했다. 논문 포기 후, 직장을 구하는 중 안좋은 일이 하나 더 있었지만 노코멘트.


역삼동 KT IDC 에서 CRM 솔루션 관리 엔지니어로 근무 (계약직)

  • 대충 6~7개월 일했던 것 같은데, 좀비 상태로 지냈던 탓에 기억이 가물가물
     

남은 1년의 학기를 마치고, 논문 초안만 몇 개월을 끌다가 수료

  • 길을 잃음
     

지앤넷 2001.4 ~ 2002.7 (1년 4개월)

당시 세계 1위 CRM 솔루션을 통해 데이터 구조와 흐름을 배웠다.

  회고

> 딱 1년만 하고 말았어야 했는데, 사회생활의 겉멋에 맛들려버렸다. 선배 연차들은 학교로 복귀하고 나와 동기 한명만이 6개월 더 연장 근무를 했다. 머리는 텅 비워지고 잡다한 지식만 들어있었다.

> 이때만 해도 토요일은 오전 출근이었다. 금요일에 술 진탕 마시고 회사에서 자면 토요일은 자동 출근이 되는 시스템이었다. (주5일 근무제는 2004년부터 시행)


CRM 솔루션 Siebel 엔지니어 - SI 파견

  • 주로 삼성계열로 고객관리와 고객센터 CTI 자동화 프로젝트를 수행
    • Javascript 또는 Basic 스크립트로 커스텀 기능을 개발
    • Oracle, IBM DB2 등으로 CRM 데이터베이스 구축
  • 경방필 백화점에서 OLAP/DW 구축
     

숭실대 대학원 컴퓨터학과 석사과정 시작 ~ 2001.2 (휴학)

  회고

> 머신러닝과 전문가시스템, 신경망 퍼지이론을 배웠다. 원서는 두껍고 이론은 뭐가 뭔지도 모른채 배우기만 했다. 딱 하나 알아먹을만 한게 CF 알고리즘이었는데, 곧잘 만들어 COEX 전시회도 나갔다.

> 교수님 안식년을 기회로 교수님과 연구실 학생 전체가 취업을 했다. 새롬 데이타로 촉발된 닷컴버블의 이름모를 엑스트라들이 되었다.


  • CF 알고리즘 기반 상품추천 프로그램 개발
  • 연구 성과를 현업에 적용해 보기 위해 연구실 전체가 1년간 휴학
     

지온정보 - 아르바이트 하러 갔는데 6개월 취직 ~ 2000.2

  회고

> 이 당시 최고의 IT 기업은 IBM 이었고, 하드웨어 판매가 핵심이었다.
> 국민은행 메인프레임에서 PL/I 으로 개발한 일도 있었다.
> 웹 프로그래밍은 CGI 로 HTML 을 화면에 print 하던 때이다.


  • 해외여행 자금을 모을 목적이었는데, 작전 실패.
     

숭실대 컴퓨터공학과 1993 ~ 1997, 졸업 후 군복무

육군 xx군단 소속 통신단 중위 단기 전역 1997.3 ~ 1999.6

  회고

> 말년에 전산실로 보내져 델파이로 채팅, 상황판 등을 만들었다.
> 중위가 되고 나니 축구공이 발 앞에 알아서 배달되더라. 개고기 좋아하는 이상한 중대장이 새로 오기 전까진 참 좋았었다.
> 무선 중계기, 배전판, 유선 교환기를 비롯해 최신형 주파수 분할 다중화(CDM)를 접했다. 훈련 때면 땅굴 같은 곳에서 야전선을 깔았다. 자석식 야전 전화기로 전기 고문도 경험했다.
> 임관할 때 삼성 애니콜이 판촉 이벤트로 싸게 나왔다. (시티폰 Bye~)


숭실대 컴퓨터학과 93학번으로 입학 후, 1997년 2월 졸업

  회고

> 학부떄 뭔가 만들겠다고 수업을 빼먹고 설치다보니 학점이 나빠졌다.
> 광학 트레이서(마우스)를 만들고 싶어 Z80 원보드와 스테핑 모터를 배웠다.
> 학과 수업에서는 Fortran 과 C, Lisp 을 사용했다. 터보C, 볼란드C++ 등이 주류였고, Java 애플릿은 듣보잡이었다.
> 유닉스 Shell 환경 'M' 유틸리티 아류작을 만들었다.
> 입학할 때 최신형 386 컴퓨터를 샀다. (MS-DOS 부팅 후 윈도우3 시작)
> 나중에 알게 되었지만 인공지능(AI) 학과는 당시 학생 정원을 늘리기 위한 학교의 꼼수였다. 또다른 희생양 소프트웨어공학과와 함께 전산과로 합쳐지니 단번에 120명으로 증원됨
> 마지막 학력고사 세대. 수능이 두려워 1지망을 하향 지원했다.


  • 대학원 입학만 하고, 병역 사유로 바로 휴학
  • 졸업작품으로 TTS(Text-to-Speech) 메모장을 개발
    • 초성+중성, 중성+종성 wav 파일들을 이어붙여 음성 출력
  • 입학시에는 ‘인공지능’학과였으나, 2년 후 통폐합 됨

 
 

__ 1974년 서울 출생 __