Amenable
Amenable's Blog
Amenable
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (189)
    • ๐Ÿ“‚ JAVA (87)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (65)
      • ์ฃผ์š” ๊ฐœ๋… (22)
    • ๐Ÿ“‚ ๊ฐœ๋ฐœ ์„œ์  (22)
      • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ (1)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (2)
      • ํด๋ฆฐ ์ฝ”๋“œ (8)
      • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)
      • ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” HTTP&Network Basic (10)
    • ๐Ÿ“‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€์ด (0)
    • ๐Ÿ“‚ ๋„คํŠธ์›Œํฌ (14)
      • ๊ฐœ๋… (6)
      • ์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ (8)
    • ๐Ÿ“‚ ์Šคํ”„๋ง (13)
      • ๊ธฐ๋ณธ ๊ฐœ๋… (13)
    • ๐Ÿ“‚ WEB (5)
    • ๐Ÿ“‚ ์ž๋ฃŒ๊ตฌ์กฐ (12)
      • ๊ฐœ๋… (2)
      • ์ •๋ ฌ (8)
      • ํŠธ๋ฆฌ (2)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
      • ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ (2)
      • ์ตœ๋‹จ ๊ฒฝ๋กœ (2)
      • ๋ฌธ์ž์—ด (2)
      • ETC (4)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด (4)
      • BOJ_๋ฐฑ์ค€ (4)
    • ๐Ÿ“‚ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)
    • ๐Ÿ“‚ DevOps (2)
      • ๋ฐฐํฌ (2)
    • ๐Ÿ“‚ ํ›„๊ธฐ (8)
      • ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค) (4)
      • 2023๋…„ (3)
      • 2024๋…„ (1)
    • ๐Ÿ“‚ ํšŒ๊ณ  (1)
      • 2023๋…„ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿš€ GitHub

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Amenable

Amenable's Blog

int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ34)] - (2)
๐Ÿ“‚ JAVA/์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”

int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ34)] - (2)

2023. 7. 1. 18:47

  ์ด์ „ ๊ธ€์„ ํ†ตํ•ด '์ •์ˆ˜ ์—ด๊ฑฐ ํŒจํ„ด์˜ ๋‹จ์ , ์—ด๊ฑฐ ํƒ€์ž…์˜ ์žฅ์ , ์—ด๊ฑฐ ํƒ€์ž…์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•'์„ ์•Œ์•„๋ณด์•˜๋‹ค.

  ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์—ด๊ฑฐ ํƒ€์ž…์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

๐Ÿ“™ 1. ์ƒ์ˆ˜๋ณ„ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ (constant-specific method implementation)

  ์‚ฌ์น™์—ฐ์‚ฐ ๊ณ„์‚ฐ๊ธฐ์™€ ๊ฐ™์ด ์ƒ์ˆ˜๋งˆ๋‹ค ๋™์ž‘์ด ๋‹ฌ๋ผ์ ธ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ switch๋ฌธ์„ ํ†ตํ•˜์—ฌ ๋ถ„๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

public enum Operation {
    PLUS, MINUS, TIMES, DIVIDE;

    // ์ƒ์ˆ˜๊ฐ€ ๋œปํ•˜๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    public double apply(double x, double y) {
        switch(this) {
            case PLUS:
                return x + y;
            case MINUS:
                return x - y;
            case TIMES:
                return x * y;
            case DIVIDE:
                return x / y;
        }
        throw new AssertionError("์•Œ ์ˆ˜ ์—†๋Š” ์—ฐ์‚ฐ: " + this);
    }
}

  ๋™์ž‘์€ ํ•˜์ง€๋งŒ ์ข‹์€ ์ฝ”๋“œ๋Š” ์•„๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์˜ throw ๋ฌธ์€ ์‹ค์ œ๋กœ๋Š” ๋„๋‹ฌํ•  ์ผ์ด ์—†์ง€๋งŒ ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•˜๋ฉด ์ปดํŒŒ์ผ์กฐ์ฐจ ๋˜์ง€ ์•Š๋Š”๋‹ค.

  ๋˜ํ•œ, ์ƒˆ๋กœ์šด ์ƒ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๋‹น case ๋ฌธ๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊นจ์ง€๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ์ด๋‹ค. ์ƒˆ๋กœ์šด ์ƒ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ case ๋ฌธ์— ์—ฐ์‚ฐ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ์€ ๋œ๋‹ค. ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ ค ํ•  ๋•Œ "์•Œ ์ˆ˜ ์—†๋Š” ์—ฐ์‚ฐ"์ด๋ผ๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.

 

  ์—ด๊ฑฐ ํƒ€์ž…์˜ ์ƒ์ˆ˜๋ณ„ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด ์ƒ์ˆ˜๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  ์—ด๊ฑฐ ํƒ€์ž…์— apply๋ผ๋Š” ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ฐ ์ƒ์ˆ˜๋ณ„๋กœ ํด๋ž˜์Šค ๋ชธ์ฒด(constant-specific class body)๋ฅผ ์žฌ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค.

public enum Operation {
    PLUS {
        public double apply(double x, double y) {
            return x + y;
        }
    },
    MINUS {
        public double apply(double x, double y) {
            return x - y;
        }
    },
    TIMES {
        public double apply(double x, double y) {
            return x * y;
        }
    },
    DIVIDE {
        public double apply(double x, double y) {
            return x / y;
        }
    };

    public abstract double apply(double x, double y);
}

  ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์ƒ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ apply๋„ ์žฌ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นœ๋นกํ•˜๊ธฐ๋Š” ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, apply๊ฐ€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ์ด๋ฏ€๋กœ ์žฌ์ •์˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋กœ ์•Œ๋ ค์ค€๋‹ค.

 

 

๐Ÿ“™ 2. toString ๋ฉ”์„œ๋“œ & fromString ๋ฉ”์„œ๋“œ

  ์ƒ์ˆ˜๋ณ„ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„์„ ์ƒ์ˆ˜๋ณ„ ๋ฐ์ดํ„ฐ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด Operation์˜ toString์„ ์žฌ์ •์˜ํ•ด ํ•ด๋‹น ์—ฐ์‚ฐ์„ ๋œปํ•˜๋Š” ๊ธฐํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

public enum Operation {
    PLUS("+") {
        public double apply(double x, double y) {
            return x + y;
        }
    },
    MINUS("-") {
        public double apply(double x, double y) {
            return x - y;
        }
    },
    TIMES("*") {
        public double apply(double x, double y) {
            return x * y;
        }
    },
    DIVIDE("/") {
        public double apply(double x, double y) {
            return x / y;
        }
    };

    private final String symbol;

    Operation(String symbol) {
        this.symbol = symbol;
    }

    @Override
    public String toString() {
        return symbol;
    }

    public abstract double apply(double x, double y);
}

public static void main(String[] args) {
    double x = 2d;
    double y = 4d;

    for(Operation op : Operation.values()) {
        System.out.printf("%f %s %f = %f\n", x, op, y, op.apply(x, y));
    }

    // ๊ฒฐ๊ณผ
    // 2.000000 + 4.000000 = 6.000000
    // 2.000000 - 4.000000 = -2.000000
    // 2.000000 * 4.000000 = 8.000000
    // 2.000000 / 4.000000 = 0.500000
}

 

 

  ์—ด๊ฑฐ ํƒ€์ž…์—๋Š” ์ƒ์ˆ˜ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ์ƒ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” valueOf(String) ๋ฉ”์„œ๋“œ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋œ๋‹ค.

public static void main(String[] args) {

    Operation plus = Operation.valueOf("PLUS");
    System.out.println(plus); // +
}

 

 

  ๋˜ํ•œ, toString์ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ํ•ด๋‹น ์—ด๊ฑฐ ํƒ€์ž… ์ƒ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” fromString ๋ฉ”์„œ๋“œ๋„ ํ•จ๊ป˜ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

public enum Operation {
    PLUS("+") {
        public double apply(double x, double y) {
            return x + y;
        }
    },
    MINUS("-") {
        public double apply(double x, double y) {
            return x - y;
        }
    },
    TIMES("*") {
        public double apply(double x, double y) {
            return x * y;
        }
    },
    DIVIDE("/") {
        public double apply(double x, double y) {
            return x / y;
        }
    };

    private final String symbol;

    Operation(String symbol) {
        this.symbol = symbol;
    }

    @Override
    public String toString() {
        return symbol;
    }

    public abstract double apply(double x, double y);

    private static final Map<String, Operation> stringToEnum =
        Stream.of(values()).collect(
            toMap(Object::toString, e -> e));

    // ์ง€์ •ํ•œ ๋ฌธ์ž์—ด์— ํ•ด๋‹นํ•˜๋Š” Operation์„ (์กด์žฌํ•œ๋‹ค๋ฉด) ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    public static Optional<Operation> fromString(String symbol) {
        return Optional.ofNullable(stringToEnum.get(symbol));
    }
}

public static void main(String[] args) {

    Optional<Operation> plusFromString = Operation.fromString("+");
    System.out.println(plusFromString.get()); // +
}

 

  Operation ์ƒ์ˆ˜๊ฐ€ stringToEnum ๋งต์— ์ถ”๊ฐ€๋˜๋Š” ์‹œ์ ์€ ์—ด๊ฑฐ ํƒ€์ž… ์ƒ์ˆ˜ ์ƒ์„ฑ ํ›„ ์ •์  ํ•„๋“œ๊ฐ€ ์ดˆ๊ธฐํ™”๋  ๋•Œ๋‹ค.

 

 

๐Ÿ“™ 3. ์ „๋žต ์—ด๊ฑฐ ํƒ€์ž…

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

public enum PayrollDay {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
    SATURDAY, SUNDAY;

    private static final int MINS_PER_SHIFT = 8 * 60; // 8์‹œ๊ฐ„

    int pay(int minutesWorked, int payRate) {
        int basePay = minutesWorked * payRate;

        int overtimePay;
        switch(this) {
            case SATURDAY: // ์ฃผ๋ง (๋ฌด์กฐ๊ฑด ์ž”์—… ์ˆ˜๋‹น์œผ๋กœ ๊ณ„์‚ฐ)
            case SUNDAY:
                overtimePay = basePay / 2;
                break;
            default: // ์ฃผ์ค‘ (8์‹œ๊ฐ„ ์ดˆ๊ณผ์‹œ ์ž”์—… ์ˆ˜๋‹น ์ฃผ์–ด์ง)
                overtimePay = minutesWorked <= MINS_PER_SHIFT ?
                    0 : (minutesWorked - MINS_PER_SHIFT) * payRate / 2;
        }

        return basePay + overtimePay;
    }
}

  ์ด ์ฝ”๋“œ๋Š” ๊ด€๋ฆฌ ๊ด€์ ์—์„œ ์œ„ํ—˜ํ•œ ์ฝ”๋“œ์ด๋‹ค. ํœด๊ฐ€์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๊ฐ’์„ ์—ด๊ฑฐ ํƒ€์ž…์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๊ทธ ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜๋Š” case ๋ฌธ์„ ์žŠ์ง€ ๋ง๊ณ  ์Œ์œผ๋กœ ๋„ฃ์–ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

  ํ•ด๋‹น ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ƒˆ๋กœ์šด ์ƒ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ž”์—…์ˆ˜๋‹น '์ „๋žต'์„ ์„ ํƒํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

public enum PayrollDay {
    MONDAY(WEEKDAY), TUESDAY(WEEKDAY), WEDNESDAY(WEEKDAY), THURSDAY(WEEKDAY), FRIDAY(WEEKDAY),
    SATURDAY(WEEKEND), SUNDAY(WEEKEND);

    private final PayType payType;

    PayrollDay(PayType payType) {
        this.payType = payType;
    }

    int pay(int minutesWorked, int payRate) {
        return payType.pay(minutesWorked, payRate);
    }

    // ์ „๋žต ์—ด๊ฑฐ ํƒ€์ž…
    enum PayType {
        WEEKDAY {
            int overtimePay(int minsWorked, int payRate) {
                return minsWorked <= MINS_PER_SHIFT ? 0 :
                    (minsWorked - MINS_PER_SHIFT) * payRate / 2;
            }
        },
        WEEKEND {
            int overtimePay(int minsWorked, int payRate) {
                return minsWorked * payRate / 2;
            }
        };

        abstract int overtimePay(int mins, int payRate);
        private static final int MINS_PER_SHIFT = 8 * 60;

        int pay(int minsWorked, int payRate) {
            int basePay = minsWorked * payRate;
            return basePay + overtimePay(minsWorked, payRate);
        }
    }
}

  ์ด ๋ฐฉ๋ฒ•์€ ์ž”์—…์ˆ˜๋‹น ๊ณ„์‚ฐ์„ private ์ค‘์ฒฉ ์—ด๊ฑฐ ํƒ€์ž…(์•„๋ž˜์˜ PayType)์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  PayrollDay ์—ด๊ฑฐ ํƒ€์ž…์˜ ์ƒ์„ฑ์ž์—์„œ ์ด ์ค‘ ์ ๋‹นํ•œ ๊ฒƒ์„ ์„ ํƒํ•œ๋‹ค.

  ๊ทธ๋Ÿฌ๋ฉด PayrollDay ์—ด๊ฑฐ ํƒ€์ž…์€ ์ž”์—…์ˆ˜๋‹น ๊ณ„์‚ฐ์„ ๊ทธ ์ „๋žต ์—ด๊ฑฐ ํƒ€์ž…์— ์œ„์ž„ํ•˜์—ฌ, switch ๋ฌธ์ด๋‚˜ ์ƒ์ˆ˜๋ณ„ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„์ด ํ•„์š” ์—†๊ฒŒ ๋œ๋‹ค.

  ์œ„์—์„œ ์‚ดํŽด๋ณธ switch ๋ฌธ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋ณต์žกํ•˜์ง€๋งŒ ๋” ์•ˆ์ „ํ•˜๊ณ  ์œ ์—ฐํ•œ๋‹ค.

 

ํ•ด๋‹น ๊ธ€์€ Joshua Bloch ๋‹˜์˜ 'Effective Java 3/E'๋ฅผ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

'๐Ÿ“‚ JAVA > ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋น„ํŠธ ํ•„๋“œ ๋Œ€์‹  EnumSet์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ36)]  (1) 2023.07.01
ordinal ๋ฉ”์„œ๋“œ ๋Œ€์‹  ์ธ์Šคํ„ด์Šค ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ35)]  (0) 2023.07.01
int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ34)] - (1)  (0) 2023.07.01
ํƒ€์ž… ์•ˆ์ „ ์ด์ข… ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณ ๋ คํ•˜๋ผ - [5์žฅ. ์ œ๋„ค๋ฆญ(์•„์ดํ…œ33)]  (1) 2023.06.10
์ œ๋„ค๋ฆญ๊ณผ ๊ฐ€๋ณ€์ธ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์“ธ ๋•Œ๋Š” ์‹ ์ค‘ํ•˜๋ผ - [5์žฅ. ์ œ๋„ค๋ฆญ(์•„์ดํ…œ32)]  (0) 2023.06.03
    '๐Ÿ“‚ JAVA/์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋น„ํŠธ ํ•„๋“œ ๋Œ€์‹  EnumSet์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ36)]
    • ordinal ๋ฉ”์„œ๋“œ ๋Œ€์‹  ์ธ์Šคํ„ด์Šค ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ35)]
    • int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ผ - [6์žฅ. ์—ด๊ฑฐ ํƒ€์ž…๊ณผ ์• ๋„ˆํ…Œ์ด์…˜(์•„์ดํ…œ34)] - (1)
    • ํƒ€์ž… ์•ˆ์ „ ์ด์ข… ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณ ๋ คํ•˜๋ผ - [5์žฅ. ์ œ๋„ค๋ฆญ(์•„์ดํ…œ33)]
    Amenable
    Amenable
    CS, ์ž๋ฐ”, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์Šคํ”„๋ง, ์Šคํ”„๋ง ๋ถ€ํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”