은행 기능 구현하기
Java 17
- 은행 계좌 관리
- 은행은 여러 개의 계좌를 관리할 수 있습니다.
- 각 계좌는 계좌 번호, 예금주 이름, 잔액으로 초기화됩니다.
- 계좌 생성
- 사용자는 은행에서 계좌를 개설할 수 있습니다.
- 계좌는 일반 계좌와 특별 계좌로 구분되며, 특별 계좌는 추가적으로 수수료를 설정할 수 있습니다.
- 계좌 번호는 고유해야 하며 중복된 계좌 번호는 생성할 수 없습니다.
- 예금 및 출금
- 사용자는 특정 계좌에 예금 및 출금을 할 수 있습니다.
- 예금 시, 금액이 음수인 경우 예외를 발생시키고, 양수인 경우만 예금이 가능합니다.
- 출금 시, 잔액이 부족하면 출금할 수 없습니다. 또한, 출금 시 수수료(예: 1%)가 적용됩니다.
- 출금 시, 예금주 본인이 아니면 출금할 수 없습니다.
- 계좌 잔액 조회
- 사용자는 자신이 개설한 계좌의 잔액을 조회할 수 있습니다.
- 계좌의 잔액을 조회하려면 예금주 본인만 조회할 수 있으며, 다른 사람은 조회할 수 없습니다.
- 은행 계좌 목록 조회
- 은행은 등록된 모든 계좌의 목록을 조회할 수 있어야 하며, 계좌 번호, 예금주 이름, 잔액을 포함하여 출력해야 합니다.
- 계좌 소유
- 하나의 계좌는 한 명의 예금주만 소유할 수 있습니다.
- 계좌 번호 고유성
- 계좌 번호는 고유해야 하며, 중복된 계좌 번호를 가질 수 없습니다. 계좌 생성 시 중복된 번호가 있을 경우 예외를 발생시킵니다.
- 계좌 접근 제한
- 예금주 본인만 해당 계좌에 대해 출금, 예금, 잔액 조회가 가능합니다.
- 예금주가 아닌 사용자가 계좌에 접근하거나 잔액을 조회하거나 출금하려고 하면 접근 불가 메시지가 출력됩니다.
- 이 레포지토리를 포크합니다.
- 본인의 이름으로 브랜치를 만듭니다. (예시: yeseol)
- 메인 함수의 주석을 읽으며 코드를 작성해 주세요. (필요시 클래스를 분리해도 괜찮습니다.)
- 3번 과정을 진행하며 커밋해주세요. (밑 커밋 규칙 참고)
- 모두 완료한 후 Pull Request를 보내주세요.
Type: Title
- 헤더는 type을 지정해 주고, title을 명령문으로 작성한다.
- 헤더는 너무 길지 않도록 한다.
- Body에는 해당 커밋에서 무엇을 왜 하였는지 구체적으로 서술한다.
- Footer는 선택사항이다.
- 원활한 소통을 위해 한글로 작성한다.
type | description |
---|---|
feat | 새로운 기능 |
fix | 버그 수정 |
refactor | 코드 리팩토링 |
test | 테스트 코드 작성 |
set | 프로젝트 세팅 |
chore | 자잘한 수정 |
delete | 삭제 |
- ~~ 구체적인 설명
"