조우진 (Woojin Joe)
라인플러스, 개발7실 Software Engineer
메일: jwj0831@gmail.com
About me
학부~대학원: Passion, Getting to know myself, Experiment & Challenge
- 학부 시절 컴퓨터공학을 열정적으로 공부하면서 학생으로서 다양한 도전을 함.
- 그 도전 중 하나로 졸업 작품이 한 공모전에서 대상을 수상하게 되었고 중소기업청 청년창업사관학교 2기로 창업 교육 및 지원금을 받음
- 3개월 간 창업 교육을 받으며 앱개발을 하다가 중도 퇴소를 결정함
- 퇴소의 주요한 이유: CEO가 나의 Goal이 아니었음, 창업의 두려움 등
- 진로에 대한 고민을 학생 신분으로 연장하기 위해 대학원 진학
- 분산 시스템 및 CEP(Complex Event Processing)를 공부 중 오픈소스 CEP 엔진 Esper의 Java 코드를 읽으면서 OOP답게 설계된 구현 코드의 아름다움을 맛 봄
- ActiveMQ와 AngularJs를 사용한 Sensor Network 관련 구현 논문을 준비하면서 개발의 즐거움과 개발의 흥미를 알아가게 됨
- 대학원 과정 중 주말에는 SpaceCloud(유휴공간 사업)라는 스타트업에서 파트타임으로 일하면서 1.0 버전 론칭
티몬: Professional, Code Reading, Documentation
- PHP로 작성된 운영서비스의 코드를 처음 접하면서 개인의 토이프로젝트 수준이 아닌 서비스를 위한 개발은 어떻게 해야하는지 알아가게 됨
- 한참 PHP로 작성된 시스템을 하나씩 Java로 전환하는 과정에서 기존 레거시 코드 분석
- 사내 Confluence 도입이 된 지 얼마 안 되었을 때 입사하게 되어 담당 파트의 시스템 분석 내용 꾸준히 Wiki화
- 상품 정보의 변경사항을 불필요하게 동기적으로 여러 시스템과 연동된 것을 MQ 기반으로 전환
- rabbit mq php 라이브러리를 리얼 서버에 올리다가 library path 설정이 stage와 real 서버가 달라서 30분간 결제 장애를 일으킴;
- 신규 상품 등록 프로젝트 진행하면서 Spring 기반 프로젝트 구축 경험
- Senior 한 분이 module로 나눌 것을 제안했을 때, 이 때 당시만 해도 module 단위 구성에 대한 개념을 잘 몰랐음
- Java 전환 프로젝트가 진행될 때 “Spring 코드 리딩” 사외 스터디를 통해서 Spring을 좀 더 잘 이해할 수 있었음
- 신규 프로젝트의 CMS를 Angular(당시 2)와 Webpack으로 직접 구축
- 이 때 경험을 바탕으로 앵귤러 첫걸음 출판
라인플러스: Global, Scale, Deep Inside
- 대용량 트래픽 핸들링, 좀 더 많은 권한과 책임에 목마름으로 라인플러스 이직
- Global 서비스를 위한 인프라 구성과 코드레벨의 준비가 무엇이어야 하는지 배움
- 기존 Elasticsearch(이하 ES) 클러스터를 인계받으면서 ES를 공부하면서 운영
- 커널 셋팅 변경 및 TCP 레이어의 상태 변화등을 필요에 의해서 모니터링하고 디버깅
- 이전 직장에서 Sever to Server의 연동업무를 주로 했던 것과 달리 실제 앱 클라이언트의 서비스 API를 개발하면서 하위버전을 고려한 개발을 알아감
- Ansible을 활용하여 수십대의 서버 인스턴스의 설정 및 운영 경험
Project History
- Trivia
- Vue.js로 CMS 멀티페이지 프로젝트 셋팅 및 기본 템플릿 코드 작성
- WAS, 채팅 세션 등 전체 서버 구축
- Spring boot CLI를 활용한 채팅 부하 테스트 툴 개발 후 병목 지점 profiling 개선
- cpu의 jetty의 lock 코드 => concurrent 패키지 사용한 개선버전 적용
- 메모리 릭 현상 => websocket의 압축 기능 버그 발견 후 제거
- 7…
- https://www.facebook.com/groups/elasticsearch.kr/permalink/1461542723931563/?hc_location=ufi
- Deal 구조개선
- RabbitMQ, CouchBase를 활용하여 상품 등록 생성
- DD 프로젝트 1차 (1월 중순 ~ 4월 말)
- 사용기술: Angular2,RxJs, jOOQ, Java8
- 프로젝트 회고
- T 프로젝트 어드민
- AngularJS
- ui-grid
- ui-sortable
- SpringMVC
- Java8?… Stream?
- AngularJS
- C 프로젝트 어드민
- AngularJS
- Spring MVC
- 기획, API 개발, C 데이터 활용 하는 사람, 총괄 기획 사이에서 직접 만나서 조율하여 불필요하게 기획전 어드민을 추가할 필요가 없었던 점은 커뮤니케이션의 중요성을 깨닫게 해 준 일
- Conceptually Manageable Sensor Network(2014.02 ~ 2014. 12) https://github.com/jwj0831/CSN-Library
- 희년함께 부채탕감 홍보 페이지 http://jubileekorea.net/
- 메리힐 원룸 안내 페이지 http://merryhill.co.kr/
- 스페이스클라우드 (2014.04 ~ 2014. 09) http://www.spacecloud.kr/
- M2M/IoT based data logger for Lake So-yang (2013.01 ~ 2013. 06 ) https://github.com/jwj0831/m2m-smartlogger
- WordPress 기반 웹사이트 제작 (2013.05 ~ 2013.07) https://github.com/jwj0831/hananuri-theme / https://github.com/jwj0831/landliberty-theme
- 지하역사 Job Manager (2013.04 ~ 2013.05) https://github.com/jwj0831/jobmanager
- Ethical Shop(착한 가게) Project 기획 및 아이폰 앱 개발 (2011.09~2012.05) https://github.com/jwj0831/ethicalshop
Publications
- 앵귤러 첫걸음, 한빛미디어, 2017.6.1
- [건설환경 IT융합 부문 우수발표논문] 조우진, 강미란, 정갑주, 실시간 자동 환경ㆍ생태 관측을 위한 M2M/IoT 기반 프로그래머블 데이터 로거 설계 및 구현(Design and implementation of a M2M/IoT based programmable data logger for automatic environmental and ecological observation in real-time way), 한국정보과학회 2013 한국컴퓨터종합학술대회 논문집, 2013.6, 11-13
- Sokha Y, Karpjoo Jeong, Jonghyun Lee, Woojin Joe, “A Complex Event Processing System Approach to Real Time Road Traffic Event Detection“, JCIT: Journal of Convergence Information Technology, Vol. 8, No. 15, pp. 142 ~ 148, 2013
- 조우진, 강미란, 정갑주, 환경 센서 네트워크를 위한 M2M/IoT기반 스마트 데이터 로거, 정보과학회 논문지: 컴퓨팅의 실제 및 레터, Vol. 20, No. 1, 2014
- Woojin Joe, Jonghyun Lee, and Karpjoo Jeong, “CSN: The Conceptually Manageable Sensor Network,” 9 February 2015
Education
- 2013/07/01 Software Testing (수료증)
- 2013/07/02 Jenkins (수료증)
- 2013/10/25 MongoDB (수료증)
- 2013/11/5 Amazon Web Service Essential 수료 (Certification)
- 2016/05~06 Functional Programming Principles in Scala 수료 (Certifiacation)
- 2017/11 Machine Learning 수료 (Certification)
- 2017/11~12 Deep Learning Specialization 3 강좌 수료
- Neural Network and Deep Learning (Ceritification)
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization (Certification)
- Structuring Machine Learning Projects (Certification)
Prensentation
- 2017/07/22 앵귤러 첫걸음 출간 세미나 “앵귤러 아키텍쳐 하루만에 훑어보기” (발표자료)
- 2018/08/30 네이버 golang meetup 발표 “이더리움 geth 클라이언트 코드로 이해하는 Go” (발표자료) (발표 영상)
Open Source
- Angular.io 문서 버그 수정
- Reactor-Core Javadoc typo 수정
- Angular Router typo
- Elasticsearch Manual typo
- Zookeeper Shell script comment typo
- Deeplearning4J javadoc typo
- Fix EOS.io build script bug
- Fix gradle broken sample code snippet
- Fix incorrect interface in Spring data redis doc
Translations
- 연결된 세상은 좀 더 나은 세상인가?, 한빛네트워크
- 신입 개발자를 위한 디버깅, 한빛네트워크
- 페이스북의 Hack, HHVM, 그리고 PHP의 미래, 한빛네트워크
- 분산시스템 모니터링 : 구글은 어떻게 자사의 복잡한 시스템을 모니터링하고 있는지에 대한 사례, 한빛네트워크
- 자바스크립트 언어자료, MDN
- 워커, MDN
Extra Activities
- 한빛리더스 시즌 2 1기
- 한빛리더스 7-8기
- 제이펍 출판사 베타리더 2기
- 중앙 서울 마라톤 2011년, 2013년 풀코스 완주, [확인]