Lee Taekjun
Summary
-
소프트웨어 개발을 시작한 후로, 여러 분야의 대회와 프로젝트에서 다양한 도메인 영역의 문제를 설계하고 해석하며
학문과 기술, 비즈니스에 대한 시야를 넓히고자 노력했습니다.
-
항상 과제의 본질에 집중하는 것이 중요하다고 생각합니다. 복잡한
비즈니스를 간단하게 풀어 이해하고, 논리적으로 구조화해 해결책을 찾고자
합니다.
-
기능의 기술적인 구현에서 그치지 않고, 당면한 문제의 본질을 파악하고
분석해 접근하는 일에 관심을 가지고 있습니다. 때문에 주로 서비스의 백엔드
파트를 설계하고 공부해 왔습니다.
-
개발자에게도 기술적인 구현 가능성보다 제품 본연의 가치에 집중하는 것이
중요하다고 생각합니다. 기술적 한계에 의해 제품이 훼손되는 문제를
지양합니다.
-
백엔드 개발에는 Node.js와 TypeScript를 주로 사용해 왔습니다.
리드 개발자로 참여한 프로덕트에 차세대 JS/TS Runtime인 Deno를 도입하기도 했습니다.
-
TypeScript, Python, C/C++을 익숙하게 사용합니다.
Experience
디미페이 팀
2021.06. — 2022.07.
Domain: Finance
BACKEND DEVELOPER / FOUNDER / PROJECT MANAGER
TypeScript Node.js Postgresql Redis Prisma
재학 중 교내 시스템의 문제 상황을 인식하고, 이를 소프트웨어로
해결하고자 프로젝트를 추진했습니다.
-
기존 교내 매점은 현금 결제만 가능한 유인 키오스크 형태로, 처리 속도가 느려 매점 이용 가능 시간의 대부분을 대기 시간에 사용해야 했습니다.
따라서 고등학교 매점의 특성을 고려한 간편결제 시스템을 개발하고 운영하고자 했습니다.
-
교내 구성원 누구도 기술로 인해 소외되지 않고, 모두가 사용할 수 있는
서비스를 제공하고자 노력했습니다.
-
설계 단계에서 교내 설문조사를 통해 본인 명의 국내 계좌, 체크카드, 스마트폰 등 사용 환경을 수집하여 서비스 이용자의 최소 접근 수준을 설정하고 이를 기획에 반영했습니다.
-
전용 앱을 통한 결제와 더불어 SMS, 얼굴인증 결제를 병렬적으로 제공해 스마트폰 없는 간편결제가 가능하도록 설계하였으며, 얼굴인증 결제의 도입으로 매점의 시간당 처리량을 개선할 수 있었습니다.
모바일/안면인증 간편결제 서비스와 매장 키오스크의 백엔드 SW를 개발했습니다.
-
금융 서비스의 특성을 고려해 안정성과 보안에 중점을 둔 시스템을 설계하고자 노력했습니다.
-
결제 단계에서의 OTP 발행을 위한 독자적인 보안 프로토콜을 디자인/개발해 도입했습니다.
-
앱 Onboarding 단계에서 디바이스 고유 해시와 RSA 키를 교환한 후, 매 결제마다 PIN/생체 인증으로 해당 키를 언락해 백엔드에 OTP 발행을 요청하는 구조로 디바이스와 사용자의 고유성을 보장했습니다.
-
서비스 런칭 후 현재까지 3년간 처리된 거래 약 20만 건 중 보고된 보안
사고는 0회입니다.
-
주어진 상황에서 최적의 결과를 도출할 수 있는 솔루션과 적합한 기술
스택을 선정해 프로젝트가 성공적으로 운영될 수 있도록 노력했습니다.
-
Github Actions/Docker를 이용해 CI/CD 파이프라인을 구축하고, 개발/운영 환경을 분리해 지속적인 배포 및 운영 시스템을 구축했습니다.
-
런칭 직전 PG 가맹이 지연되어 목표 일정에 차질이 불가피했습니다.
-
회의를 거쳐 토스아이디를 이용한 QR 송금을 대체 결제 수단으로 선정하고, 송금 알림 후킹/SSE 이벤트 전송 서버를 개발해 기 개발된 시스템에 통합하여 지연을 최소화했습니다.
-
DB/백엔드의 네트워크 문제로 인해 매장 키오스크의 결제 처리 속도가 느려지는 문제가 있었습니다.
-
결제 프로세스의 Pub/Sub 용도로 사용중인 Redis를 사용해 유저 정보를 캐싱하고, 키오스크 디바이스에 상품 정보를 캐싱하는 등의 방법으로 유의미한 속도 개선을 달성했습니다.
매점 운영 과정에 참여하며 제품을 개선했습니다.
-
매 주 입고되는 상품의 재고 등록이 번거로웠습니다.
-
도매 업체가 제공하는 엑셀 파일을 자동화해 등록하는 스크립트를 개발해 통합했습니다.
-
자체 개발한 백오피스는 세금 처리 등 행정 절차가 번거로웠습니다.
-
상용 ERP를 도입해 주기적으로 재고 정보를 Batch 처리하여 회계 관리를 위임하도록 개선했습니다.
주식회사 호랑에듀
2023.04. — 2024.05.
Domain: Education
TECHNICAL DIRECTOR / BACKEND DEVELOPER
TypeScript Deno Supabase
팀과 프로젝트가 당면한 상황을 이해하고 적절한 기술을 선택해 개발 방향을 제시했습니다.
-
database 중심 모델을 설계하고, 기존 Legacy 백엔드를 Supabase와 RLS, Edge Functions로 대체하는 방향으로 프로젝트를 리팩토링했습니다.
-
라이선스, 커리큘럼과 강의 정보를 중심으로 데이터베이스를 설계하고, PostgreSQL과 PostgREST를 이용해 클라이언트 레벨에서 직접 데이터베이스에 접근하도록 구성했습니다.
-
PG 연동이 필요한 라이선스 구매 파트 등에 한해 Edge Functions (Deno
Deploy)를 사용해 기능을 구현했습니다.
-
라이선스 구매 페이지의 빠른 개발을 위해 오픈소스 쇼핑몰을 포크하여
서비스에 통합했습니다.
커리큘럼과 패키지 라이선스 파트 백엔드 SW를 개발했습니다.
-
서비스의 여러 도메인 사이의 복합적인 요구 사항을 만족하는 간결한
데이터베이스를 설계하고 백엔드를 개발했습니다.
-
B2G/B2B 제품의 특성상 라이선스 구매 프로세스의 요구사항이 여타 B2C 구독 서비스와 비교해 복잡했습니다.
-
구매 절차별 상태가 DB에서 일관적으로 보장될 필요가 있었습니다.
PostgreSQL의 Generated Column을 이용해 전체 DB에서 구매 절차의 정합성을 보장했습니다.
-
Supabase의 PostgreSQL wrapper인 postgREST의 한계로 transaction과 같은 기능 사용이 제한적이었습니다. 때문에
결제와 라이선스 발급 과정의 구현에 어려움이 있었습니다.
-
db의 stored procedure에 전체 transaction을 정의하고, postgREST를
이용해 이를 client level에서 호출하는 방식으로 구현해 해결했습니다.
-
PostgreSQL의 RLS (Row-Level Security)를 이용해 모든 데이터에 대한 접근을 제어했습니다.
Education
문과대학 철학과, 이과대학 천문우주학과 | 연세대학교
2023.03. — 재학중
웹프로그래밍과 | 한국디지털미디어고등학교
2020.03. — 2023.02.