본문 바로가기

코딩공부/JAVA

[14] JAVA 나의 앱 만들기

[앱 구상도]

우리는 물건을 판매하는 사업을 하고 있다.

매출액에서 세금, 인건비, 유통비등을 제외하고 남은 이익, 그 이익을 동업자들에게 공평하게 나누어 주는 작업을 물건을 팔 때마다 해야 되는 상황이라고 상상해보자

 

- 1 -

만드려는 애플리케이션의 가장 본질적인 기능을 최소한의 기능. 즉, "어떤 명령을 시간의 순서에 따라서 실행한다"라고 하는 가장 본질적인 개념만으로 우리의 문제를 해결해보자

 

(1) 판매하려는 물건값의 10%에 해당되는 부가가치세(VAT)가 얼마인지 알아낸다.

"MyApp" 프로젝트 생성

"AccountingApp" 클래스 생성

 

 

- 2 -

변수화

public class AccountingApp {

	public static void main(String[] args) {
		
		double valueOfSupply = 12345.6;
        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("123");
        System.out.println("Value of supply : " + valueOfSupply); //공급
        System.out.println("VAT : " + vat);	//VAT
        System.out.println("Total : " + total);	//합계(공급가 + VAT) : 소비자 지불 금
        System.out.println("Expense : " + expense);
        System.out.println("Income : " + income);
        System.out.println("Dividend 1 : " + dividend1);
        System.out.println("Dividend 2 : " + dividend2);
        System.out.println("Dividend 3 : " + dividend3);

	}
}

 

 

값을 한번에 변수화 : 값 선택 후, 우클릭 > [Refactor] > [Extract Local Variable ... ] //단축기 : commnad  + option + L

 

※ 값을 찾아서 한 번에 변경 : [Edit] > [Find/Replace] > [Replace All] 

 

- 3 -

입력값 도입 - 입력값에 따라서 서로 다른 출력값을 만들어내는 애플리케이션

 

현재 프로그램은 데이터(valueOfSupply:공급가)가 바뀌면, 코드(로직)가 바뀐다. 이것을 해결하기 위해서 공급가를 입력받아 실행되도록 수정해보자

 

args 는 문자열을 값으로 하는 배열이다. 따라서 args[] 각 인덱스에 들어가는 값의 데이터 타입은 '문자열'이다. 우리가 사용 중인 변수 valueOfSupply 에는 'Double'형 데이터 타입이 들어가야 하므로, 이 args[0] 값의 데이터타입을 Double형으로 변환(converting)해야 한다.

string to double java
double valueOfSupply = Double.parseDouble(args[0]);

 

입력값 설정

 

 

※ 실행할 때마다 이클립스를 켜지 않고, (이클립스 없이) 간편하게 자바 애플리케이션을 실행해보자

 

(1) 프로젝트 경로 찾기

프로젝트 선택 후, 우클릭 > [Properties] > [Resource] > Location 에서 경로 확인

 

(2) (MAC) 터미널에서 프로젝트 경로로 이동하여 프로젝트 실행파일(.class)이 존재하는 것을 확인

( 실행파일이 없다면 컴파일해서 만들어 주자 - 명령어 : javac AccountingApp.java )

 

클래스파일 실행 - 값을 입력하면서 실행해야 한다.

 

 

▶ 다른 컴퓨터에서 실행하고 싶다면 ?

소스코드까지 가지고 가고 싶다면 AccountingApp.java 파일까지 가지고 가면 되는데, 이미 컴파일된 실행파일(.class)만 있으면 usb 메모리 또는 이메일로 프로그램을 옮겨서 다른 PC에서 실행시키면 된다. 

다만, 실행시킬 컴퓨터에 자바런타임환경(JRE, JVM)이 설치가 되어있어야 실행 시킬 수 있다.

 

 

 JVM(Java Virtual Machine)이 설치되어있지 않은 컴퓨터에서 실행하고 싶다면 ?

Launch4j 와 같은 솔루션(소프트웨어)를 이용할 수 있다. 우리가 짠 파일에 JRE 파일까지도 함께 감싼다.

따라서 이 Launch4j 를 통해서 만들어진 실행파일은 컴퓨터에 JVM이 설치가 안되어 있어도 파일 내에 내장하고 있기 때문에 컴퓨터에서 실행 가능하다.

http://launch4j.sourceforge.net 

 

Launch4j - Cross-platform Java executable wrapper

Cross-platform Java executable wrapper Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one

launch4j.sourceforge.net