πŸš€ μžλ™ν™” μ—¬μ • 12일 μ°¨ – Javaμ—μ„œ λ‹€ν˜•μ„± 이해

λ°œν–‰: (2026λ…„ 3μ›” 7일 PM 11:31 GMT+9)
6 λΆ„ μ†Œμš”
원문: Dev.to

Source: Dev.to

πŸ“Œ λ‹€ν˜•μ„±μ΄λž€?

λ‹€ν˜•μ„±μ€ β€œμ—¬λŸ¬ ν˜•νƒœβ€λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. Javaμ—μ„œλŠ” 같은 λ©”μ„œλ“œ 이름이 μ „λ‹¬λœ λ§€κ°œλ³€μˆ˜μ— 따라 λ‹€λ₯΄κ²Œ λ™μž‘ν•˜κ²Œ ν•©λ‹ˆλ‹€.

Java의 두 κ°€μ§€ λ‹€ν˜•μ„± μœ ν˜•

1️⃣ μ»΄νŒŒμΌβ€‘νƒ€μž„ λ‹€ν˜•μ„± (Method Overloading)
2️⃣ λŸ°β€‘νƒ€μž„ λ‹€ν˜•μ„± (Method Overriding)

μ˜€λŠ˜μ€ Method Overloading에 μ§‘μ€‘ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ“Œ λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©μ΄λž€?

λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©μ€ λ‹€μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€:

  • 같은 λ©”μ„œλ“œ 이름
  • 인자의 κ°œμˆ˜κ°€ 닀름
  • 인자의 νƒ€μž…μ΄ 닀름
  • λ§€κ°œλ³€μˆ˜ μˆœμ„œκ°€ 닀름

μ˜ˆμ‹œ μ‹œκ·Έλ‹ˆμ²˜

debitamount(int amount, int pin)

debitamount(long amount, int pin, String name, double balance)

λ©”μ„œλ“œ 이름은 λ™μΌν•˜μ§€λ§Œ λ§€κ°œλ³€μˆ˜ λͺ©λ‘μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— JavaλŠ” 이λ₯Ό λ³„κ°œμ˜ λ©”μ„œλ“œλ‘œ μ·¨κΈ‰ν•©λ‹ˆλ‹€.

πŸ’» 예제 ν”„λ‘œκ·Έλž¨ – ATM 거래

package polymorphism;

public class ATM {

    public static void main(String[] args) {

        ATM sbi = new ATM();
        sbi.debitamount(1000, 123);

        ATM icici = new ATM();
        icici.debitamount(3000, 6364, "Rajiv", 10.23);
    }

    void debitamount(int amount, int pin) {
        System.out.println("SBI Bank successfully debited " + amount);
    }

    void debitamount(long amount, int pin, String name, double balance) {
        System.out.println("ICICI Bank successfully debited " + amount + " for " + name);
    }
}

πŸ”Ž μ½”λ“œ μ„€λͺ…

Stepβ€―1 – ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œμž‘

JavaλŠ” main() λ©”μ„œλ“œμ—μ„œ 싀행을 μ‹œμž‘ν•©λ‹ˆλ‹€:

public static void main(String[] args)

Stepβ€―2 – 객체 생성

ATM sbi = new ATM();
  • ATM β†’ 클래슀 이름
  • sbi β†’ μ°Έμ‘° λ³€μˆ˜
  • new ATM() β†’ νž™ λ©”λͺ¨λ¦¬μ— 객체λ₯Ό 생성

Stepβ€―3 – 첫 번째 λ©”μ„œλ“œ 호좜

sbi.debitamount(1000, 123);

JavaλŠ” μ‹œκ·Έλ‹ˆμ²˜ (int, int)인 λ©”μ„œλ“œλ₯Ό μ°Ύμ•„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

void debitamount(int amount, int pin)

좜λ ₯

SBI Bank successfully debited 1000

Stepβ€―4 – 두 번째 객체 생성

ATM icici = new ATM();

두 번째 객체가 μƒμ„±λ©λ‹ˆλ‹€.

Stepβ€―5 – μ˜€λ²„λ‘œλ“œλœ λ©”μ„œλ“œ 호좜

icici.debitamount(3000, 6364, "Rajiv", 10.23);

JavaλŠ” 이제 μ‹œκ·Έλ‹ˆμ²˜ (long, int, String, double)인 λ©”μ„œλ“œλ₯Ό μ°Ύμ•„ μ‹€ν–‰ν•©λ‹ˆλ‹€:

void debitamount(long amount, int pin, String name, double balance)

좜λ ₯

ICICI Bank successfully debited 3000 for Rajiv

🧠 Javaκ°€ μ–΄λ–€ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν• μ§€ κ²°μ •ν•˜λŠ” 방법

μ»΄νŒŒμΌλŸ¬λŠ” λ‹€μŒμ„ ν™•μΈν•©λ‹ˆλ‹€:

1️⃣ Method name β†’ λ©”μ„œλ“œ 이름
2️⃣ Number of parameters β†’ λ§€κ°œλ³€μˆ˜ 개수
3️⃣ Data types of parameters β†’ λ§€κ°œλ³€μˆ˜μ˜ 데이터 νƒ€μž…

이 과정은 Compile‑Time Method Binding이라고 ν•˜λ©°, 결정이 컴파일 쀑에 이루어지기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

πŸ” μ—°μŠ΅ 쀑 μ€‘μš”ν•œ 발견

1️⃣ μ •μˆ˜ κΈ°λ³Έ νƒ€μž…

100κ³Ό 같은 λ¦¬ν„°λŸ΄μ€ 기본적으둜 int둜 κ°„μ£Όλ©λ‹ˆλ‹€.

2️⃣ Byte / Short μžλ™ ν—ˆμš© μ•ˆ 됨

byte balance = 100;   // error: possible lossy conversion from int to byte

λͺ…μ‹œμ  ν˜•λ³€ν™˜μ΄ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

byte balance = (byte) 100;

3️⃣ Long κ°’

long λ¦¬ν„°λŸ΄μ—λŠ” 보톡 L을 λΆ™μž…λ‹ˆλ‹€:

long amount = 3000L;

ν•„μš”ν•  λ•Œ JavaλŠ” intλ₯Ό long으둜 μžλ™ μŠΉκ²©μ‹œν‚¬ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

4️⃣ μ†Œμˆ˜μ  숫자

10.23κ³Ό 같은 λ¦¬ν„°λŸ΄μ€ 기본적으둜 doubleμž…λ‹ˆλ‹€. float에 μ €μž₯ν•˜λ €λ©΄ fλ₯Ό λΆ™μž…λ‹ˆλ‹€:

float balance = 10.23f;

double은 κΈ°λ³Έκ°’μ΄λ―€λ‘œ 접미사 없이도 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“Š Java의 숫자 κΈ°λ³Έκ°’ μš”μ•½

κ°’κΈ°λ³Έ νƒ€μž…
100int
100Llong
10.5double
10.5ffloat

Javaμ—μ„œλŠ” μ •μˆ˜ λ¦¬ν„°λŸ΄μ΄ 기본적으둜 intμž…λ‹ˆλ‹€. 이λ₯Ό byteλ‚˜ short와 같은 더 μž‘μ€ νƒ€μž…μ— ν• λ‹Ήν•˜λ €λ©΄ μΊμŠ€νŒ…μ΄ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžλ™ μ™€μ΄λ“œλ‹ λ³€ν™˜(예: int β†’ long)은 ν—ˆμš©λ˜μ§€λ§Œ, 내리기 λ³€ν™˜(예: int β†’ byte)은 ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ†Œμˆ˜μ  λ¦¬ν„°λŸ΄μ€ floatλ₯Ό μœ„ν•΄ f 접미사가 λΆ™μ§€ μ•ŠλŠ” ν•œ 기본적으둜 doubleμž…λ‹ˆλ‹€.

πŸ“š Dayβ€―12의 μ£Όμš” μš”μ 

  • βœ… Polymorphism이 μ˜λ―Έν•˜λŠ” λ°”
  • βœ… method overloadingκ³Ό method overriding의 차이
  • βœ… μ‹€μ œλ‘œ method overloading이 μž‘λ™ν•˜λŠ” 방식
  • βœ… Javaκ°€ 컴파일 μ‹œμ μ— μ˜€λ²„λ‘œλ“œλœ λ©”μ„œλ“œλ₯Ό μ„ νƒν•˜λŠ” 방법
  • βœ… Javaμ—μ„œ 숫자 λ¦¬ν„°λŸ΄μ˜ κΈ°λ³Έ λ™μž‘

Meric 데이터 νƒ€μž…

λ‹€ν˜•μ„±μ„ μ΄ν•΄ν•˜λŠ” 것은 μœ μ—°ν•˜κ³  μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 데 도움이 되기 λ•Œλ¬Έμ— μ€‘μš”ν•©λ‹ˆλ‹€.

πŸ‘¨β€πŸ« Trainer: Payilagam의 Nantha

πŸ€– A Small Note
이 λΈ”λ‘œκ·Έμ˜ ꡬ쑰와 λ‚΄μš©μ„ λ‹€λ“¬λŠ” 데 ChatGPTλ₯Ό μ‚¬μš©ν–ˆμœΌλ©°, κ°œλ…μ΄ νŠΈλ ˆμ΄λ„ˆμ˜ μ„€λͺ…κ³Ό μΌμΉ˜ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

0 쑰회
Back to Blog

κ΄€λ ¨ κΈ€

더 보기 Β»

Javaμ—μ„œμ˜ λ‹€ν˜•μ„±: μœ μ—°ν•œ μ½”λ“œλ₯Ό μœ„ν•œ β€œShape‑Shifter” λΉ„λ°€

당신이 μ»€ν”Όμˆμ— μžˆλ‹€κ³  상상해 λ³΄μ„Έμš”. λ°”λ¦¬μŠ€νƒ€μ—κ²Œ β€œμŒλ£Œ ν•˜λ‚˜ μ£Όμ„Έμš”β€λΌκ³  λ§ν•©λ‹ˆλ‹€. 상황에 λ”°λΌβ€”μ˜ˆλ₯Ό λ“€μ–΄ μ•„μΉ¨ 8μ‹œμ΄κ±°λ‚˜ 뜨거운 여름 μ˜€ν›„μΌ μˆ˜λ„ μžˆκ² μ£ β€”κ·Έ β€œμŒλ£Œβ€λŠ”β€¦

법적 vs μ •λ‹Ήμ„±: AI μž¬κ΅¬ν˜„μ΄ Copyleft와 Open Source 윀리λ₯Ό μ•½ν™”μ‹œν‚€λŠ” 방법

μ›λž˜ Introduction에 κ²Œμž¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 2024년에 GitHub Copilot은 GPL‑licensed μ½”λ“œλ₯Ό AI ν•™μŠ΅μ— μ‚¬μš©ν•˜λ©΄μ„œ 이λ₯Ό ν—ˆμš©ν•œ 것에 λŒ€ν•΄ μ˜€ν”ˆβ€‘μ†ŒμŠ€ μ˜Ήν˜Έμžλ“€μ˜ μ†Œμ†‘μ— μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€.

MLShip을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ β€” 60초 μ•ˆμ— Streamlit λ˜λŠ” Gradio ML 앱을 λ°°ν¬ν•˜μ„Έμš”. Docker 없이. AWS 없이.

μ €λŠ” 무언가λ₯Ό λ§Œλ“  CS 학생이며, μ˜¬λ°”λ₯Έ μ‚¬λžŒλ“€κ³Ό 이야기λ₯Ό λ‚˜λˆ„λ©° 그것을 κ°œμ„ ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 그게 μ „λΆ€μž…λ‹ˆλ‹€. MLShip은 원‑클릭 배포 ν”Œλž«νΌμœΌλ‘œ...