Java 입출금 코드 메소드로 리펙토링
금융에서 사용하는 변수명과 뜻부터 용어 정리가 필요하다.
- 변수 balance 잔고는 통장에 남아있는 잔액이다.
- 변수 deposit 입금으로 통장에 돈을 넣는다.
- 변수 withdraw 출금으로 통장에서 돈을 꺼낸다
- 변수 Amount 는 거래 금액이다.
이제 아래는 리팩토링이 필요한 코드이다.
deposit, withdraw 메소드를 만들어 보도록 한다.
Java 코드
public class Bank {
public static void main(String[] args) {
int balance = 10000;
// 입금액 2000원
int depositAmount = 2000;
balance += depositAmount;
System.out.println(depositAmount + "원 입금. 현재 잔액: " + balance + "원");
// 출금액 4000원
int withdrawAmount = 4000;
if (balance >= withdrawAmount) {
balance -= withdrawAmount;
System.out.println(withdrawAmount + "원 출금. 현재 잔액: " + balance + "원");
} else {
System.out.println(withdrawAmount + "원 잔액 부족");
}
System.out.println("잔액량: " + balance + "원");
}
}
Java 코드 실행 결과
2000원 입금. 현재 잔액: 12000원
4000원 출금. 현재 잔액: 8000원
잔액량: 8000원
앞에서 설명한 코드를 이용하여 메소드를 만들고 코드를 개선하도록 한다.
public class Bank {
public static void main(String[] args) {
int balance = 10000;
// 입금액 2000원
balance = deposit(balance, 2000);
// 출금액 4000원
balance = withdraw(balance, 4000);
}
public static int deposit(int balance, int amount) {
balance += amount;
System.out.println(amount + "원 입금. 현재 잔액: " + balance + "원");
return balance;
}
public static int withdraw(int balance, int amount) {
if (balance >= amount) {
balance -= amount;
System.out.println(amount + "원 출금. 현재 잔액: " + balance + "원");
} else {
System.out.println(amount + "원 출금을 시도했으나, 잔액이 부족합니다.");
}
return balance;
}
}
- deposit 메소드를 새로 만들어 balance 잔액을 업데이트 되도록 개선하였다.
- withdraw 메소드를 새로 만들어 balance 잔액을 업데이트 되도록 개선하였다.
- main 메소드는 입금과 출금역할을 하는 메소드를 분리시켰다. 수정 범위가 한정되었기 때문에 개발자 분업이 가능하고 유지보수를 수월하게 만들도록 개선한 것이다.