์ฐฝ๋ฐœ์„ฑ

๋‹จ์ˆœํ•œ ๊ฒฐํ•ฉ์ด ๋ณต์žกํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„

๋‰ด๋Ÿฐ ํ•˜๋‚˜๋งŒ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ์„๊นŒ? ๋‰ด๋Ÿฐ์ด ๋ชจ์—ฌ ์–ด๋– ํ•œ ์ธ์‹์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆ˜์‹ญ์–ต๊ฐœ์˜ ๋‰ด๋ จ์ด ์ƒํ˜ธ์ž‘์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋ฏธ์‹œ์ ์ธ ๋ถ€๋ถ„์˜ ๊ฐ๊ฐ์˜ ํŠน์„ฑ๋งŒ์œผ๋กœ๋Š” ์„ค๋ช…ํ•  ์ˆ˜ ์—†๋Š” ์ „์ฒด๋กœ์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๋ณต์žกํ•œ ํ˜„์ƒ์„ ๋งํ•œ๋‹ค.

์ฐฝ๋ฐœ์  ์„ค๊ณ„๋กœ ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์ž

์ฐฝ๋ฐœ์„ฑ์˜ ์ด๋Ÿฌํ•œ ๋œป์—์„œ ๋ฏธ๋ฃจ์–ด ๋ณผ ๋•Œ, ์ €์ž๊ฐ€ ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ค ์ข‹์€ ๊ทœ์น™๊ณผ ์›์น™์— ๋”ฐ๋ผ ์„ค๊ณ„๋ฅผ ํ–ˆ์„ ๋•Œ, ๊ทธ๊ฒƒ๋“ค์ด ๋ชจ์—ฌ ์•„์ฃผ ์ข‹์€ ๊ฑฐ์‹œ์  ์„ค๊ณ„๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ ๊ทœ์น™์ด ์žˆ์„๊นŒ? ์šฐ๋ฆฌ๋“ค ๋Œ€๋‹ค์ˆ˜๋Š” ์ผ„ํŠธ ๋ฒก์ด ์ œ์‹œํ•œ ๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ ๋„ค๊ฐ€์ง€๊ฐ€ ์„ค๊ณ„ ํ’ˆ์งˆ์„ ๋†’์—ฌ์ค€๋‹ค๊ณ  ๋ฏฟ๋Š”๋‹ค.

  1. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  2. ์ค‘๋ณต์„ ์—†์•ค๋‹ค.
  3. ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
  4. ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ์ค„์ธ๋‹ค.

์œ„ ๋ชฉ๋ก์€ ์ค‘์š”๋„ ์ˆœ์ด๋‹ค.

๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ 1: ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ผ

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

ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๋ ค๊ณ  ์• ์“ฐ๋ฉด ์„ค๊ณ„ ํ’ˆ์งˆ์ด ๋†’์•„์ง„๋‹ค.

  1. ํฌ๊ธฐ๊ฐ€ ์ž‘๊ณ  ๋ชฉ์  ํ•˜๋‚˜๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‚˜์˜จ๋‹ค. SRP ์ค€์ˆ˜ ํด๋ž˜์Šค๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  2. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋„๋ก ๋•๋Š”๋‹ค.
  3. DI, Interface, ์ถ”์ƒํ™” ๋“ฑ์„ ํ†ตํ•ด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜๋‹ค. ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์œผ๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๊ณง, ๋†’์€ ์‹œ์Šคํ…œ ํ’ˆ์งˆ์„ ๋งŒ๋“ ๋‹ค.

๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™ 2~4: ๋ฆฌํŒฉํ„ฐ๋ง

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ชจ๋‘ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋ฉด ์ด์ œ ์ฝ”๋“œ์™€ ํด๋ž˜์Šค๋ฅผ ์ •๋ฆฌํ•ด๋„ ์ข‹๋‹ค. ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ์ด ๊นจ์งˆ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋ฌด์—‡์ด๋“  ์ ์šฉํ•ด๋„ ๋œ๋‹ค.

์ค‘๋ณต์„ ์—†์• ๋ผ

int size() {}
boolean isEmpty{}
 
boolean isEmpty() {
    return 0 == size();
}

isEmpty() ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ, ์ด์ „์— ๋งŒ๋“  size() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณต์„ ์ค„ ์ผ ์ˆ˜ ์žˆ๋‹ค.

public void scaleToOneDimension(float desiredDimension, float imageDimension) {
    if (Math.abs(desiredDimension - imageDimension) < errorThreshold)
        return;
    float scalingFactor = desiredDimension / imageDimension;
    scalingFactor = (float)(Math.floor(scalingFactor * 100) * 0.01f);
    
    RenderedOpnewImage = ImageUtilities.getScaledImage(image, scalingFactor, scalingFactor);
    // ์ค‘๋ณต ๋ฐœ์ƒ!
    image.dispose();
    System.gc();
    image = newImage;
}
 
public synchronized void rotate(int degrees) {
    RenderedOpnewImage = ImageUtilities.getRotatedImage(image, degrees);
    // ์ค‘๋ณต ๋ฐœ์ƒ!
    image.dispose();
    System.gc();
    image = newImage;
}

์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ณ ์ณ๋ณด์ž.

public void scaleToOneDimension(float desiredDimension, float imageDimension) {
    if (Math.abs(desiredDimension - imageDimension) < errorThreshold)
        return;
    float scalingFactor = desiredDimension / imageDimension;
    scalingFactor = (float) Math.floor(scalingFactor * 10) * 0.01f);
    replaceImage(ImageUtilities.getScaledImage(image, scalingFactor, scalingFactor));
}
 
public synchronized void rotate(int degrees) {
    replaceImage(ImageUtilities.getRotatedImage(image, degrees));
}
 
private void replaceImage(RenderedOpnewImage) {
    image.dispose();
    System.gc();
    image = newImage;
}

์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ ๋†“๊ณ  ๋ณด๋‹ˆ, ํด๋ž˜์Šค๊ฐ€ SRP๋ฅผ ์œ„๋ฐ˜ํ•œ๋‹ค. ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ ์‹œ์—๋„ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ๊ฑด๋“ค์—ฌ์•ผ ํ•œ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ด๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๋‚ซ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ์ด๋Ÿฐ ์†Œ๊ทœ๋ชจ ์žฌ์‚ฌ์šฉ ๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ์ตํ˜€์•ผ ๋Œ€๊ทœ๋ชจ ์žฌ์‚ฌ์šฉ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” TEMPLATE METHOD์ด๋‹ค. TEMPLATE METHOD ํŒจํ„ด์€ ๊ณ ์ฐจ์› ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ๋ชฉ์ ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด์ž.

public class VacationPolicy {
    public void accrueUSDDivisionVacation() {
        // ์ง€๊ธˆ๊นŒ์ง€ ๊ทผ๋ฌดํ•œ ์‹œ๊ฐ„์„ ๋ฐ”ํƒ•์œผ๋กœ ํœด๊ฐ€ ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ
        // ...
        // ํœด๊ฐ€ ์ผ์ˆ˜๊ฐ€ ๋ฏธ๊ตญ ์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ
        // ...
        // ํœด๊ฐ€ ์ผ์ˆ˜๋ฅผ ๊ธ‰์—ฌ ๋Œ€์žฅ์— ์ ์šฉํ•˜๋Š” ์ฝ”๋“œ
        // ...
    }
  
    public void accrueEUDivisionVacation() {
        // ์ง€๊ธˆ๊นŒ์ง€ ๊ทผ๋ฌดํ•œ ์‹œ๊ฐ„์„ ๋ฐ”ํƒ•์œผ๋กœ ํœด๊ฐ€ ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ
        // ...
        // ํœด๊ฐ€ ์ผ์ˆ˜๊ฐ€ ์œ ๋Ÿฝ์—ฐํ•ฉ ์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ
        // ...
        // ํœด๊ฐ€ ์ผ์ˆ˜๋ฅผ ๊ธ‰์—ฌ ๋Œ€์žฅ์— ์ ์šฉํ•˜๋Š” ์ฝ”๋“œ
        // ...
    }
}

์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ฝ”๋“œ๋งŒ ์ œ์™ธํ•˜๋ฉด ๋‘ ๋ฉ”์„œ๋“œ๋Š” ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ง์› ์œ ํ˜•์— ๋”ฐ๋ผ ์‚ด์ง ๋ณ€ํ•œ๋‹ค. ์—ฌ๊ธฐ์— TEMPLATE METHOD ํŒจํ„ด์„ ์ ์šฉํ•ด ๋ˆˆ์— ๋“ค์–ด์˜ค๋Š” ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค.

abstract public class VacationPolicy {
    public void accrueVacation() {
        caculateBseVacationHours();
        alterForLegalMinimums();
        applyToPayroll();
    }
    
    private void calculateBaseVacationHours() { /* ... */ };
    abstract protected void alterForLegalMinimums();
    private void applyToPayroll() { /* ... */ };
}
 
public class USVacationPolicy extends VacationPolicy {
    @Override protected void alterForLegalMinimums() {
        // ๋ฏธ๊ตญ ์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    }
}
 
public class EUVacationPolicy extends VacationPolicy {
    @Override protected void alterForLegalMinimums() {
        // ์œ ๋Ÿฝ์—ฐํ•ฉ ์ตœ์†Œ ๋ฒ•์ • ์ผ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    }
}

ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ •๋ณด๋งŒ ์ œ๊ณตํ•ด accrueVacation ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋น ์ง„ โ€˜๊ตฌ๋ฉโ€™์„ ๋ฉ”์šด๋‹ค.

ํ‘œํ˜„ํ•˜๋ผ

  1. ์ข‹์€ ์ด๋ฆ„์„ ์„ ํƒํ•œ๋‹ค.
  2. ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ค„์ธ๋‹ค.
  3. ํ‘œ์ค€ ๋ช…์นญ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋””์ž์ธ ํŒจํ„ด์€ ์˜์‚ฌ์†Œํ†ต๊ณผ ํ‘œํ˜„๋ ฅ ๊ฐ•ํ™”๊ฐ€ ์ฃผ์š” ๋ชฉ์ ์ด๋‹ค. ์œ ์‚ฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋ผ.
  4. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ผผ๊ผผํžˆ ์ž‘์„ฑํ•œ๋‹ค.

์œ„์˜ ๋ฐฉ๋ฒ•๋ก ๋ณด๋‹ค ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋…ธ๋ ฅ์ด๋‹ค. ๋งŽ์€ ๊ณ ๋ฏผ์„ํ•˜๊ณ  ๋งŒ๋“ค์–ด์ง„ ์ž‘ํ’ˆ์„ ์กฐ๊ธˆ ๋” ์ž๋ž‘ํ•˜์ž. ์ฃผ์˜๋Š” ๋Œ€๋‹จํ•œ ์žฌ๋Šฅ์ด๋‹ค.

ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ์ค„์—ฌ๋ผ

์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , SRP๋ฅผ ์ค€์ˆ˜ํ•œ๋‹ค๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๋„ ๊ทน๋‹จ์œผ๋กœ ์น˜๋‹ฌ์œผ๋ฉด ๋“๋ณด๋‹ค ์‹ค์ด ๋งŽ์•„์ง„๋‹ค. ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด์ž๊ณ  ์กฐ๊ทธ๋งŒ ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜์—†์ด ๋งŒ๋“œ๋Š” ์‚ฌ๋ก€๋„ ์—†์ง€ ์•Š๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๊ทœ์น™์€ ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ์ˆ˜๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ์ค„์ด๋ผ๊ณ  ์ œ์•ˆํ•œ๋‹ค.

๋•Œ๋กœ๋Š” ๋ฌด์˜๋ฏธํ•˜๊ณ  ๋…๋‹จ์ ์ธ ์ •์ฑ… ํƒ“์— ํด๋ž˜์Šค ์ˆ˜์™€ ๋ฉ”์„œ๋“œ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ๋„ ํ•œ๋‹ค. ํด๋ž˜์Šค๋งˆ๋‹ค ๋ฌด์กฐ๊ฑด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ผ๊ณ  ์š”๊ตฌํ•˜๋Š” ๊ตฌํ˜„ ํ‘œ์ค€์ด ์ข‹์€ ์˜ˆ๋‹ค. ์ž๋ฃŒ ํด๋ž˜์Šค์™€ ๋™์ž‘ ํด๋ž˜์Šค๋Š” ๋ฌด์กฐ๊ฑด ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋„ ์ข‹์€ ์˜ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋…๋‹จ์ ์ธ ๊ฒฌํ•ด๋Š” ๋ฉ€๋ฆฌํ•˜๊ณ  ์‹ค์šฉ์ ์ธ ๋ฐฉ์‹์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.

๋ชฉํ‘œ๋Š” ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ ๋™์‹œ์— ์‹œ์Šคํ…œ ํฌ๊ธฐ๋„ ์ž‘๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ทœ์น™์€ ๊ฐ„๋‹จํ•œ ์„ค๊ณ„ ๊ทœ์น™ ๋„ค ๊ฐœ ์ค‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ์ž‘์—…๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž‘์—…์ด ๋” ์ค‘์š”ํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค.

๊ฒฐ๋ก 

๊ฒฝํ—˜์„ ๋Œ€์‹ ํ•  ๋‹จ์ˆœํ•œ ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์ด ์žˆ์„๊นŒ? ๋‹น์—ฐํžˆ ์—†๋‹ค. ํ•˜์ง€๋งŒ ์ด ์žฅ, ์•„๋‹ˆ ์ด ์ฑ…์—์„œ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ๋ฒ•์€ ์ €์ž๋“ค์ด ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์Œ“์€ ๊ฒฝํ—˜์˜ ์ •์ˆ˜๋‹ค. ๋‹จ์ˆœํ•œ ์„ค๊ณ„ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค๋ฉด (์˜ค๋žœ ๊ฒฝํ—˜ ํ›„์—์•ผ ์ตํž) ์šฐ์ˆ˜ํ•œ ๊ธฐ๋ฒ•๊ณผ ์›์น™์„ ๋‹จ๋ฒˆ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Reference