๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑํ•˜๊ธฐ : Java class์™€ main() ๋ฉ”์„œ๋“œ ๋ณธ๋ฌธ

Study/Java

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑํ•˜๊ธฐ : Java class์™€ main() ๋ฉ”์„œ๋“œ

Shinjio 2023. 10. 27. 16:45

 7๊ฐœ์›” ๊ฐ„์˜ ํ’€์Šคํƒ ๊ณผ์ •์ด ๋๋‚˜๊ณ  ์ทจ์—…์„ ์ค€๋น„ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์€ ๋ฐ”๋กœ Java๋ฅผ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๋งŽ์€ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ๊ณ  ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š๋ผ ๊ธฐ์ดˆ์ ์ธ ๋ถ€๋ถ„์„ ํ™•์‹คํ•˜๊ฒŒ ์ง‘๊ณ  ๋„˜์–ด๊ฐ€์ง€ ๋ชปํ•œ ๊ฒŒ ๋‚ด๋‚ด ๊ฑธ๋ ธ๋Š”๋ฐ, ์ด๋ฒˆ์— ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ์• ๋งคํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ๊ฑฐ๋‚˜, ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณต์Šตํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

 ๊ทธ ์ฒซ๋ฒˆ์งธ ๋‚ด์šฉ์€ ๋ฐ”๋กœ 'Java class์™€ main() ๋ฉ”์„œ๋“œ'์ด๋‹ค.

๊ธฐ์กด์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋ฅผ ํ™œ์šฉํ•ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต์„ ํ•˜๊ณค ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ๋ฐฑ์ค€์„ ํ™œ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฐฑ์ค€์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ฌธ์ œ ์œ ํ˜•์ด ์ž˜ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐฑ์ค€์ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์™€ ๋‹ฌ๋ž๋˜ ์ ์€ ํด๋ž˜์Šค ์ •์˜๋ถ€ํ„ฐ ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜๊นŒ์ง€ ๋‚ด๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ๊ณ„์† Spring Boot ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์ด ์›Œ๋‚™ ์ž˜ ๋˜์–ด์žˆ์–ด์„œ ๋ณ„ ์ƒ๊ฐ์ด ์—†์—ˆ๋Š”๋ฐ, ๋นˆ ์ฐฝ์— ์ž…๋ ฅํ•˜๋ คํ•˜๋‹ˆ ์ ์‘์ด ์•ˆ๋˜๊ธฐ๋„ ํ•˜๊ณ  ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋Š” ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 

 

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑํ•˜๊ธฐ : Java class์™€ main() ๋ฉ”์„œ๋“œ

1. Java ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ •

Eclipse๋‚˜ Visual Studio Code๋ฅผ ํ†ตํ•ด Java ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ(codingTest)์•ˆ์—  Package(codingTest)๊ฐ€ ์žˆ๊ณ , ๊ทธ ์•ˆ์— ํด๋ž˜์Šค(Practice.java)๋ฅผ ์ƒ์„ฑํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ž๋ฐ” ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ์ž๋ฐ”์ปดํŒŒ์ผ๋Ÿฌ(javac.exe)๋ฅผ ์‚ฌ์šฉํ•ด ์†Œ์ŠคํŒŒ์ผ(Pratice.java)๋กœ๋ถ€ํ„ฐ ํด๋ž˜์ŠคํŒŒ์ผ(Practice.class)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ์ž๋ฐ” ์ธํ„ฐํ”„๋ฆฌํ„ฐ(java.exe)๋กœ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์‹คํ–‰ํ•œ๋‹ค. 

 

  • ____.java์— ์ฝ”๋“œ ์ž‘์„ฑ
  • ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ____.java ์ปดํŒŒ์ผํ•˜์—ฌ ____.class(๋ฐ”์ดํŠธ์ฝ”๋“œ) ์ƒ์„ฑ
  • ์ž๋ฐ” ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ____.class ์‹คํ–‰
  • ___.class์—์„œ main ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

* ์ปดํŒŒ์ผ๋Ÿฌ(Compiler) : ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด ๋˜๋Š” ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

* ์ธํ„ฐํ”„๋ฆฌํ„ฐ : ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ๊ณ  ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

  

java ํŒŒ์ผ
์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ธ ์ƒ์„ฑ๋œ class ํŒŒ์ผ

 

๋”ฐ๋ผ์„œ ์ž๋ฐ”์—์„œ ๋ชจ๋“  ์ฝ”๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ํด๋ž˜์Šค ์•ˆ์— ์กด์žฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด ํด๋ž˜์Šค๋“ค์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด๋ฃฌ๋‹ค. 

 

2. ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๊ธฐ

๊ธฐ๋ณธ ๊ตฌ์กฐ

public class ํด๋ž˜์Šค๋ช… {
	//ํด๋ž˜์Šค๋ช…๊ณผ ํŒŒ์ผ๋ช…์€ ์ผ์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. 
	public static void main(String[] args){
    
    }
}

 

 

public ์ ‘๊ทผ์ œํ•œ์ž

  • ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ public ์‚ฌ์šฉ
์ ‘๊ทผ์ œํ•œ์ž ๊ธฐ๋Šฅ
public ๋ชจ๋“  ๊ณณ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
private ๊ฐ™์€ ํด๋ž˜์Šค์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
protected ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ์ž์† ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
default ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

static

  • 'ํด๋ž˜์Šค์˜' ํ˜น์€ '๊ณตํ†ต์ ์ธ'์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•จ
  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ์ˆœ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ

void

  • ํ•จ์ˆ˜๊ฐ€ ๋๋‚  ๋•Œ ๋ฆฌํ„ด๊ฐ’์ด ์—†์Œ
  • main๋ฉ”์„œ๋“œ๋Š” ์ข…๋ฃŒ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ return๊ฐ’์˜ ์˜๋ฏธ๊ฐ€ ์—†์Œ 

String[] args

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ main๋ฉ”์„œ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ๋ฅผ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜
  • Java๊ฐ€ DOSํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋˜ ์‹œ์ ˆ์˜ ํ”์ 

 

package codingTest; //package
import java.util.Scanner; //import๋ฌธ : ์™ธ๋ถ€ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ

public class Practice {
	
    //main ๋ฉ”์„œ๋“œ
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        int sum = 0;
        for(int i = 1 ; i <= 3 ; i++){
            System.out.println(A*(B%10));
            sum += A*(B%10) * i;
            B /= 10;
        }
        
        System.out.println(sum);
	}

}

 

 

main๋ฉ”์„œ๋“œ 

ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ 'java.exe'์— ์˜ํ•ด ํ˜ธ์ถœ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ์•ฝ์†๋œ ๋ถ€๋ถ„์œผ๋กœ,

ํ•˜๋‚˜์˜ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” main ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ ํด๋ž˜์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜๋Š” ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

main๋ฉ”์„œ๋“œ๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘์ ์ด๋ฏ€๋กœ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ์—†์œผ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. 

 

Spring Boot์—์„œ ์ž‘์„ฑํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋ฉด,

์•„๋ž˜์™€ ๊ฐ™์ด Application ํด๋ž˜์Šค์—์„œ main ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

package com.smhrd.todowedding;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableScheduling
@SpringBootApplication
public class TodoWeddingApplication {

	public static void main(String[] args) {
		SpringApplication.run(TodoWeddingApplication.class, args);
	}

}