본문 바로가기

생활코딩/JAVA1

생활코딩) JAVA1 - 14.3. 나의 앱 만들기 - 변수도입

https://youtu.be/7Wg74I0QLaE

 

자 이전 시간에 우리 일 잘하는 사람이 모습을 살펴 봤죠. 배움이 없이도 자기가 알고 있는 것만 이용해서 문제를 해결하는 사람이죠. 
그런데 우리가 일 잘하는 사람으로 오래 있다 보면 내가 알고 있는 것만으로도 한계가 옵니다. 그리고 그 한계를 스스로 느낄 수 있다는 것이 중요합니다. 자 그럼 그 때가 어느 때 다 공부할 때 라는 것이죠.

 

자 그래서 우리가 어렵게 어렵게 자바에 기능 중에 변수란 걸 배웠어요. 그리고 이 변수 라고 하는 것을 우리가 만들고 있는 애플리케이션에 도입해봐야겠다 라는 마음까지 먹은 상태이신 거에요. 누가요? 여러분이요. 제가 아니라 아셨죠 음

 

public class AccountingApp {

	public static void main(String[] args) {
		double valueofSupply = 12345.0;
		double valueofSupply = valueofSupply;
		System.out.println("Value of Supply : "+valueofSupply);
		System.out.println("VAT : "+ (valueofSupply*0.1) );
		System.out.println("Totral : "+ (valueofSupply + valueofSupply*0.1) );
		System.out.println("Expense : "+ (valueofSupply*0.3) );
		System.out.println("Income : "+ (valueofSupply*(1.0 - 0.3)));
		System.out.println("Dividend: "+ (valueofSupply - valueofSupply*0.3)*0.5);
		System.out.println("Dividend: "+ (valueofSupply - valueofSupply*0.3)*0.3);
		System.out.println("Dividend: "+ (valueofSupply - valueofSupply*0.3)*0.2);



	}

}


자 그럼 우리 변수를 한 번 도입해 봅시다 자 여기 보면은 여기 있는 이 값 있죠. 저 값은 공급 가운데 데이터 타입은 더블 형이에요. 그래서 저는 데이터 타입의 변수명은 valueofSupply 라는 이름으로 저 값을 이렇게 지었습니다 자 그러면 유인이 값은 이제 이걸로 바꾸면 되요. 요렇게 valueofSupply로 바꾸면 되죠. 어 그리고 이제 이렇게 하면 되지만 이클립스에 는 환상적인 기능이 있어요. 왜냐하면 한 번에 변수화 시키는 기능이 있습니다. 오른쪽 클릭해서 Refactor 로 가서 Extract Local Variable 클릭하면 요렇게 생긴 화면이 뜨는데 여기에서 플라이가 아니라 valueofSupply라고 하고 ok 를 누르면 보시는 것처럼 이렇게 한방에 바뀌는 폭발적인 효과를 얻을 수 있습니다.

자 그리고 나머지 값들도 변수와 를 시키면 좋을 것 같아요. 왜냐하면 여기에 있는 0.1이 내가 뭔지 어떻게 알아요. 그래서 변수화를 좀 시켜 볼 건데요 어 여기 있는 0.1은 사실 Refactor로 들어가서 Extract Local Variable로 바꿀 것. 이제부턴 단축키를 익혀 보세요.  전 단축키를 쓸 거예요. 자 그래서 요거는 VAT 즉 부가가치세율이 란 뜻입니다. ok 누르면 0.1로 되어 있었던 값들이 한 번에 이렇게 바뀌는 것을 볼 수가 있어요.

자 그 다음에 여기 있는 이 0.3 은 어 공급에게 0.3 만큼이 비용이라고 우리가 계산을 하기로 했잖아요. 그래서 이거를 또 이렇게 해서
변수화를 시켜 볼까요. expense. 자 그런데 위 프리뷰를 한번 해보시면 어떻게 바뀔 것인지를 미리 볼 수 있어요. 너 어디 어디가 바뀌는가 를 좀 살펴보면은 일단은 여기 있는 이 0.3들이 이렇게 바뀔 건데 그 중에 얘가 또 눈에 띄네요. 얘는 뭐예요 그 분배를 할 때 0.3% 한다는 거잖아요. 여러분이 이런 기능을 사용할 때 일괄적으로 바꿔 버리면 굉장히 위험한 일이 생길 수 있다는 것은 어 알고 계셔야 돼요. 자 그래서 저는 요걸 캔슬 해서 얘 같은 경우는 제가 직접 expenseRate 라고 이렇게 바꿔 줬어요 그럼 이제 에러가 뜨죠. 왜 에러가 떠요 '저런 변수는 없는데요' 라는 뜻이에요.


자 이렇게 마우스를 올려보면 신통하게 create local variable 'expenseRate' 라고 되어 있습니다. 클릭하면 보시는 것처럼 이렇게 만들어져요 완전 대박 기능이죠. 자 그리고 여기다가 이제 0.3 이라고 하게 되면 아까 코드는 똑같지만 여기에 있었던 값이 본질을 분명하게 변수를 통해서 우리가 어 이름을 부여한 거죠.

 

그리곤 어디도 바꿔야 돼요 여기도 이제 똑같이 expense로 이렇게 바꿔줘야겠죠. 음 자 이렇게 하는 겁니다 자 그래서 위에 있는 값들은 위쪽으로 제가 모아 놓을게요. 그래야지 보기가 좋죠.  자 그 다음에 여기 있는 이 값도 우리가 변수로 바꿀 수 있어요. 어떻게요. 이만큼을 이렇게 선택해서 역시나 Extract Local Variable 을 통해서 저 값이 vat 다라고 이렇게 알려주는 거죠.

 

.

.

.

 

public class AccountingApp {

	public static void main(String[] args) {
		double valueofSupply = 12345.0;
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueofSupply*vatRate;
		double total = valueofSupply + vat;
		double expense = valueofSupply*expenseRate;
		double income = valueofSupply - expense;
		double Dividend1 = (valueofSupply - valueofSupply*0.3)*0.5;
		double Dividend2 = (valueofSupply - valueofSupply*0.3)*0.3;
		double Dividend3 = (valueofSupply - valueofSupply*0.3)*0.2;

		System.out.println("Value of Supply : "+valueofSupply);	
		System.out.println("VAT : "+ vat );
		System.out.println("Total : "+ total );
		System.out.println("Expense : "+ expense );
		System.out.println("Income : "+ income);
		System.out.println("Dividend: "+ Dividend1);
		System.out.println("Dividend: "+ Dividend2);
		System.out.println("Dividend: "+ Dividend3);



	}

}


3으로 이렇게 바꾼 다음에 여기에 있는 요 변수들은 위로 다 올려 줍시다. 자 그리고 여기 있는 이 수치도 보니까 음 여기 있는 요 값은 왜 나온 거에요 저건 expense 즉 비용을 계산하는 코드입니다. 그래서 부부는 ex 펜스를 이렇게 바꿔 줄게요.

요렇게 됐구요 그리고 공급가 에서 expense 를 빼면 걔가 뭐예요. income이죠.  요거 요 부분은 또 뭐를 바꾸면 돼요. income 올 바꾸면 되는 거죠 어때요.

 

public class AccountingApp {

	public static void main(String[] args) {
		double valueofSupply = 12345.0;
		double vatRate = 0.1;
		double expenseRate = 0.3;
		double vat = valueofSupply*vatRate;
		double total = valueofSupply + vat;
		double expense = valueofSupply*expenseRate;
		double income = valueofSupply - expense;
		double Dividend1 = income*0.5;
		double Dividend2 = income*0.3;
		double Dividend3 = income*0.2;

		System.out.println("Value of Supply : "+valueofSupply);	
		System.out.println("VAT : "+ vat );
		System.out.println("Total : "+ total );
		System.out.println("Expense : "+ expense );
		System.out.println("Income : "+ income);
		System.out.println("Dividend: "+ Dividend1);
		System.out.println("Dividend: "+ Dividend2);
		System.out.println("Dividend: "+ Dividend3);



	}

}


이전에 우리가 짰던 코드 보다 훨씬 더 보기 좋은 코드가 됐죠.  각각의 어떠한 데이터들의 어떤 의미를 갖는지를 우리가 변수를 통해서
이름을 붙여줬다 라는 것에 주목을 하시고요.

 

그 다음에 이제 우리가 계산하는 값을 바꾸고 싶을때는 예전에는 막 부산하게 얘 바꿔야 됐고 막 강제로 바꾸다 보면은 바뀌면 안 되는 것까지 바뀌고 그랬거든요. 이제 변수를 도입한 이까 어떤 폭발적 효과가 생겨요? 만약에 내가 만원을 계산해야 된다 그럼 여기를 10000으로 바꾼 다음에 실행하면 그만의 해당되는 계산 결과를 우리한테 보여주는 환상적인 앱을 만들 수 있게 된 것입니다. 이것만으로도 우리 삶의 충분히 위대한 애플리케이션이 된 것입니다. 축하드려요

------

* 유튜브 강의에서 자막을 추출해 정리했습니다.

-----

 

* Extract Local Variable(Alt+Shift+L)로 특정 부분을 변수로 만들 수 있다

* 이 과정을 통해 보기 좋은 코드가 된다.

반응형