데브허브 | DEVHUB | Account Balance Tracker - Low Level Design Interview QuestionAccount Balance Tracker - Low Level Design Interview Question
- 사용자 계좌 잔액을 추적하고 입금, 출금, 이체 등 텍스트 기반 거래를 처리하는 인메모리 원장 시스템을 설계합니다. 💰
- 거래는 순서대로 처리되며, 공백, 잘못된 형식, 잔액 초과 인출 시도는 자동으로 무시됩니다. 🚫
- 사용자 이름은 대소문자를 구분하지 않으며, 모든 변형은 표준화된 (예: Title Case) 고유 이름으로 매핑되어 잔액이 관리됩니다. 🔡
- 사용자 잔액은
defaultdict (또는 해시맵)을 사용하여 저장되며, 초기 미등록 사용자는 잔액 0으로 자동 설정됩니다. 📚
AccountBalanceTracker 생성자, 거래 목록을 처리하는 processTransactions, 특정 사용자의 잔액을 조회하는 getUserBalance 메서드로 구성됩니다. 🛠️
- 거래 문자열은 내부 파싱 메서드를 통해 작업 유형, 사용자, 금액으로 분리되고, 유효성 검사(예: 충분한 잔액 확인) 후 적용됩니다. 🔍
processTransactions의 시간 복잡도는 O(K) (K는 거래 수), getUserBalance는 O(1)이며, 공간 복잡도는 O(U) (U는 고유 사용자 수)입니다. ⏱️