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

λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀의 μž₯점, 단점, 단점 λŒ€μ²˜ 방법)(2) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀의 μž₯점, 단점, 단점 λŒ€μ²˜ 방법)(2) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]

2023. 4. 27. 07:35

  이전 κΈ€

  • λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ ν΄λž˜μŠ€λ₯Ό λ§Œλ“œλŠ” λ‹€μ„― κ°€μ§€ κ·œμΉ™)(1) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]

  이번 κΈ€μ—μ„œλŠ” λΆˆλ³€ 클래슀의 μž₯점, 단점, 그리고 단점 λŒ€μ²˜ 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

 

1. μž₯점 πŸš‘

πŸ“˜ μž₯점 1. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ— μ ν•©ν•˜λ‹€.

public final class Complex {
    private final double re;
    private final double im;

    public Complex(double re, double im) {
        this.re = re;
        this.im = im;
    }

    public double realPart() { return re;}
    public double imaginaryPart() {return im;}

    public Complex plus(Complex c){
        return new Complex(re + c.re, im + c.im);
    }

    public Complex minus(Complex c){
        return new Complex(re - c.re, im - c.im);
    }

    public Complex times(Complex c){
        return new Complex(re * c.re - im * c.im, re*c.im + im * c.re);
    }

    public Complex dividedBy(Complex c){
        double tmp = c.re*c.re + c.im * c.im;
        return new Complex((re * c.re + im * c.im) / tmp, (im * c.re - re * c.im) / tmp);
    }

    @Override
    public boolean equals(Object o){
        if(o == this)
            return true;
        if(!(o instanceof Complex))
            return false;
        Complex c = (Complex) o;

        return Double.compare(c.re, re) == 0
                && Double.compare(c.im, im) == 0;
    }

    @Override
    public int hashCode() {
        return 31 * Double.hashCode(re) + Double.hashCode(im);
    }

    @Override
    public String toString() {
        return "(" + re + " + " + im + "i)";
    }
}

  plus, minus, times, dividedByλ₯Ό μ‚΄νŽ΄λ³΄λ©΄ μΈμŠ€ν„΄μŠ€ μžμ‹ μ€ μˆ˜μ •ν•˜μ§€ μ•Šκ³  μƒˆλ‘œμš΄ Compelx μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄ λ°˜ν™˜ν•œλ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€. 즉, ν”Όμ—°μ‚°μžλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³  κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ— λ”°λ₯΄κ³  μžˆλ‹€. μ΄λ ‡κ²Œ 되면 μ½”λ“œμ—μ„œ λΆˆλ³€μ΄ λ˜λŠ” μ˜μ—­μ˜ λΉ„μœ¨μ΄ λ†’μ•„μ§€λŠ” μž₯점을 λˆ„λ¦΄ 수 μžˆλ‹€.

πŸ“˜ μž₯점 2. λΆˆλ³€ κ°μ²΄λŠ” λ‹¨μˆœν•˜λ‹€.

  값이 λ°”κΏ€ 거라고 μ˜ˆμƒν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ ν”„λ‘œκ·Έλž˜λ°μ΄ 더 간단해진닀. λ§Œμ•½ 값이 바뀐닀고 ν•˜λ©΄, 볡사λ₯Ό ν•΄μ„œ μ‚¬μš©ν•˜κ±°λ‚˜ λ°”λ€Œμ—ˆλ‹€λŠ” κ°€μ •ν•˜μ— ν”„λ‘œκ·Έλž˜λ°μ„ ν•΄μ•Ό ν•˜λ―€λ‘œ 훨씬 λ³΅μž‘ν•œ μƒνƒœμ— 놓일 수 μžˆλ‹€.

πŸ“˜ μž₯점 3. λΆˆλ³€ κ°μ²΄λŠ” κ·Όλ³Έμ μœΌλ‘œ μŠ€λ ˆλ“œ μ•ˆμ „ν•˜μ—¬ λ”°λ‘œ λ™κΈ°ν™”ν•  ν•„μš” μ—†λ‹€.

  μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— μ‚¬μš©ν•΄λ„ μ ˆλŒ€ ν›Όμ†λ˜μ§€ μ•ŠλŠ”λ‹€. 사싀 클래슀λ₯Ό μŠ€λ ˆλ“œ μ•ˆμ „ν•˜κ²Œ λ§Œλ“œλŠ” κ°€μž₯ μ‰¬μš΄ 방법이기도 ν•˜λ‹€. 

πŸ“˜ μž₯점 4. λΆˆλ³€ κ°μ²΄λŠ” μ•ˆμ‹¬ν•˜κ³  κ³΅μœ ν•  μˆ˜ μžˆλ‹€.

  λΆˆλ³€ 클래슀라면 ν•œλ²ˆ λ§Œλ“  μΈμŠ€ν„΄μŠ€λ₯Ό μ΅œλŒ€ν•œ μž¬ν™œμš©ν•˜κΈ°λ₯Ό κΆŒν•˜κ³  μžˆλ‹€. μœ„μ˜ μ½”λ“œμ—μ„œ ZERO, ONE, I처럼 μƒμˆ˜λ‘œ μ„ μ–Έν•˜μ—¬ μΈμŠ€ν„΄μŠ€λ₯Ό μž¬ν™œμš©ν•  수 μžˆλ‹€.

  λ˜ν•œ, λΆˆλ³€ ν΄λž˜μŠ€λŠ” 자주 μ‚¬μš©λ˜λŠ” μΈμŠ€ν„΄μŠ€λ₯Ό μΊμ‹±ν•˜μ—¬ 같은 μΈμŠ€ν„΄μŠ€λ₯Ό 쀑볡 μƒμ„±ν•˜μ§€ μ•Šκ²Œ ν•΄μ£ΌλŠ” 정적 νŒ©ν„°λ¦¬λ₯Ό μ œκ³΅ν•  수 μžˆλ‹€. 이런 정적 νŒ©ν„°λ¦¬λ₯Ό μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬ ν΄λΌμ΄μ–ΈνŠΈκ°€ μΈμŠ€ν„΄μŠ€λ₯Ό κ³΅μœ ν•˜μ—¬ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰κ³Ό κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ λΉ„μš©μ΄ μ€„μ–΄λ“ λ‹€λŠ” μž₯점이 μžˆλ‹€. 그리고 μƒˆλ‘œμš΄ 클래슀λ₯Ό 섀계할 λ•Œ public μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬λ₯Ό λ§Œλ“€μ–΄λ‘λ©΄, ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ ν•„μš”μ— 따라 μΊμ‹œ κΈ°λŠ₯을 λ‚˜μ€‘μ— 덧뢙일 수 μžˆλ‹€.

  λΆˆλ³€ 객체λ₯Ό 자유둭게 κ³΅μœ ν•  수 μžˆλ‹€λŠ” 점은 방어적 볡사도 ν•„μš” μ—†λ‹€λŠ” 결둠으둜 이어진닀. 아무리 볡사λ₯Ό 해도 원본과 λ˜‘κ°™μœΌλ‹ˆ 볡사 μžμ²΄κ°€ μ˜λ―Έκ°€ μ—†λ‹€. κ·ΈλŸ¬λ―€λ‘œ λΆˆλ³€ ν΄λž˜μŠ€λŠ” clone λ©”μ„œλ“œλ‚˜ 볡사 μƒμ„±μžλ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ” 게 μ’‹λ‹€.

πŸ“˜ μž₯점 5. λΆˆλ³€ κ°μ²΄λŠ” μžμœ λ‘­κ²Œ κ³΅μœ ν•  μˆ˜ μžˆμŒμ€ λ¬Όλ‘ , λΆˆλ³€ κ°μ²΄λΌλ¦¬λŠ” λ‚΄λΆ€ λ°μ΄ν„°λ₯Ό κ³΅μœ ν•  μˆ˜ μžˆλ‹€.

public class BigInteger extends Number implements Comparable<BigInteger> {
    final int signum;
    final int[] mag;
    
    public BigInteger negate() {
        return new BigInteger(this.mag, -this.signum);
    }    
}

----------

public static void main(String[] args) {
    BigInteger ten = BigInteger.TEN;
    BigInteger minusTen = ten.negate();
}

  BigInteger ν΄λž˜μŠ€λŠ” λ‚΄λΆ€μ—μ„œ κ°’μ˜ λΆ€ν˜Έ(sign)와 크기(mag)λ₯Ό λ”°λ‘œ ν‘œν˜„ν•œλ‹€. negate λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν¬κΈ°λŠ” κ°™κ³  λΆ€ν˜Έλ§Œ λ°˜λŒ€μΈ μƒˆλ‘œμš΄ BigIntegerλ₯Ό μƒμ„±ν•˜λŠ”λ°, λ‚΄λΆ€ 데이터λ₯Ό κ³΅μœ ν•˜μ—¬ μƒμ„±ν•œλ‹€.

  μ΄λ•Œ, λ°°μ—΄μ΄λΌλŠ” 것이 κ°€λ³€μ΄λΌμ„œ μœ„ν—˜ν•˜λ‹€κ³  생각할 수 μžˆλŠ”λ° μœ„μ™€ 같이 final을 μ΄μš©ν•˜μ—¬ λΆˆλ³€μœΌλ‘œ μ²˜λ¦¬ν•΄ μ£Όμ—ˆκΈ° λ•Œλ¬Έμ— λ‚΄λΆ€ 데이터λ₯Ό κ³΅μœ ν•΄λ„ μ•ˆμ „ν•˜κ²Œ λœλ‹€.

  λΆˆλ³€ 객체 끼리 ν•œλ‹€λŠ” 것을 ν•œλ²ˆ 더 μΈμ§€ν•˜κ³  λ„˜μ–΄κ°€λ„λ‘ ν•˜μž.

πŸ“˜ μž₯점 6. κ°μ²΄λ₯Ό λ§Œλ“€ λ•Œ λΆˆλ³€ κ°μ²΄λ‘œ κ΅¬μ„±ν•˜λ©΄ μ΄μ μ΄ λ§Žλ‹€.

  값이 λ°”λ€Œμ§€ μ•ŠλŠ” κ΅¬μ„±μš”μ†Œλ“€λ‘œ 이뀄진 객체라면 κ·Έ ꡬ쑰가 아무리 λ³΅μž‘ν•˜λ”λΌλ„ λΆˆλ³€μ‹μ„ μœ μ§€ν•˜κΈ° 훨씬 μˆ˜μ›”ν•΄μ§„λ‹€.

public class Point {

    public int y, x;

    public Point(int y, int x) {
        this.y = y;
        this.x = x;
    }
}

----------

public static void main(String[] args) {
    Set<Point> points = new HashSet<>();
    Point firstPoint = new Point(1, 2);
    points.add(firstPoint);

    firstPoint.y = 2;
}

  μœ„μ™€ 같이 Set이 κ°€λ³€ κ°μ²΄λ“€λ‘œ κ΅¬μ„±λœλ‹€λ©΄ λΆˆλ³€μ‹μ΄ λ„ˆλ¬΄λ‚˜ μ‰½κ²Œ ν—ˆλ¬Όμ–΄μ§„λ‹€.

public class Point {

    private final int y, x;

    public Point(int y, int x) {
        this.y = y;
        this.x = x;
    }
}

----------

public static void main(String[] args) {
    Set<Point> points = new HashSet<>();
    Point firstPoint = new Point(1, 2);
    points.add(firstPoint);
}

  ν•˜μ§€λ§Œ λΆˆλ³€ 객체λ₯Ό μ›μ†Œλ‘œ κ°€μ§„λ‹€λ©΄ λΆˆλ³€μ‹μ„ μœ μ§€ν•˜κΈ°κ°€ 훨씬 μˆ˜μ›”ν•΄μ§„λ‹€.

πŸ“˜ μž₯점 7. μ‹€νŒ¨ μ›μžμ„±μ„ μ œκ³΅ν•œλ‹€.

  λΆˆλ³€ 객체λ₯Ό λ§Œλ“€λ©΄ μƒνƒœκ°€ μ ˆλŒ€ λ³€ν•˜μ§€ μ•ŠμœΌλ‹ˆ μž κΉμ΄λΌλ„ 뢈일치 μƒνƒœμ— 빠질 κ°€λŠ₯성이 μ—†λ‹€. 근본적으둜 μ‹€νŒ¨μ›μžμ„±μ„ μ œκ³΅ν•˜κ²Œ λœλ‹€.

  λ¬Όλ‘  κ°€λ³€ 객체λ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ μ‹€νŒ¨ μ›μžμ„±μ„ μ œκ³΅ν•  수 μžˆκΈ°λŠ” ν•˜λ‹€.

 

2. 단점 πŸš’

πŸ“• λ‹¨μ  1. 값이 λ‹€λ₯΄λ©΄ λ°˜λ“œμ‹œ λ…λ¦½λœ 객체둜 λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

  κ°’μ˜ κ°€μ§“μˆ˜κ°€ λ§Žλ‹€λ©΄ 이듀을 λͺ¨λ‘ λ§Œλ“œλŠ” 데 큰 λΉ„μš©μ„ μΉ˜λŸ¬μ•Ό ν•œλ‹€. 

BigInteger moby = ...;
moby = moby.flipBit(0);

  μœ„μ™€ 같이 백만 λΉ„νŠΈμ§œλ¦¬ BigIntegerμ—μ„œ λΉ„νŠΈ ν•˜λ‚˜λ§Œ λ°”κΏ”μ£ΌλŠ” 경우λ₯Ό μ‚΄νŽ΄λ³΄μž. filpBit λ©”μ„œλ“œλŠ” μƒˆλ‘œμš΄ BigInteger μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•œλ‹€. 원본과 단지 ν•œ λΉ„νŠΈλ§Œ λ‹€λ₯Έ 백만 λΉ„νŠΈμ§œλ¦¬ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•œλ‹€λŠ” 것이닀. μ΄λ ‡κ²Œ 되면 BigInteger의 크기에 λΉ„λ‘€ν•˜μ—¬ μ‹œκ°„κ³Ό 곡간을 μž‘μ•„λ¨Ήκ²Œ λœλ‹€.

BigSet moby = ...;
moby.flip(0);

  BigSet은 BigInteger와 달리 κ°€λ³€ ν΄λž˜μŠ€μ΄λ‹€. 이λ₯Ό μ΄μš©ν•˜λ©΄ μ›ν•˜λŠ” λΉ„νŠΈ ν•˜λ‚˜λ§Œ μƒμˆ˜ μ‹œκ°„(O(1))μ•ˆμ— λ°”κΏ”μ£ΌλŠ” λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

 

3. 단점 λŒ€μ²˜ 방법 🚚

  μ›ν•˜λŠ” 객체λ₯Ό μ™„μ„±ν•˜κΈ°κΉŒμ§€μ˜ 단계가 많고, κ·Έ 쀑간 λ‹¨κ³„μ—μ„œ λ§Œλ“€μ–΄μ§„ 객체듀이 λͺ¨λ‘ 버렀진닀면 μ„±λŠ₯ λ¬Έμ œκ°€ λ”μš± λΆˆκ±°μ§„λ‹€. 이 문제λ₯Ό λŒ€μ²˜ν•˜λŠ” 2κ°€μ§€ 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

πŸ“— λ°©λ²• 1. ν”νžˆ μ“°μΌ '닀단계 μ—°μ‚°(multistep operation)듀을 μ˜ˆμΈ‘ν•˜μ—¬ κΈ°λ³Έ κΈ°λŠ₯으둜 μ œκ³΅ν•˜λŠ” λ°©λ²•

  객체λ₯Ό ν•˜λ‚˜ μ™„μ„±ν•˜κΈ° μœ„ν•΄ Complex의 plus, minus, times, dividedByλ₯Ό μ‚¬μš©ν•œλ‹€κ³  ν•˜μž. μ΄λ ‡κ²Œ 총 4개의 연산을 μ“°λŠ” 게 μ•„λ‹Œ 'plusMinusTimesAndDividedBy'λΌλŠ” λ©”μ„œλ“œλ₯Ό λ§Œλ“€μ–΄μ„œ ν•˜λ‚˜μ˜ 연산을 μ‚¬μš©ν•˜λ„λ‘ ν•  수 μžˆλ‹€.

κΈ°μ‘΄μ—λŠ” 4개의 Complex μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ—ˆλŠ”λ° μœ„와 κ°™μ€ λ°©λ²•을 μ‚¬μš©ν•˜λ©΄ 1개의 Complex μΈμŠ€ν„΄μŠ€λ§Œ λ§Œλ“€λ©΄ λœλ‹€.

πŸ“— λ°©λ²• 2. package-private의 κ°€λ³€ λ™λ°˜ 클래슀λ₯Ό μ œκ³΅ν•˜λŠ” 방법 (ν΄λΌμ΄μ–ΈνŠΈλ“€μ΄ μ›ν•˜λŠ” λ³΅μž‘ν•œ 연산듀을 μ •ν™•νžˆ μ˜ˆμΈ‘ν•  수 μžˆλŠ” 경우)

public static void main(String[] args) {
    String name = "amenable";

    StringBuilder nameBuilder = new StringBuilder(name);
    nameBuilder.append("choi");
}

  String μžμ²΄λŠ” λΆˆλ³€ ν΄λž˜μŠ€μ΄λ‹€. ν•˜μ§€λ§Œ String의 κ°€λ³€ λ™λ°˜ 클래슀인 StringBuilderλ₯Ό μ΄μš©ν•˜λ©΄ 값을 λ³€κ²½ν•  수 μžˆλ‹€.

 

 

μ΄μƒμœΌλ‘œ λΆˆλ³€ 클래슀의 μž₯점, 단점 그리고 단점 λŒ€μ²˜ 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μ•˜λ‹€.

λ‹€μŒ 글을 톡해

  • λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ ν΄λž˜μŠ€λ₯Ό λ§Œλ“€ λ•Œ κ³ λ €ν•  κ²ƒ)(3) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]

λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

 

ν•΄λ‹Ή 글은 λ°±κΈ°μ„  λ‹˜μ˜ 'μ΄νŽ™ν‹°λΈŒ μžλ°” μ™„λ²½ 곡랡'을 μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ JAVA > μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μƒμ†λ³΄λ‹€λŠ” μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λΌ - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ18)]  (0) 2023.04.28
λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀λ₯Ό λ§Œλ“€ λ•Œ κ³ λ €ν•  것)(3) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]  (0) 2023.04.27
λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀λ₯Ό λ§Œλ“œλŠ” λ‹€μ„― κ°€μ§€ κ·œμΉ™)(1) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]  (0) 2023.04.27
public ν΄λž˜μŠ€μ—μ„œλŠ” public ν•„λ“œκ°€ μ•„λ‹Œ μ ‘κ·Όμž λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λΌ - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ16)]  (0) 2023.04.24
ν΄λž˜μŠ€μ™€ λ©€λ²„μ˜ μ ‘κ·Ό κΆŒν•œμ„ μ΅œμ†Œν™”ν•˜λΌ - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ15)]  (0) 2023.04.12
    'πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • μƒμ†λ³΄λ‹€λŠ” μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λΌ - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ18)]
    • λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀λ₯Ό λ§Œλ“€ λ•Œ κ³ λ €ν•  것)(3) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]
    • λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜λΌ(λΆˆλ³€ 클래슀λ₯Ό λ§Œλ“œλŠ” λ‹€μ„― κ°€μ§€ κ·œμΉ™)(1) - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ17)]
    • public ν΄λž˜μŠ€μ—μ„œλŠ” public ν•„λ“œκ°€ μ•„λ‹Œ μ ‘κ·Όμž λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λΌ - [4μž₯. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€(μ•„μ΄ν…œ16)]
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”