학습 프로젝트
금융 애플리케이션
데스크톱 애플리케이션
GIT - https://github.com/blank09114/TossCopy
2026.01.07. 18:35
프로젝트 개요
자바 GUI 기반 금융 애플리케이션입니다. 저는 이 중 클래스 다이어그램, 발표 자료 작성 및 이벤트 기능 구현을 담당했습니다.
- 개발 형태: 데스크톱 애플리케이션
- 개발 인원: 4인
- 기술 스택
- 언어&라이브러리: Java, Swing
- 개발 환경: Eclipse
→ 성과 자료
클래스 다이어그램

핵심 클래스 구조를 설계하고, 이를 문서화했습니다. Account 추상 클래스를 상속 받은 BankAccount(입출금 계좌)와 StockAccount(주식 계좌)를 통해 계좌를 관리하고, History 객체를 통해 거래 내역을 관리하며, EventManager를 통해 출석 체크, 퀴즈 풀이, 포인트 환전 로직을 구현하는 형태입니다. 유저, 계좌, 거래 내역 등의 객체는 파일입출력을 이용해 관리합니다.
퀴즈 풀이 시스템




- 문제 데이터 구조
- String[][] easyQuizzes/hardQuizzes 배열로 각각 문제/보기/정답 관리
- 각 문제는 질문(quiz[0]) + 보기 4개(quiz[1]~quiz[4]) + 정답 인덱스(quiz[5]) 형식으로 저장
- 퀴즈 실행 흐름
- startEasyQuiz()/startHardQuiz() 메서드 호출 시 실행
- Random 클래스로 문제 무작위 선택 → JOptionPane.showInputDialog로 사용자 입력 받음
- 입력 값이 정답 인덱스와 일치하는지 비교 후 결과 처리
- 중복 방지 플래그
- easyCompleted / hardCompleted 불리언 변수를 두어, 퀴즈를 한 번만 풀 수 있도록 제약
- 모든 문제를 풀었을 경우 메시지 출력 후 종료
- 포인트 적립
- 문제 난이도, 정답 여부에 따라 차등 지급
- 적립 대상은 Main.AccountIn (현재 로그인·연결된 계좌 객체)
- 계좌 객체의 setPoint() 메서드 호출로 포인트 업데이트
포인트 환전 기능


- 환전 조건
- point 값이 10000 이상일 때만 환전 가능
- 1000 단위로만 환전 가능(exchangeAmount % 1000 == 0 검사)
- 환전할 포인트가 현재 보유 포인트 이하인지 검증
- UI 처리
- JOptionPane.showInputDialog로 환전할 포인트 입력받음
- 입력값 검증 후 정상일 경우 point 차감 → 계좌(Main.AccountIn) 잔액에 해당 금액 추가
- 예외(NumberFormatException) 발생 시 메시지 출력
- 계좌 연동
- Main.AccountIn 객체의 setBalance() 호출로 계좌 잔액 증가
- 포인트가 현금화되어 계좌 잔액으로 전환되는 구조
발표 자료 제작
발표 자료는 프로젝트의 전반적인 구조와 실행 과정을 한눈에 이해할 수 있도록 직접 구성했습니다. 클래스 다이어그램과 실행 화면을 중심으로, 회원가입부터 계좌 개설, 거래, 이벤트, 주식 기능까지 전체 흐름이 자연스럽게 이어지도록 정리하였으며, 이를 통해 제가 프로젝트 전반을 깊이 이해하고 전체적인 완성도를 높였다는 점을 효과적으로 보여줄 수 있었습니다.
배운 점
이번 프로젝트를 통해,
- 자바로 금융 애플리케이션을 직접 구현하며 객체 지향 프로그래밍을 익혔고,
- 클래스 다이어그램 설계와 코드 구현을 연결하는 과정을 통해 설계 능력과 구현력을 동시에 성장시킬 수 있었고,
- 전체 구조 설계와 발표 자료 제작까지 맡으면서 프로젝트 전반을 주도적으로 이끌어 협업 경험을 쌓을 수 있었습니다.
아쉬운 점
- 파일 입출력 기반 데이터 관리: 계좌와 거래 내역을 텍스트 파일에 저장해 실제 서비스처럼 안정적이지 못했습니다.
→ 이후에는 데이터베이스 연동을 통해 확장성과 안정성을 강화하고자 합니다.
- 보안 처리 미흡: 비밀번호 암호화나 입력값 유효성 검증이 부족했습니다.
→ 추후에는 암호화 로직과 예외 처리를 보완해 보안성을 확보할 필요가 있습니다.
- 실시간성 부족: 실제 금융 서비스와 달리 외부 주식·송금 API와 연동하지 못했습니다.
→ 향후 외부 금융 API 연동을 통해 현실감 있는 서비스로 발전시킬 수 있을 것입니다.