이 프로젝트는 KB IT's Your Life 4기 미니 프로젝트로 개발된 간단한 Java 기반의 카드 실적 분석 시스템입니다. 사용자가 다양한 회사의 각 카드로 결제를 하면 해당 지출 내역을 기반으로 간단한 분석을 수행하고 사용자에게 보여줍니다.
2023년 8월 3일 ~ 8월 4일 (2일간)
- 강유석 (https://github.com/kangyuseok)
- 강태섭(https://github.com/KSEOP)
- 박서희 (https://github.com/seohee99)
- 조원형 (https://github.com/JoWonHyeung)
-
카드 및 회원 관리:
- 카드 정보 등록, 조회, 수정, 삭제 (CRUD)
- 회원 정보 등록, 조회, 수정, 삭제 (CRUD)
-
결제 기능:
- 카드 결제 시 사용 내역 저장
-
소비 이력 관리:
- 소비 이력 조회
-
분석 기능:
- 기간별 소비 분석
- 카테고리별 소비 분석
- 총 합계 계산
- 회원 등급 확인
-
✔️작업 방식
- 모든 팀원이 전체 구조를 정확히 파악한 뒤 구현하는 것을 목표로 하여 설계는 회의를 통해 함께 진행하되, 기능은 나누어 진행
-
✔️역할
- 강유석 — CRUD 기능
- 강태섭 — 데이터 관련 작업
- 박서희 — 결제 기능, 회원 등급 기능
- 조원형 — 조회 기능, 분석관련 기능
-
✔️변경사항
변경 항목 | 기존 내용 | 문제 확인 | 변경 내용 |
---|---|---|---|
DB modeling | 회사이름(pk), 주소를 가진 Company 존재 | Company 클래스, DB의 존재 의미와 역할 상실 확인 | Company 클래스 및 테이블 제거 |
JAVA - Class MyDate | Mydata 클래스 제작 및 활용 (YYYY/MM/DD) | 오라클 insert 시 데이터 타입 오류 발생. | - 컨벤셔널하고 안전한 Java - Oracle 데이터타입 호환 형태 조사 후 MyData 클래스 제거. - String ‘YYYY-MM-DD’ 으로 다룬 후 ValueOfDate() 으로 변환하는 로직 구현 |
JAVA - isExist() | - 기존 customer의 ssn 유무를 확인하는 isExist만 있었음 - getCustSsn() 을 인자로 받아 확인함. |
중복 되는 카드 번호 등록 SQL 쿼리 오류 발생. | isExist(//)는 cust 또는 card 객체 인자를 받는(오버로딩) 형태로 변경됨. |
알고리즘 | 특정 금액(10만원) 이상 금액 소비 검색 시 이분탐색 적용 계획 | 이분탐색의 기능과 필터의 목적이 부합하지 않음 | 버블정렬을 이용해 필터된 검색결과 출력하는 것으로 변경 |
JAVA - Identifier | RegisterDAO | 카드 및 회원정보 수정 기능을 갖고 있으나 불명확한 identifier | InfoHandlerDAO로 변경 |
Usecase Diagram |
Front UI |
Class Diagram |
DB Modeling |
📦src ┣ 📂com ┃ ┣ 📂card ┃ ┃ ┣ 📂algorithm ┃ ┃ ┃ ┗ 📂test ┃ ┃ ┃ ┃ ┗ 📜AlgorithmTest.java ┃ ┃ ┣ 📂dao ┃ ┃ ┃ ┣ 📂impl ┃ ┃ ┃ ┃ ┣ 📜InfoHandlerDAOImpl.java ┃ ┃ ┃ ┃ ┗ 📜ServiceDAOImpl.java ┃ ┃ ┃ ┣ 📜InfoHandlerDAO.java ┃ ┃ ┃ ┗ 📜ServiceDAO.java ┃ ┃ ┣ 📂exception ┃ ┃ ┃ ┣ 📜DuplicateSSNException.java ┃ ┃ ┃ ┣ 📜InvalidTransactionException.java ┃ ┃ ┃ ┗ 📜RecordNotFoundException.java ┃ ┃ ┣ 📂test ┃ ┃ ┃ ┗ 📜Test.java ┃ ┃ ┣ 📂util ┃ ┃ ┃ ┗ 📜MyDate.java ┃ ┃ ┣ 📂vo ┃ ┃ ┃ ┣ 📜Card.java ┃ ┃ ┃ ┣ 📜Company.java ┃ ┃ ┃ ┣ 📜Cust.java ┃ ┃ ┗ ┗ 📜Purchase.java ┣ 📂config ┃ ┣ 📜.gitignore ┗ ┗ 📜ServerInfo.java