이민기

이민기
안녕하세요 👋🏻
저는 완벽한 코드는 없다고 믿으며 계속 고쳐나가는 3년차 개발자 이민기입니다.
블록체인에도 관심을 가지고 꾸준히 성장하고 있습니다.
우측 하단 'Contact'를 통해 연락하실 수 있습니다.

Introduce

프로젝트와 팀의 요구에 맞춰 유연하게 접근하며, 각 상황에서 실질적으로 가장 효과적인 방법을 선택하고 실행하는 것에 기여했습니다.
확장성과 유지보수성을 높이는 구조 설계의 필요성을 다양한 프로젝트에서 체감하며 개선해왔고,
협업 과정에서는 코드의 일관성과 가독성을 높이는 것에 집중해왔습니다.
또한 효과적인 협업을 위해 소통에도 신경을 많이 쓰며, 불확실한 부분은 주저하지 않고 질문하고,
피드백은 항상 명확하고 존중하는 태도로 전달하려고 노력합니다.
그동안 프론트엔드뿐만 아니라 백엔드, Golang 기반 블록체인 네트워크 등 다양한 기술을 경험해왔고, 이러한 경험을 바탕으로 앞으로도 계속 성장하며 팀과 프로젝트에 더 큰 가치를 더하는 개발자가 되고자 합니다.

Work Experience

OpusM

2022.07 ~ Research Engineer

SKT PASS SIGN

SKT PASS앱을 이용한 전자계약 서비스 개발2022.07 ~ 2024.07
Front-End Developer
TypeScript
React
Axios
ReactQuery
ReactHookForm
StoryBook
Redux
StyledComponents
MUI
Jest
TestingLibrary
Jira
Bitbucket
Figma
Slack
  • 전자계약서 생성 시스템 및 PDF 생성 개발
  • React Hook Form의 불필요한 렌더링 최소화와 유연한 커스텀 밸리데이션을 바탕으로, 다양한 계약서 템플릿에 대응하는 확장성 높은 입력 시스템을 구현했습니다.
    React-PDF를 이용해 계약서 템플릿 엔진을 구축하고, 커스텀 훅을 활용하여 PDF 생성 로직을 모듈화하여 입력된 데이터를 기반으로 PDF 형태의 계약서를 동적 생성하는 시스템을 개발했습니다.
    이를 통해 5가지 이상의 계약서 양식을 체계적으로 관리하며, 폼 입력부터 PDF 생성까지의 전자계약 프로세스를 구현했습니다.
  • 개인 계약서 관리 대시보드 개발
  • 사용자가 자신의 계약서를 효율적으로 관리할 수 있도록 개인 계약서 관리 대시보드를 설계 및 개발했습니다.
    계약서 목록 조회, 상세 보기, 서명 상태 추적, 다운로드 등의 기능을 포함하여 계약서 라이프사이클 관리가 가능한 사용자 인터페이스를 구현했습니다.
  • 프론트엔드 설계 및 아토믹 디자인 패턴 도입
  • 추가 개발 과정에서 components 폴더 내부에 다양한 컴포넌트가 혼재되어 관리의 어려움을 느꼈고, 이를 개선하기 위해 아토믹 디자인 패턴을 도입하여 컴포넌트 구조를 리팩토링한 경험이 있습니다. 그 결과 코드 일관성과 신규 기능 개발 효율성을 크게 향상시켰습니다.
  • 서비스 전체 시나리오 및 계약 증명 모델 설계
  • 서비스 기획에 참여하여 전자계약의 법적 효력과 신뢰성을 보장하기 위한 암호학 기반 계약 증명 모델을 설계했습니다. 각 사용자의 고유 식별정보(CI)와 계약서, 서명을 결합하여 해시 기반 증명 체계를 구현했습니다.
    이 모델은 첫 번째 서명자의 정보와 계약서를 해싱한 후, 두 번째 서명자의 정보를 추가하여 최종 해시값을 생성함으로써 계약의 진위성과 무결성을 검증할 수 있도록 설계하었습니다.
  • Storybook 및 테스트 코드 도입으로 품질 향상
  • 디자이너와의 협업에서 컴포넌트 UI를 명확하게 공유하고 소통하기 위해 Storybook을 도입했습니다. 이를 통해 컴포넌트를 문서화하여 디자인과 실제 구현물 간의 차이를 줄이고, 피드백 및 수정 과정을 효율적으로 관리할 수 있었습니다. 
    또한, Jest와 React Testing Library를 활용해 UI 테스트 및 단위테스트를 포함하여 96개의 테스트 케이스를 작성하고 95% 이상의 테스트 커버리지를 달성하였습니다.
  • 서비스 성능 최적화
  • 서비스 초기 로딩 속도를 개선하기 위해 이미지 최적화와 Lazy Loading을 도입했습니다. 
    이를 통해 초기 로딩 시간을 45% 단축하고(4.2초 → 2.3초) Lighthouse 성능 점수를 65점에서 92점으로 향상시켰습니다. 

LedgerMaster 3.0 MetaVisual

블록체인 솔루션 LedgerMaster3.0 Admin 사용자를 위한 Blockchain 대시보드 개발2024.07
Front-End Developer
TypeScript
Next.Js
ReactHookForm
TailwindCSS
Turborepo
StoryBook
Jest
TestingLibrary
ReactQuery
Yarn
Jira
Bitbucket
Figma
  • 블록체인 익스플로러 대시보드 개발
  • 블록체인 데이터를 실시간으로 시각화하는 대시보드를 개발했습니다. 서버 API를 통해 블록 정보, 트랜잭션 내역, 계정 정보 등을 테이블 형태로 구성하여, 사용자가 주요 블록체인 데이터를 한눈에 확인할 수 있는 인터페이스를 구현했습니다.
  • 스마트 컨트랙트 컴파일 및 배포 시스템 구현
  • 스마트 컨트랙트의 컴파일부터 배포까지의 전체 프로세스를 관리할 수 있는 사용자 인터페이스를 개발했습니다.
    스마트 컨트랙트 파일 업로드, 컴파일 결과 확인, 배포 파라미터 설정 등의 기능을 통해 개발자가 효율적으로 스마트 컨트랙트를 관리할 수 있도록 구현했습니다.
  • 프론트엔드 전체 구조 설계
  • 애플리케이션의 확장성과 유지보수성을 고려하여 Feature-Slice Design Pattern(FSD)을 도입했습니다. 비즈니스 로직, 엔티티, 위젯 등을 기능별로 분리해 관리함으로써 코드 구조를 체계화하고, 각 도메인의 독립적인 개발과 테스트가 가능해졌습니다. 
    또한, package/ui에서는 순수 UI 컴포넌트를 별도로 관리하며, Atomic Design Pattern을 적용하여 컴포넌트의 재사용성과 확장성을 높였습니다. 이를 통해 UI 일관성을 확보하고, 신규 기능 추가 및 유지보수 효율성을 크게 향상시켰습니다.
  • Next-Auth를 이용한 Credential 로그인 개발
  • 사용자 인증 및 세션 관리를 개선하기 위해 Next-Auth 기반 JWT 인증 시스템을 구현했습니다.
    이를 통해 세션 관리 및 서비스 보안성이 강화되었습니다. 
  • TurboRepo를 이용한 Monorepo 구조 구축
  • 프로젝트의 패키지 관리 효율성을 높이고 솔루션 문서 애플리케이션과 어드민 프론트엔드 간 디자인 일관성을 유지하기 위해 TurboRepo를 활용하여 Monorepo 구조를 도입했습니다. 이를 통해 공통 컴포넌트와 설정 파일의 중앙화가 가능해졌습니다.
    특히 디자인 시스템을 독립적인 패키지로 분리하여 예정된 문서 애플리케이션과의 UI 일관성을 확보하고, 패키지 간 의존성 관리를 단순화했습니다.
  • Jest를 이용한 단위 테스트 작성
  • 코드의 안정성을 위해 Jest와 Testing Library를 활용하여 주요 컴포넌트와 비즈니스 로직에 대한 단위 테스트를 작성했습니다. 이를 통해 코드 커버리지가 80% 이상 확보되었습니다. 

LedgerMaster 3.0

블록체인 솔루션 LedgerMaster3.0 Admin Server 개발2023.06 ~
Back-end Developer
TypeScript
Express
MongoDB
Mongoose
Docker
Web3.Js
Solc
Joi
JsonWebTokens
EthereumJs
Quorum
Axios
Jira
Bitbucket
Nats.io
Jest
  • Smart Contract 컴파일, 배포 및 실행 기능 구현
  • 어드민에서 스마트 컨트랙트를 개발 및 배포를 위한 ERC20, ERC721 등 간단한 SmartContract 템플릿을 구성하고, OpenZeppelin과 solc 라이브러리를 통해 컴파일 및 배포 기능을 구현했습니다.
  • MongoDB를 활용한 분산 이벤트 데이터 스토리지 설계
  • MSA 기반 시스템에서 NATS를 통해 수신되는 이벤트 데이터를 효율적으로 저장하고 분석하기 위한 MongoDB 데이터베이스 구조를 설계하고 구현했습니다.
  • Jest를 활용한 DDD 기반 단위 테스트 구현
  • 도메인 주도 설계(DDD) 기반의 User 도메인, User 서비스 및 인증 서비스에 대해 Jest 프레임워크를 활용한 체계적인 단위 테스트를 구현했습니다.
    사용자 등록, 이메일 중복 검사, 비밀번호 재설정 및 토큰 기반 인증 로직에 대한 성공 및 예외 케이스를 모두 검증하여 시스템의 안정성과 보안성을 확보했습니다.
  • Npm, Nexus private repository 연동
  • MSA 구조로 여러 Node.js 서버를 운영하는 환경에서, 서비스 간에 공통으로 사용하는 패키지를 효율적으로 관리하기 위해 Npm과 Nexus private repository를 연동한 공통 라이브러리 관리 시스템을 구축했습니다. 이를 통해 패키지 버전 일관성을 유지하고, 각 서비스의 개발 워크플로우를 개선할 수 있었습니다.
  • API Document 및 Release Note 작성
  • 분기별 주요 업데이트와 코드 변경 사항을 체계적으로 관리하기 위해 API 엔드포인트 문서화와 Release Note 작성을 진행했습니다.
    이를 통해 팀 내 협업과 코드 추적성을 강화했습니다.

LedgerMasterJS SDK

블록체인 솔루션 LedgerMaster3.0 사용을 위한 SDK 개발2024.04 ~ 2024.06
TypeScript
Webpack
EthereumJs
Jsdelivr
Npm
Jira
Bitbucket
  • 비밀번호 기반 지갑 관리 SDK 개발
  • 블록체인 솔루션의 사용자 편의성 향상을 위해 ethereumjs-wallet 라이브러리를 활용한 암호화폐 지갑 관리 SDK를 개발했습니다. 사용자가 비밀번호만으로 지갑 생성 및 접근이 가능하도록 하여 개인키 관리의 부담을 줄이고, 비밀번호 변경 기능을 통해 보안성을 강화했습니다.
  • 오프라인 트랜잭션 서명 기능 구현
  • Web3.js와 ethereumjs-tx 라이브러리를 활용하여 스마트 컨트랙트 메서드 호출을 위한 트랜잭션 생성 및 서명 모듈을 구현했습니다. 사용자가 개인키를 직접 노출하지 않고 암호화된 지갑과 비밀번호만으로 안전하게 트랜잭션을 서명할 수 있는 인터페이스를 제공했습니다.

Opus Wallet

DID(Decentralized Identity)를 위한 BlockChain Wallet 개발 팀으로 DID 연구 및 개발에 참여2023.01 ~ 2023.05
Researcher
Docker
JavaScript
HyperLedger
  • DID 프로세스 시나리오 연구 및 설계
  • 사내 블록체인 기술 기반의 DID Wallet 개발을 위해 출퇴근 인증 시스템 프로세스를 설계했습니다. 회사가 이슈어(Issuer)로서 QR 코드를 통해 직원(홀더, Holder)에게 VC(Verifiable Credentials)를 발급하고, 직원은 회사 출퇴근 시스템(검증자, Verifier)에 VP(Verifiable Presentation)를 제출하여 출퇴근을 증명하는 시나리오를 제안했습니다.
    이 설계를 통해 기존의 카드 태깅 방식보다 보안성이 강화된 신원 인증 시스템의 가능성을 연구했습니다.
  • Hyperledger 기반 DID 인프라 연구 및 프로토타입 개발
  • 설계한 DID 출퇴근 인증 시스템의 실현 가능성을 검증하기 위해 Hyperledger VON, Aries Cloud Agent, Indy Tails Server를 활용한 테스트 환경 구성에 참여했습니다. 분산원장 기술을 활용하여 중앙 서버 없이도 신원 정보를 안전하게 관리할 수 있는 가능성을 탐구하고, VC 발급 및 VP 검증 프로세스의 개념 증명(PoC) 검증에 기여했습니다.
    이 과정에서 개인정보 보호와 데이터 주권을 모두 충족하면서도 신뢰할 수 있는 출퇴근 인증 시스템의 기술적 타당성을 확인했습니다.

Opstra

Cosmos SDK 기반 커스텀 체인 개발 및 CometBFT 합의 알고리즘을 활용한 분산 네트워크 구축2025.04 ~
Go
proto3
ubuntu
  • Cosmos SDK 기반 커스텀 블록체인 네트워크 구축
  • 자체 블록체인 네트워크 개발을 위해 Cosmos SDK의 체인 설정과 모듈 구성을 커스터마이징했습니다. 네트워크 식별자, 토큰 단위(denom), 주소 체계(bech32 prefix)를 설계하고, 거버넌스 매개변수를 설정하여 독립적인 블록체인 네트워크의 기초를 구축했습니다.
  • 노드 구성 셋업
  • 테스트 네트워크 구축을 위해서 회사 사내 PC를 이용하여 벨리데이터 노드 4대와 RPC 노드 2대를 구성하여 P2P 연결을 통해 네트워크를 구성하였습니다.
  • 자체 테스트 네트워크 실시간 모니터링 시스템 구축
  • PingPub 대시보드를 포크한 프로젝트에 연결하여 구축한 테스트 네트워크 노드들에 대한 실시간 모니터링 시스템을 구축하였습니다.

Other Experience

Projects

Project Maintainer
Open Source Template를 커스텀하여 개인 블로그를 운영하고 있습니다.
Next.Js
TypeScript
Vercel
MDX
PostCSS
TailwindCSS
Prettier
Developer
Cosmos SDK 및 ABCI의 동작 원리를 공식문서를 기반으로 스터디를 진행하였으며, IBC Transaction과 Vote Extension을 트래킹하기 위한 모니터링 시스템을 개발을 진행하고 있습니다.
Go
TypeScript
React
Next.Js
TailwindCSS
Github
TurboRepo

Contributions

2023.07.23
Contributor
Hyperledger Indy Tails File을 수신, 저장 및 제공하는 오픈 소스 프로젝트에서 Docker indy_vdr의 버전을 명시적으로 지정하지 않아 발생하는 오류를 수정했습니다.
Docker
2023.08.24
Contributor
Cosmos 풀 노드에서 LCD/RPC 엔드포인트를 통해 데이터를 독점적으로 가져와 체인 데이터를 실시간으로 탐색할 수 있는 오픈 소스 Explorer 프로젝트의 문서 개선에 기여하였습니다.
2024.08.31
Contributor
Cosmos 공식문서를 읽는 스터디를 진행하던 중 ABCI 관련 개발자 문서의 품질 향상에 기여하였습니다.