λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
✏️ Today I Learned(TIL)/🌱 슀파λ₯΄νƒ€ 내일배움캠프

ν”„λ‘œκ·Έλž˜λ° 기초_Day 4

by carrot0911 2024. 11. 15.

였늘 ν•œ 것

  • μ•Œκ³ λ¦¬μ¦˜ 문제(SQL, μžλ°”) 1문제 풀이 & λΈ”λ‘œκ·Έ 정리
  • Java 문법 μ’…ν•©λ°˜ 3μ£Ό μ°¨ 남은 κ°•μ˜ λ“£κΈ°
  • 개인 과제 Lv1 도전
  • 3μ£Ό μ°¨ κ°•μ˜ μˆ™μ œ 도전

μ˜€λŠ˜μ€ 배운 λ‚΄μš©μ΄ μ•„λ‹Œ...... 3μ£Ό μ°¨ κ°•μ˜μ— μžˆλŠ” μˆ™μ œ ν•˜λ‹€κ°€ λ§‰νžŒ 뢀뢄을 μ‹Ή λ‹€ 정리해야겠닀 πŸ₯²πŸ₯²πŸ₯²πŸ₯²

3μ£Ό 차의 남은 κ°•μ˜λ₯Ό λ‹€ λ“£κ³  λ“œλ””μ–΄ μˆ™μ œλ‘œ λ„˜μ–΄μ™”λ‹€!! ν•˜μ§€λ§Œ λ‚˜λ₯Ό λ°˜κΈ°λŠ” 것은 μ–΄λ§ˆλ¬΄μ‹œν•œ μˆ™μ œμ˜€λ‹€....
ν•œ 번 μ“°μœ½ 읽어봀을 λ•ŒλŠ” 'μ•„ν•˜ 이런 λ‚΄μš©μœΌλ‘œ μ΄λ ‡κ²Œ ν•˜λ©΄ λ˜λŠ”κ΅¬λ‚˜!'라고 κ°€λ³κ²Œ μƒκ°ν–ˆλ‹€.. ν•˜μ§€λ§Œ λ‚˜μ—κ²Œ μ „ν˜€ 가볍지 μ•Šμ€ μˆ™μ œμ˜€λ‹€.. κ°•μ˜λ₯Ό μ–΄λŠ 정도 μ΄ν•΄ν•˜κ³  λ„˜μ–΄κ°”λ‹€κ³  μƒκ°ν–ˆλ˜ λ‚˜μ˜ μ°©κ°μ΄μ—ˆλ‹€ πŸ˜”πŸ˜”

κ·Έλž˜λ„ μ‰½κ²Œ ν’€ 수 μžˆμ—ˆλ˜ 것은 STEP 1κ³Ό STEP 2....
κΈμ •μ μœΌλ‘œ μƒκ°ν•˜μžλ©΄ 이거라도 μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμ—ˆλ˜ 게 μ–΄λ”˜κ°€ μ‹Άλ‹€!!

STEP 1
STEP 1은 λ”ν•˜κΈ°, λΉΌκΈ°, λ‚˜λˆ„κΈ° κ³±ν•˜κΈ° 연산을 μˆ˜ν–‰ν•  수 μžˆλŠ” Calculator 클래슀λ₯Ό λ§Œλ“œλŠ” κ²ƒμ΄μ—ˆλ‹€.
λ‹€μŒκ³Ό 같은 μ„€λͺ…이 μžˆμ—ˆλŠ”λ°

더보기
  • Calculator ν΄λž˜μŠ€λŠ” 연산을 μˆ˜ν–‰ν•˜λŠ” λ°˜ν™˜ νƒ€μž…μ΄ double인 calculate λ©”μ„œλ“œλ₯Ό κ°€μ§€κ³  μžˆλ‹€.
  • calculate λ©”μ„œλ“œλŠ” String νƒ€μž…μ˜ operate λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 μ—°μ‚°μž λ§€κ°œκ°’μ„ λ°›λŠ”λ‹€.
  • int νƒ€μž…μ˜ firstNumber, secondNumber λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 ν”Όμ—°μ‚°μž 값을 λ°›λŠ”λ‹€.
  • calculate λ©”μ„œλ“œλŠ” 전달받은 ν”Όμ—°μ‚°μž, μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 연산을 μˆ˜ν–‰ν•œλ‹€.
  • 힌트) if or switch μ¦‰, μ œμ–΄λ¬Έμ„ 톡해 μ—°μ‚°μžμ˜ νƒ€μž…μ„ ν™•μΈν•˜κ³  ν•΄λ‹Ήν•˜λŠ” νƒ€μž…μ˜ 연산을 μˆ˜ν–‰ν•˜κ³  결과값을 λ°˜ν™˜ν•œλ‹€.

μ„€λͺ…을 봀을 λ•Œ λ°”λ‘œ if문을 μ‚¬μš©ν•΄μ„œ ν•΄κ²°ν•˜λ©΄ λ˜κ² κ΅¬λ‚˜ μƒκ°ν–ˆλ‹€.
κ·Έλž˜μ„œ Calculator 클래슀λ₯Ό μƒμ„±ν•˜κ³  μ„Έμ…˜μ—μ„œ 배운 λŒ€λ‘œ 속성(ν•„λ“œ), μƒμ„±μž, ν–‰μœ„(λ©”μ„œλ“œ)둜 파트λ₯Ό λ‚˜λˆ„κ³  ν–‰μœ„(λ©”μ„œλ“œ) νŒŒνŠΈμ— STEP 1을 ν•΄κ²°ν–ˆλ‹€.

public class Calculator{

    // 속성 (λ³€μˆ˜)
    AbstractOperation operation;

    // μƒμ„±μž (쑰립섀λͺ…μ„œ)
    Calculator(AbstractOperation operation) {
        this.operation = operation;
    }

    // κΈ°λŠ₯ (λ©”μ„œλ“œ)
    double calculate (String operator, int firstNumber, int secondNumber) {
        double result = 0;
        
        if (operator.equals("+")) {
            result = firstNumber + secondNumber;
        } else if (operator.equals("-") {
            result = firstNumber - secondNumber;
        } else if (operator.equals("*") {
            result = firstNumber * secondNumber;
        } else if (operator.equals("/") {
            result = firstNumber / secondNumber;
        }
        return result;
    }
}

μ΄λ ‡κ²Œ STEP 1을 λ¬΄μ‚¬νžˆ ν•΄κ²°ν•˜κ³  STEP 2둜 λ„˜μ–΄κ°”λ‹€.

STEP 2
STEP 2λŠ” λ‚˜λ¨Έμ§€ μ—°μ‚°μž(%)λ₯Ό μˆ˜ν–‰ν•  수 있게 Calculator 클래슀 λ‚΄λΆ€ μ½”λ“œλ₯Ό λ³€κ²½ν•˜λŠ” 것이닀.
λ‹€μŒκ³Ό 같이 νžŒνŠΈκ°€ ν•˜λ‚˜ μžˆμ—ˆκ³  STEP 2 μ—­μ‹œ μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμ—ˆλ‹€.

더보기
  • 힌트) μ œμ–΄λ¬Έ else if에 λ‚˜λ¨Έμ§€ μ—°μ‚°μž(%)λ₯Ό μΆ”κ°€ν•œλ‹€.

STEP 1에 μž‘μ„±ν–ˆλ˜ μ½”λ“œμ— μ΄μ–΄μ„œ λ‚˜λ¨Έμ§€ μ—°μ‚°μž(%)λ₯Ό μΆ”κ°€ν•΄ 쀬닀.

public class Calculator{

    // 속성 (λ³€μˆ˜)
    AbstractOperation operation;

    // μƒμ„±μž (쑰립섀λͺ…μ„œ)
    Calculator(AbstractOperation operation) {
        this.operation = operation;
    }

    // κΈ°λŠ₯ (λ©”μ„œλ“œ)
    double calculate (String operator, int firstNumber, int secondNumber) {
        double result = 0;
        
        if (operator.equals("+")) {
            result = firstNumber + secondNumber;
        } else if (operator.equals("-") {
            result = firstNumber - secondNumber;
        } else if (operator.equals("*") {
            result = firstNumber * secondNumber;
        } else if (operator.equals("/") {
            result = firstNumber / secondNumber;
        } else if (operator.equals("%") {
            result = firstNumber % secondNumber;
        }
        
        return result;
    }
}

STEP 2κΉŒμ§€λŠ” μ‰½κ²Œ ν•΄κ²°ν–ˆλ‹€. ν•˜μ§€λ§Œ 행볡이 λλ‚˜κ³  μ—„μ²­λ‚œ 고톡이 μ°Ύμ•„μ™”λ‹€......

STEP 3
STEP 3λŠ” μ„€λͺ…도 κΈΈκ³  λ­”κ°€ μ΄ν•΄ν•˜κΈ°λ„ μ–΄λ €μ› λ‹€...

더보기
  • AddOperation(λ”ν•˜κΈ°), SubstractOperation(λΉΌκΈ°), MultiplyOperation(κ³±ν•˜κΈ°), DivideOperation(λ‚˜λˆ„κΈ°) μ—°μ‚° 클래슀λ₯Ό λ§Œλ“  ν›„ 클래슀 κ°„μ˜ 관계λ₯Ό κ³ λ €ν•˜μ—¬ Calculator ν΄λž˜μŠ€μ™€ 관계λ₯Ό λ§ΊλŠ”λ‹€.
  • 관계λ₯Ό 맺은 ν›„ ν•„μš”ν•˜λ‹€λ©΄ Calculator ν΄λž˜μŠ€μ˜ λ‚΄λΆ€ μ½”λ“œλ₯Ό λ³€κ²½ν•œλ‹€.. λ‚˜λ¨Έμ§€ μ—°μ‚°μž(%) κΈ°λŠ₯은 μ œμ™Έν•œλ‹€.

힌트

  • AddOperation, SubstractOperation, MultiplyOperation, DivideOperation μ—°μ‚° ν΄λž˜μŠ€λ“€μ„ λ§Œλ“ λ‹€.
  • 각각의 μ—°μ‚° νƒ€μž…μ— 맞게 operate λ©”μ„œλ“œλ₯Ό κ΅¬ν˜„ν•œλ‹€.
  • Calculator ν΄λž˜μŠ€μ™€ 포함관계λ₯Ό λ§Ίκ³  μƒμ„±μžλ₯Ό 톡해 각각의 μ—°μ‚° 클래슀 νƒ€μž…μ˜ ν•„λ“œμ— 객체λ₯Ό μ£Όμž…ν•œλ‹€.
  • calculate λ©”μ„œλ“œμ—μ„œ 직접 연산을 ν•˜μ§€ μ•Šκ³  μ£Όμž…λ°›μ€ μ—°μ‚° ν΄λž˜μŠ€λ“€μ˜ operate λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 연산을 μ§„ν–‰ν•œλ‹€.

클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ„ λ³΄λŠ” μˆœκ°„ λ‡Œμ •μ§€κ°€ μ™”λ‹€.. 뭐가 λ­”μ§€ μ „ν˜€ 감이 μ•ˆ μž‘ν˜”λ‹€..........
κ·Έλž˜μ„œ μ„€λͺ…을 λ³΄λ©΄μ„œ ν•˜λ‚˜ν•˜λ‚˜ 따라가기 μ‹œμž‘ν–ˆλ‹€.

μ—°μ‚° 클래슀λ₯Ό λ§Œλ“€λΌκ³  ν•΄μ„œ μš°μ„  AddOperation, SubstractOperation, MultiplyOperation, DivideOperation 클래슀λ₯Ό λ§Œλ“€μ—ˆλ‹€. 그리고 λ©”μ„œλ“œλ₯Ό λ§Œλ“€λΌκ³  ν•΄μ„œ κ°•μ˜μ—μ„œ 배운 λŒ€λ‘œ λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜μ”© μΆ”κ°€ν–ˆλ‹€.

public class AddOperation{

    // 속성

    // μƒμ„±μž

    // λ©”μ„œλ“œ
    double operate (int firstNumber, int secondNumber) {

        return firstNumber + secondNumber;
    }
}

μœ„μ˜ AddOperation ν΄λž˜μŠ€μ™€ 같이 λ‚˜λ¨Έμ§€ ν΄λž˜μŠ€λ“€λ„ λ°”κΏ”μ£Όμ—ˆλ‹€.
κ·Έλ‹€μŒ λ¬Έμž₯을 λ΄€λŠ”λ°..
Calculator ν΄λž˜μŠ€μ™€ 포함관계λ₯Ό λ§Ίκ³  μƒμ„±μžλ₯Ό 톡해 각각의 μ—°μ‚° 클래슀 νƒ€μž…μ˜ ν•„λ“œμ— 객체λ₯Ό μ£Όμž…ν•œλ‹€.

응...? 이게 무슨 말이지...................... κ·ΈλŒ€λ‘œ λ‡Œμ •μ§€κ°€ μ™”λ‹€ πŸ˜”πŸ˜”πŸ˜”πŸ˜”πŸ˜” 
뭘 μ–΄λ–»κ²Œ ν•΄μ•Ό ν• μ§€ 고민을 ν•˜λ‹€κ°€ ν•„λ“œλΌλŠ” 단어λ₯Ό 보고 μ•„ 그럼 속성 뢀뢄에 λ­”κ°€λ₯Ό 적으면 λ˜λŠ” 건가...?λΌλŠ” 생각에 μ§€ν”Όν‹°μ—κ²Œ λ‹¬λ €κ°€μ„œ λ‚΄κ°€ μƒκ°ν–ˆλ˜ 속성 뢀뢄에 μΆ”κ°€ν•΄ λ‚˜κ°€λŠ” 것인가라고 λ¬Όμ–΄λ΄€λ”λ‹ˆ κ·Έλ ‡λ‹€κ³  ν•΄μ„œ μ§€ν”Όν‹°μ—κ²Œ 힌트λ₯Ό μ–»κ³  λ‹€μ‹œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄ λ‚˜κ°”λ‹€.

public class Calculator{

    // 속성 (λ³€μˆ˜)
    AddOperation addOperation;
    SubstractOperation substractOperation;
    MultiflyOperation multiflyOperation;
    DivideOperation divideOperation;

    // μƒμ„±μž (쑰립섀λͺ…μ„œ)
    Calculator(AddOperation addOperation, SubstractOperation substractOperation, MultiflyOperation multiflyOperation, DivideOperation divideOperation) {
        this.addOperation = addOperation;
        this.substractOperation = substractOperation;
        this.multiflyOperation = multiflyOperation;
        this.divideOperation = divideOperation;
    }

    // κΈ°λŠ₯ (λ©”μ„œλ“œ)
    double calculate (String operator, int firstNumber, int secondNumber) {
        double result = 0;
        
        if (operator.equals("+")) {
            result = addOperation.operate(firstNumber, secondNumber);
        } else if (operator.equals("-") {
            result = substractOperation.operate(firstNumber, secondNumber);
        } else if (operator.equals("*") {
            result = multiflyOperation.operate(firstNumber, secondNumber);
        } else if (operator.equals("/") {
            result = divideOperation.operate(firstNumber, secondNumber);
        }
        
        return result;
    }
}

νžŒνŠΈμ™€ μ„€λͺ…, μ§€ν”Όν‹°μ˜ λ„μ›€μœΌλ‘œ STEP 3κΉŒμ§€ 겨우겨우 λ§ˆλ¬΄λ¦¬ν–ˆλ‹€........
λΆ„λͺ… μˆ™μ œλ₯Ό μ‹œμž‘ν•œ 게 4μ‹œμ―€μ΄μ—ˆλ˜ κ±° 같은데 STEP 3을 끝내고 λ‚˜λ‹ˆκΉŒ 8μ‹œ λ°˜μ΄μ—ˆλ‹€... 저녁 μ‹œκ°„ λΉΌκ³  3μ‹œκ°„ λ™μ•ˆ STEP 3κΉŒμ§€ 온 것이닀..!!!!

STEP 4
이제 λ§ˆμ§€λ§‰ STEP 4둜 λ„˜μ–΄κ°”λŠ”λ°... μ™„μ „ μ ˆλ§μ μ΄μ—ˆλ‹€..
λŒ€μ²΄ μ–΄λ–»κ²Œ ν•˜λŠ” 건지 μ „ν˜€ 이해가 λ˜μ§€ μ•Šμ•˜λ‹€.............

λ‚΄κ°€ ν”Όκ³€ν•΄μ Έμ„œ κ·ΈλŸ°κ°€ μ‹Άμ–΄μ„œ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨κ³Ό μ„€λͺ…을 λ‹€μ‹œ 천천히 읽어봀닀.

더보기
  • AddOperation(λ”ν•˜κΈ°), SubstractOperation(λΉΌκΈ°), MultiplyOperation(κ³±ν•˜κΈ°), DivideOperation(λ‚˜λˆ„κΈ°) μ—°μ‚° ν΄λž˜μŠ€λ“€μ„ AbstractOperation(좔상 클래슀)λ₯Ό μ‚¬μš©ν•˜μ—¬ μΆ”μƒν™”ν•˜κ³  Calculator 클래슀의 λ‚΄λΆ€ μ½”λ“œλ₯Ό λ³€κ²½ν•©λ‹ˆλ‹€.
  • 주의) Calculator의 calculate λ©”μ„œλ“œμ˜ λ§€κ°œλ³€μˆ˜κ°€ λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

힌트

  • AbstractOperation 좔상 클래슀λ₯Ό λ§Œλ“€κ³  operate 좔상 λ©”μ„œλ“œλ₯Ό λ§Œλ“­λ‹ˆλ‹€.
  • AddOperation, SubstractOperation, MultiplyOperation, DivideOperation ν΄λž˜μŠ€λ“€μ€ AbstractOperation 클래슀λ₯Ό 상속받고 각각의 μ—°μ‚° νƒ€μž…μ— 맞게 operateλ₯Ό μ˜€λ²„λΌμ΄λ”© ν•©λ‹ˆλ‹€.
  • Calculator ν΄λž˜μŠ€λŠ” 4개의 μ—°μ‚° ν΄λž˜μŠ€λ“€μ΄ 상속받고 μžˆλŠ” AbstractOperation ν΄λž˜μŠ€λ§Œμ„ ν¬ν•¨ν•©λ‹ˆλ‹€.
  • μƒμ„±μž ν˜Ήμ€ Setterλ₯Ό μ‚¬μš©ν•˜μ—¬ 연산을 μˆ˜ν–‰ν•  μ—°μ‚° 클래슀의 객체λ₯Ό AbstractOperation 클래슀 νƒ€μž…μ˜ ν•„λ“œμ— μ£Όμž…ν•©λ‹ˆλ‹€.(λ‹€ν˜•μ„±)
  • calculate λ©”μ„œλ“œμ—μ„œλŠ” 더 이상 μ—°μ‚°μž νƒ€μž…μ„ λ°›μ•„ ꡬ뢄할 ν•„μš” 없이 μ£Όμž…λ°›μ€ μ—°μ‚° 클래슀의 operate λ©”μ„œλ“œλ₯Ό 톡해 λ°”λ‘œ 연산을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

이게 λ‹€ λ­” 말이냐.......
ν•˜μ§€λ§Œ μ—¬κΈ°μ„œ 포기할 수 μ—†μ—ˆλ‹€.. λ‚˜μ˜ 였기 λ•Œλ¬Έμ— 문제λ₯Ό ν•˜λ‚˜μ”© κΎΈμ—­κΎΈμ—­ 따라갔닀.

좔상 클래슀 AbstractOperation을 μƒμ„±ν•˜κ³  AddOperation, SubstractOperation, MultiplyOperation, DivideOperation ν΄λž˜μŠ€λ“€μ΄ 상속받을 수 μžˆλ„λ‘ extendsλ₯Ό μ‚¬μš©ν–ˆλ‹€.

public abstract class AbstractOperation {

    // 속성


    // μƒμ„±μž


    // λ©”μ„œλ“œ
    abstract double operate(int firstNumber, int secondNumber);
}

μ΄λ ‡κ²Œ 좔상 클래슀 AbstractOperation을 μƒμ„±ν–ˆλ‹€.
λ‹€μŒ AddOperation ν΄λž˜μŠ€μ—μ„œ μƒμ†λ°›μ•„μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μˆ˜μ •ν–ˆλ‹€.

public class AddOperation extends AbstractOperation{

    // 속성

    // μƒμ„±μž

    // λ©”μ„œλ“œ
    @Override
    double operate (int firstNumber, int secondNumber) {

        return firstNumber + secondNumber;
    }
}

AddOperation ν΄λž˜μŠ€κ°€ AbstractOperation 클래슀λ₯Ό 상속받고 μ˜€λ²„λΌμ΄λ“œλ₯Ό μ΄μš©ν•΄μ„œ operate λ©”μ„œλ“œλ₯Ό addOperation에 λ§žμΆ°μ„œ μˆ˜μ •ν–ˆλ‹€.
λ‚˜λ¨Έμ§€ ν΄λž˜μŠ€λ“€λ„ 각자 ν΄λž˜μŠ€μ— 맞게 μˆ˜μ •ν•΄ μ£Όμ—ˆλ‹€.

λ‹€μŒμœΌλ‘œ Calculator ν΄λž˜μŠ€κ°€ AbstractOperation 클래슀만 포함할 수 μžˆλ„λ‘ 속성 뢀뢄을 μˆ˜μ •ν–ˆλ‹€.
μˆ˜μ • ν›„ μƒμ„±μžλ₯Ό 톡해 연산을 μˆ˜ν–‰ν•  μ—°μ‚° 클래슀의 객체λ₯Ό AbstractOperation 클래슀 νƒ€μž…μ˜ ν•„λ“œμ— μ£Όμž…ν•΄ μ£Όμ—ˆλ‹€.
사싀 이 뢀뢄도 뭘 ν•˜λΌλŠ” 건지 μ΄ν•΄ν•˜μ§€ λͺ»ν•΄μ„œ μ§€ν”Όν‹°μ—κ²Œ 힌트 달라고 κ΅¬κ±Έν•΄μ„œ 얻은 결과물이닀.....

λ§ˆμ§€λ§‰μœΌλ‘œ 더 이상 μ—°μ‚°μž νƒ€μž…μ„ λ°›μ•„ ꡬ뢄할 ν•„μš” 없이 μ£Όμž…λ°›μ€ μ—°μ‚° 클래슀의 operate λ©”μ„œλ“œλ₯Ό 톡해 λ°”λ‘œ 연산을 μˆ˜ν–‰ν•˜λ„λ‘ operate λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν–ˆλ‹€.

public class Calculator{

    // 속성 (λ³€μˆ˜)
    AbstractOperation operation;

    // μƒμ„±μž (쑰립섀λͺ…μ„œ)
    Calculator(AbstractOperation operation) {
        this.operation = operation;
    }

    // κΈ°λŠ₯ (λ©”μ„œλ“œ)
    double calculate (int firstNumber, int secondNumber) {
        return operation.operate(firstNumber, secondNumber);
    }
}

κ·Έ κ²°κ³Ό Calculator 클래슀λ₯Ό μ™„μ„±ν•  수 μžˆμ—ˆλ‹€........
ν¬κΈ°ν•˜μ§€ μ•Šκ³  λκΉŒμ§€ ν•œ 덕뢄에 μ‹œκ°„μ€ 였래 κ±Έλ Έμ§€λ§Œ μˆ™μ œλ₯Ό λ§ˆλ¬΄λ¦¬ν•  수 μžˆμ—ˆλ‹€....
그리고 μˆ™μ œλ₯Ό ν•˜λ©΄μ„œ λ’€μ£½λ°•μ£½μ΄λ˜ λ¨Έλ¦Ώμ†μ˜ κ°œλ…λ“€μ΄ μ•„μ£Ό μ‘°κΈˆμ€ 정리가 된 λŠλ‚Œμ΄μ—ˆλ‹€ πŸ₯²πŸ₯²πŸ₯²
ν¬κΈ°ν•˜μ§€ μ•Šμ•„μ„œ 얻은 결과물인가.. γ…Žγ…Žγ…Žγ…Ž

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator(new AddOperation());
        double result = calculator.calculate(10, 20);
        System.out.println(result);

        Calculator calculator2 = new Calculator(new DivideOperation());
        double result2 = calculator2.calculate(40, 5);
        System.out.println(result2);
    }
}

λ§ˆμ§€λ§‰μœΌλ‘œ Main ν΄λž˜μŠ€μ—μ„œ κ²€μ‚¬κΉŒμ§€ μ™„λ£Œν•˜κ³  3μ£Ό μ°¨ κ°•μ˜ μˆ™μ œλ₯Ό λ§ˆλ¬΄λ¦¬ν•  수 μžˆμ—ˆλ‹€ 🫠🫠🫠🫠🫠🫠🫠


μˆ™μ œν•˜λ©΄μ„œ λŠλ‚€ 점

아직 μžλ°”λž‘ μ „ν˜€ μΉœν•΄μ§€μ§€ μ•Šμ•˜λ‹€λŠ” λŠλ‚Œμ„ λ°›μ•˜λ‹€. λͺ¨λ“  것이 μ–΄λ ΅κ³  λͺ¨λ“  것이 λ‚―μ„€λ‹€...
ν•˜μ§€λ§Œ μžλ°”λ₯Ό μ œλŒ€λ‘œ κ³΅λΆ€ν•˜κΈ° μ‹œμž‘ν•œ μ§€ 4일밖에 μ§€λ‚˜μ§€ μ•Šμ•˜κ³  λ‚œ λ‚˜λ¦„λŒ€λ‘œ 곡뢀가 잘 μ§„ν–‰λ˜κ³  μžˆλ‹€κ³  생각... ν•œ.. λ‹€....

λ¬Όλ‘  κ³„μ†ν•΄μ„œ κ°œλ…μ„ μ μš©ν•˜κ³  듀이박고 λΆ€λ”ͺνžˆλ©΄μ„œ 더 μ„±μž₯ν•΄μ•Ό ν•œλ‹€.
μžλ°”λž‘ μΉœν•΄μ§€λ €λ©΄ 아무리 μ–΄λ €μ›Œλ„ ν¬κΈ°ν•˜μ§€ μ•ŠλŠ” 것이 κ°€μž₯ μ€‘μš”ν•œ 것 κ°™λ‹€. κΎΈμ€€νžˆ κ°•μ˜ λ“£κ³  μˆ™μ œν•˜κ³ , κ³Όμ œν•˜λ‹€ 보면 μ–Έμ  κ°€λŠ” μΉœν•΄μ Έ μžˆμ§€ μ•Šμ„κΉŒ μƒκ°ν•œλ‹€.

μ˜€λŠ˜μ€ 배운 λ‚΄μš©μ„ μ •λ¦¬ν•˜κΈ°λ³΄λ‹€λŠ” μˆ™μ œν•˜λ©΄μ„œ λ§‰ν˜”λ˜ λΆ€λΆ„? μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆλ˜ 뢀뢄을 λΈ”λ‘œκ·Έμ— μ •λ¦¬ν•˜λ©΄μ„œ ν•œλ²ˆ 더 μ΄ν•΄ν•˜λŠ” μ‹œκ°„μ„ κ°€μ§€λŠ” 것이 더 μ’‹κ² λ‹€κ³  μƒκ°ν•΄μ„œ λΈ”λ‘œκ·Έμ— μ •λ¦¬ν–ˆλŠ”λ° ν™•μ‹€νžˆ κΈ€λ‘œ μ •λ¦¬ν•˜λ‹€ λ³΄λ‹ˆκΉŒ λ¨Έλ¦¬μ—μ„œ ν•œλ²ˆ 더 μ •λ¦¬λ˜λŠ” λŠλ‚Œμ„ λ°›μ•˜λ‹€.

이게 λ°”λ‘œ TIL을 ν•΄μ•Ό ν•˜λŠ” μ΄μœ μΈκ°€..!!!! 아직 λ‚΄κ°€ 뭘 μ–΄λ–»κ²Œ ν•˜κ³  μžˆλŠ”μ§€ 감이 μ•ˆ μž‘νžˆμ§€λ§Œ μ—΄μ‹¬νžˆ μ„±μž₯ν•΄ λ‚˜κ°ˆ 수 μžˆκ² μ§€πŸ˜Ž

내일도 μ—΄μ‹¬νžˆ ν•΄μ„œ μ•„μ£Ό μ•Œμ°¬ 일주일을 λ§Œλ“€μ–΄μ•Όκ² λ‹€.

νŒŒμ΄νŒ… ν•΄λ³΄μžκ³ ~~~~