이름: 이충현 (Chung-Hyun Lee)
- 생년월일: 1995-10-02
- 연락처: 010-4099-2776
- Github: https://github.com/cleeh
충북대학교 정보통신공학, 2014.03 ~ 2020.02
- 이수과목: 데이터베이스 개론, 운영체제, 자료구조, 네트워크, 소프트웨어 공학, 임베디드 프로그래밍
Skill | Experiences | Careers |
---|---|---|
Python | 2 년 | 1 년 |
TypeScript | 1 년 | 1 년 |
Golang | 1 년 | 1 년 |
C | 3 년 | 1 년 |
C# | 2 년 | 1 년 |
PHP | 1 년 | 1 년 |
RDB/SQL | 2 년 | 2 년 |
Docker | 1 년 | 1 년 |
Company | Entry Date | Leave Date | Form |
---|---|---|---|
Conect Inc. | 2019-07 | 2019-08 | 계약직 |
Conect Inc. | 2020-02 | 2022-04 | 정규직 |
저는 의사소통에 능하고 창의적이며 꼼꼼한 사람입니다.
고객과 동료와 효과적으로 의사소통하는 방법을 항상 고민하고 이를 실행에 옮깁니다.
사례
- 배송관리시스템 구축: OpenAPI Specification을 이용한 문서 공유를 통한 소통을 제의
- 고도몰 관리자 페이지 커스터마이징: 사용자(고객)와 인터뷰한 후 요청사항을 듣고 요구사항명세서 작성 및 지속적인 피드백 요청
문제를 해결하는 방법을 찾고, 그 중 선택한 방법이 높은 효율과 낮은 비용으로 실현 가능함을 근거와 함께 제시할 수 있습니다.
사례
- POS 데이터 동기화 프로그램: POS기의 프로그램 역공학 후 DB 데이터 모델의 명세서 작성, 온라인 판매 플랫폼과 동기화하기 위해 데이터 흐름도를 작성, 동기화 프로그램 구현
- 영수증 데이터 수집 방법 탐색: 5가지 방법을 제시, 각 방법을 테스트 후 실현 가능한 방법 중 비용이 낮고 목표를 성취 가능한 방법을 도출
프로젝트 진행 중 또는 완료 후 발생할 수 있는 문제를 항시 고민하고 사전에 예방합니다.
사례
- 배송관리시스템(TMS) 구축: 기존 배송관리시스템의 데이터 모델의 문제점인 이상현상 가능성을 제시, 정규화를 통해 문제 예방
- 온라인 판매 플랫폼 유지/보수: SQL 쿼리 개선을 통해 웹페이지 로딩/기능 성능 향상, 화이트박스 테스트를 통해 기능 이상 검출 및 해결
Company | Project | Skills | Start Date | End Date |
---|---|---|---|---|
Conect Inc. | 영수증 데이터 수집 시스템 구축 | C#, TypeScript, PostgreSQL | 2021.12 | 2022.04 |
Conect Inc. | Line Works API를 활용한 SNS 봇 구현 | Golang | 2021.09 | 2021.10 |
Conect Inc. | 배송관리시스템(TMS) 구축 | TypeScript, Vue.js, REST API, PostgreSQL | 2021.06 | 2021.08 |
Conect Inc. | 온라인 거래 플랫폼(ETP) 디자인 개선 | PHP, MariaDB | 2021.01 | 2021.02 |
Conect Inc. | Serial 포트 Filter Driver 구현 | C, C# | 2020.10 | 2021.01 |
Conect Inc. | 온라인 판매 플랫폼 청주가경홈마트 지점 POS 데이터 동기화 프로그램 구현 및 적용 | Python, MySQL, MariaDB | 2020.09 | 2020.10 |
Conect Inc. | 고도몰 관리자 페이지 커스터마이징 | PHP, MySQL | 2020.03 | 2020.05 |
Conect Inc. | 온라인 판매 플랫폼(ETP) 웹 페이지 유지/보수 | PHP, MariaDB | 2020.03 | 2021.06 |
Conect Inc. | 온라인 판매 플랫폼(ETP) 트라이얼 지점의 제품 정보 동기화 프로그램 구현 | Python3, REST API, PHP, MariaDB | 2020.02 | 2020.03 |
Conect Inc. | 매점에서 영업중 출력하는 영수증 데이터 수집 방법 탐색 | C, C# | 2019.07 | 2019.08 |
POS 기기 프린터에서 출력하는 영수증 데이터를 수집할 수 있는 filter driver를 회사에 예산을 요청해 구매하였습니다. 프로젝트의 목표는 영수증 데이터를 보관하고 처리하는 server 프로그램과 driver에서 데이터를 받아 server로 보내는 client 프로그램의 구현을 맡게 되었습니다.
시스템 구성
- client: .NET
- server: deno
- database: PostgreSQL
작업 목록
- 영수증 데이터 수집 시스템 구축
- DB schema, entity 모델링
- client 프로그램 구현
- 영수증 수집 플랫폼 계정 로그인: 영수증을 발행한 POS 기기 주인의 식별자를 알아내기 위해 로그인이 필요하다.
- driver 데이터 통신: client 프로그램은 통신하여 driver에서 수집한 데이터를 받아와야 한다.
- server 데이터 전송: 수집한 영수증 데이터를 DB에 저장하기 위해 서버와의 통신이 필요하다.
- server 프로그램 구현
- 로그인: 계정 확인 후 JWT 토큰 발행
- 데이터 저장: DB에 영수증 데이터를 저장
업무 성과
- client 프로그램을 설치한 고객의 POS 기기들에서 출력하는 영수증을 토대로 서비스를 제공할 수 있게 되었다.
- 중앙에서 영수증 데이터 수집 프로그램을 제어할 수 있게 되었다.
목표는 사원들에게 편의를 제공하는 SNS 봇 구현입니다.
작업 목록
- 식단 안내 기능 구현: 식사 시작 시 웹에서 스크래핑하여 사무실 근처 식당들의 식단 정보를 안내
- 당번 배정 기능 구현: 월마다 각 사원의 청소 당번 날짜를 결정
- 사다리 게임 기능 구현: 무작위 작업 배정에 사용
시스템 구성
- Callback Server: Golang
업무 성과
- 동료의 업무량이 줄어들었다
온라인 거래 플랫폼(ETP)에 의존성이 높은 배송 관리 시스템(TMS) 분리할 필요가 있었습니다. 기존 배송 관리 시스템(TMS)에 새로운 기능을 붙이는 것이 아니고 분리하여 새롭게 구현하는 이유는 다음과 같습니다:
- 온라인 거래 플랫폼(ETP)의 유지/보수 비용이 많이 듭니다
- 기존 배송 관리 시스템(TMS)에 필요로 하는 새 기능을 붙이는 것이 시스템 확장성을 낮춥니다.
동료와 협업해 분업하였으며 Frontend와 API 명세서 작성 및 배포를 담당하였습니다.
시스템 구성
- 온라인 거래 플랫폼(ETP)
- Web Application Server: PHP(Apache Tomcat)
- Database: MariaDB
- 배송 관리 시스템(TMS)
- Backend: Deno
- Frontend: Vue.js
- API: REST API
- Database: PostgreSQL
작업 목록
- 배송관리시스템(TMS) 요구사항명세서 작성
- 배송관리시스템(TMS) DB schema, entity 모델링
- Frontend 관리자 페이지 구현
- API 명세서 작성 및 배포
업무 성과
- 유지/보수가 힘든 하나의 시스템의 기능 중 일부를 분리하여 유지/보수 비용을 낮추었다.
온라인 거래 플랫폼의 디자인이 오래되어 개선이 필요해졌습니다. 개선이 필요한 페이지가 여럿 있는데 그 중 결제 페이지를 맡게 되었습니다. 개선 대상 페이지에 대한 매뉴얼 또는 인수인계가 없었기에 기존 기능들이 문제없이 작동하면서 디자인을 개선하기 위해서 역공학이 필요했습니다.
시스템 구성
- 온라인 거래 플랫폼(ETP)
- Web Application Server: PHP(Apache Tomcat)
- Database: MariaDB
작업 목록
- 결제 페이지 역공학
- 결제 페이지 수정
- 개선한 결제 페이지 정상 작동 블랙박스 테스트
업무 성과
- PC와 모바일 환경에서의 디자인 개선으로 편의성이 증가해 고객의 플랫폼 이용 만족도가 증가하였습니다.
PC의 프린터에서 출력하는 영수증 데이터를 가져오기 위해서 첫 번째로 구현해야 하는 프로그램은 Filter Driver입니다. POS 기기들은 사용자 친화성이 중요한 이유로 Windows OS를 사용합니다. 따라서, Windows Filter Driver를 제작할 필요가 있습니다. 프로젝트의 목표는 안정적으로 돌아가고 영수증 데이터를 놓침 없이 수집하는 것입니다. 드라이버를 구현하였고, 테스트 PC에서 안정적으로 프린터 데이터를 수집하는 에 성공하였습니다. 하지만, 서비스 대상 PC에서 테스트를 진행하니 일부는 영수증 데이터를 수집하는 것에 실패하고, 일부는 안정적으로 돌아가지 못하였습니다. 원인은 Driver에 대한 이해 부족입니다. 안정적으로 영수증 데이터를 수집하는 Filter Driver의 직접 구현은 어려움이 있으리라 판단하고 대안을 찾았습니다. 그 대안으로 목적에 부합하는 Filter Driver를 판매하는 곳을 발견하였습니다.
시스템 구성
- Filter Driver
- Language: C
- Framework: WDM
- Client 프로그램
- Language: C#
- Framework: .NET
작업 목록
- Filter Driver 구현
- Driver와 통신하여 가져온 데이터를 처리하는 client 프로그램 기획 및 구현
업무 성과
- Filter Driver 직접 구현 실패, 대안으로 판매처 발견
- Driver와 통신하여 데이터를 가져오는 client 프로그램 구현
프로젝트의 목표는 청주가경홈마트 POS 시스템의 DB의 접속 권한 획득 후 상품 정보를 가져와 온라인 판매 플랫폼에서 판매가 가능하도록 동기화하는 프로그램을 구현하는 것입니다.
시스템 구성
- 온라인 거래 플랫폼(ETP)
- Web Application Server: PHP(Apache Tomcat)
- Database: MariaDB
- 청주가경홈마트 POS 시스템
- Database: MySQL
- 제품 정보 동기화 프로그램
- Language: Python3
작업 목록
- 청주가경홈마트 POS 시스템의 DB schema 분석
- DB 접속 권한 획득 및 접근 기능 구현
- 청주가경홈마트 POS 시스템의 DB schema와 온라인 판매 플랫폼 DB schema 매핑
- 상품 가격/재고 정보 동기화 기능 구현
업무 성과
- 상품의 가격/재고 정보 동기화
고도몰을 이용한 업무 수행 시 많은 반복 작업으로 관리자 페이지 효율 개선 요청이 들어왔습니다. 이에 무엇이 문제인지 이해하기 위해 무엇이 불편한지 사용자의 이야기를 듣고 관리자 페이지에 기능들을 추가/보완하였습니다.
시스템 구성
- 고도몰 시스템
- Web Application Server: PHP
- Database: MySQL
작업 목록
- 사용자의 고민 청취 후 요구사항명세서 작성
- DB schema 추가 설계
- 관리자 페이지 커스터마이징
- 거래 명세서 페이지 구현
- 반복 작업 생략(e.g. 검색 필터 변경, 고객 정보 입력, ..)
업무 성과
- 인력이 필요했던 거래 명세서 작성을 프로그램이 대신하도록 하였다.
- 관리자의 업무 효율 4배 증가
시스템 구성
- 온라인 거래 플랫폼(ETP)
- Web Application Server: PHP(Apache Tomcat)
- Database: MariaDB
작업 목록
- 기능 문제 신고 접수
- 플랫폼 웹 페이지 개선 요청 접수
- 요청에 맞게 웹 페이지 보수/개선
업무 성과
- 기획전 콘텐츠 자동 등록 기능 추가
- 정상 작동하지 않는 기능 복구
- 제품 검색에 사용하는 SQL 쿼리를 수정해 사용자 편의성 개선
- 상품 페이지에 띄울 상품이 있음에도 띄우지 않는 문제 해결
- 상품 목록 페이지 최적화
- 장바구니에 일부 상품이 보이지 않는 문제 해결
- 상품의 재고보다 많은 수량이 장바구니에 담기는 문제 해결
트라이얼 지점의 제품 판매를 위해 상품 정보를 온라인 판매 플랫폼 데이터와 동기화할 필요가 있습니다. 인력을 필요로 하는 동기화 작업을 프로그램이 자동으로 하게 만들어 온라인 판매 플랫폼 유지 비용을 낮출 필요가 있었습니다. 따라서 트라이얼 지점에서 제공하는 API를 호출하여 상품 정보를 가져와 온라인 판매 플랫폼(ETP) 상품의 가격, 수량 등의 정보와 동기화하는 프로그램을 기획하고 구현하였습니다. 이를 서버에 적용하여 주기적으로 상품 정보를 동기화하도록 하였습니다.
시스템 구성
- 온라인 판매 플랫폼
- Web Application Server: PHP(Apache Tomcat)
- Database: MariaDB
- 제품 정보 동기화 프로그램
- Language: Python3
- API: REST API
작업 목록
- 트라이얼 DB schema와 온라인 판매 플랫폼 DB schema 매핑
- 온라인 판매 플랫폼 DB schema 추가 설계
- 트라이얼 API 접속 권한 획득 및 API 호출 기능 구현
- 플랫폼 간 상품의 정보(e.g. 가격, 재고, ..) 동기화
- 프로그램 작동 테스트
- 프로그램을 서버에 설치
업무 성과
- 상품의 정보(e.g. 가격, 재고, ..) 동기화 작업에 인력이 필요하지 않도록 만들었다.
매점이 영업하며 생기는 영수증은 기업이 고객을 상대로 서비스를 제공할 수 있도록 하는 다양한 정보들을 가집니다. 그 유익한 정보의 몇 가지 예시는 다음과 같습니다:
- 제품 판매 수량과 그에 따른 자재(e.g. 포장 용기, 일회용 젓가락, ..) 소비량
- 환경(e.g. 시간, 계절, ..)별 제품 소비 패턴
- 각 고객의 제품 소비 패턴
작업 목록
- 영수증 데이터 수집 방법 탐색
업무 성과
- 영수증 데이터 수집 방법 발견
- 영수증 출력 시 발생할 수 있는 프린터 스풀링 파일 분석
- Windows API 후킹을 이용한 영수증 데이터 획득
- 메모리 직접 접근을 이용한 영수증 데이터 획득
- 프린터 포트를 통해 전달되는 프린터 데이터를 장비 이용으로 획득
- Filter Driver를 설치하여 프린터 장비로 전달되는 데이터를 획득
- 위의 5가지 방법들 테스트하여 실현할 수 있고 비용이 적은 방법으로 5번째인 filter driver 설치 방법이 적합함을 발견