[Java] Interface

Yumya's recordยท2025๋…„ 4์›” 22์ผ

SKALA

๋ชฉ๋ก ๋ณด๊ธฐ
25/25
post-thumbnail

๐Ÿฆˆ ์ž๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ฆฌ ๐Ÿฆˆ

interface

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

interface <interface_name> {
	
    public static final <value_type> <value_name> = <value>; // public abstract final ์ƒ๋žต ๊ฐ€๋Šฅ
    
    public abstract <method_type> <method_name> (); // public abstract ์ƒ๋žต ๊ฐ€๋Šฅ
    <method_type> <method_name> ();
}

interface ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•˜๋ฉฐ, ๋ฉ”์„œ๋“œ์˜ ์ •์˜๋งŒ ๋ช…์‹œํ•œ๋‹ค.
๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” public abstract์ด์–ด์•ผ ํ•˜๋ฉฐ, public static final๊ณผ public static ์ œ์–ด์ž๋Š” ์ƒ๋žตํ•˜๋”๋ผ๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ปดํŒŒ์ผํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ์—๋Š” ์ƒ์ˆ˜(final)๋งŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ทธ ์ž์ฒด๋กœ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๊ตฌํ˜„๋ถ€๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํด๋ž˜์Šค์— ๊ตฌํ˜„๋˜์–ด์•ผ ํ•œ๋‹ค.

interface ๋ถ•์–ด๋นตํ‹€ {
	void make๋ถ•์–ด๋นต();
}

public class ์Šˆํฌ๋ฆผ๋ถ•์–ด๋นต implements ๋ถ•์–ด๋นตํ‹€ {
	
    @Override
    public void make๋ถ•์–ด๋นต() {
    	...code
    }
}

ํด๋ž˜์Šค๋Š” implements ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— ๋ช…์‹œ๋œ ๋ฉ”์„œ๋“œ์˜ ์ •์˜๋ฅผ @Override๋กœ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

@Override ์‚ฌ์šฉ ์ด์œ 
1. ์ปดํŒŒ์ผ๋Ÿฌ ์ฒดํฌ ๊ธฐ๋Šฅ : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ๋ถ€๋ชจ ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์žฌ์ •์˜ํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž„
2. ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ : ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ ์žฌ์ •์˜ํ•œ ๊ฒƒ์ด๋ผ๋Š” ์ •๋ณด๋ฅผ ๋ช…ํ™•ํžˆ ์ „๋‹ฌ
3. ๋ฆฌํŒฉํ† ๋ง ์•ˆ์ •์„ฑ : ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ์ •์˜๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฌธ์ œ ๊ฐ์‹œ ๋ฐ ์ˆ˜์ •ํ•˜๋„๋ก ์ง€์›ํ•ด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž„

์ด๋•Œ ํ•ด๋‹น ํด๋ž˜์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— ๋ช…์‹œ๋œ ๋ชจ๋“  ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
๋งŒ์•ฝ ๋ชจ๋“  ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.


interface ๋ถ•์–ด๋นตํ‹€ {
	void make๋ถ•์–ด๋นต();
}

public class ์Šˆํฌ๋ฆผ๋ถ•์–ด๋นต implements ๋ถ•์–ด๋นตํ‹€ {
	
    @Override
    public void make๋ถ•์–ด๋นต() {
    	...code
    }
}

public class ํŒฅ๋ถ•์–ด๋นต implements ๋ถ•์–ด๋นตํ‹€ {
	
    @Override
    public void make๋ถ•์–ด๋นต() {
    	...code
    }
}

๋˜, ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (= ๋‹ค์ค‘ ๊ตฌํ˜„)


interface ๋ถ•์–ด๋นตํ‹€ {
	void make๋ถ•์–ด๋นต();
}

public class ๋ถ•์–ด๋นต {
	
    ...code
}

public class ์Šˆํฌ๋ฆผ๋ถ•์–ด๋นต extends implements ๋ถ•์–ด๋นตํ‹€ {
	
    @Override
    public void make๋ถ•์–ด๋นต() {
    	...code
    }
}

ํด๋ž˜์Šค ์ƒ์†๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์€ ๋™์‹œ์— ๊ฐ€๋Šฅํ•˜๋‹ค.



๋‹ค์ค‘ ๊ตฌํ˜„์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณตํ†ต์ ์ธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.


์˜ˆ๋ฅผ ๋“ค๋ฉด, ๊ฒŒ์ž„ ๋‚ด ์บ๋ฆญํ„ฐ์˜ ๋ฌด๊ธฐ(weapon)๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ ๋ฌด๊ธฐ์˜ ์ข…๋ฅ˜๋Š” ์นผ(knife), ์ด(gun), ์ฃผ๋จน(fist)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

์บ๋ฆญํ„ฐ๋Š” ์œ ์ €๊ฐ€ ์›ํ•  ๋•Œ ๋ฌด๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๋˜, ๋ฌด๊ธฐ๋กœ ๊ณต๊ฒฉ(attack)๊ณผ ๋ง‰๊ธฐ(defend)๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ, ์บ๋ฆญํ„ฐ๋Š” ๋ชจ๋“  ๋ฌด๊ธฐ์˜ ๋™์ž‘์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๋˜, ๋ชจ๋“  ๋ฌด๊ธฐ์˜ ์ข…๋ฅ˜๋ฅผ ๋ณ€์ˆ˜๋‚˜ enum์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋ฌด๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

public class ์บ๋ฆญํ„ฐ {

	private String ๋ฌด๊ธฐ๋ชจ๋“œ;
    
    public void change๋ฌด๊ธฐ(String ์ƒˆ๋กœ์šด๋ฌด๊ธฐ) {
    	
        if (์ƒˆ๋กœ์šด๋ฌด๊ธฐ.equals("์ฃผ๋จน") {
        	๋ฌด๊ธฐ๋ชจ๋“œ = "fist";	
            return;
        }
        if (์ƒˆ๋กœ์šด๋ฌด๊ธฐ.equals("์นผ") {
        	๋ฌด๊ธฐ๋ชจ๋“œ = "knife";
            return;
        }
        ๋ฌด๊ธฐ๋ชจ๋“œ = "gun";
        return;
	}

	public Integer attack() {
    	
        int damage = 1;
        
        if (๋ฌด๊ธฐ๋ชจ๋“œ.equals("gun")) {
        	damage = 10;
        }
        if (๋ฌด๊ธฐ๋ชจ๋“œ.equals("knife") {
        	damage = 5;
        }
        return damage;
    }
    
    public Integer defend() {
    	
        int damage = 1;
        
        if (๋ฌด๊ธฐ๋ชจ๋“œ.equals("gun")) {
        	damage = -10;
        }
        if (๋ฌด๊ธฐ๋ชจ๋“œ.equals("knife") {
        	damage = -5;
        }
        return damage;
    }
}   

์ด ๊ฒฝ์šฐ ์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์ง€๊ณ , ์ฝ”๋“œ์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ ธ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
๋˜, ์ƒˆ๋กœ์šด ๋ฌด๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•จ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ข‹์ง€ ์•Š๋‹ค.


ํ•˜์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ, ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ(attack, defend ๋“ฑ)์„ ๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜ํ•ด๋‘๊ณ , ๊ฐ ๋ฌด๊ธฐ ํด๋ž˜์Šค์—์„œ ์ด๋ฅผ ์ž์‹ ๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ๋‹คํ˜•์„ฑ(Polymorphism) ์„ ์‹คํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์บ๋ฆญํ„ฐ ํด๋ž˜์Šค๋Š” ๋ฌด๊ธฐ๊ฐ€ ์ด, ์นผ, ์ฃผ๋จน ์ค‘ ๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ์„ ๋ฐ”๋ผ๋ณด๊ณ  attack()์ด๋‚˜ defend()๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ ์„ค๊ณ„๋Š” ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์ข‹๋‹ค.

interface ๋ฌด๊ธฐ {

	Integer attack();
    Integer defend();
}

๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค๋Š” attack๊ณผ defend ๋ฉ”์„œ๋“œ์˜ ์ •์˜๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ์„ ์ค‘๋ณตํ•ด์„œ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.


public class ์ด implements ๋ฌด๊ธฐ {
    @Override
    public Integer attack() {
        return 10;
    }

    @Override
    public Integer defend() {
        return -10;
    }
}

public class ์นผ implements ๋ฌด๊ธฐ {
    @Override
    public Integer attack() {
        return 5;
    }

    @Override
    public Integer defend() {
        return -5;
    }
}

public class ์ฃผ๋จน implements ๋ฌด๊ธฐ {
    @Override
    public Integer attack() {
        return 1;
    }

    @Override
    public Integer defend() {
        return -1;
    }
}

๋˜, ์นผ, ์ด, ์ฃผ๋จน๋ฅผ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•ด ๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด ๋ฌด๊ธฐ ๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ๋ฏธ์ง€๋ฅผ ์ฃผ๋Š” ๋™์ž‘์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.


public class ๋ƒ„๋น„ implements ๋ฌด๊ธฐ {

	@Override
    public Integer attack() {
    	return 2;
    }

	@Override
    public Integer defend() {
    	return -2;
    }
}

์ƒˆ๋กœ์šด ๋ฌด๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•ด ๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋กœ์ง์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฌด๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ข‹์•„์ง„๋‹ค.


๊ทธ ๊ฒฐ๊ณผ, ์บ๋ฆญํ„ฐ๋Š” ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ฌด๊ธฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

public class ์บ๋ฆญํ„ฐ {
    private ๋ฌด๊ธฐ ๋ฌด๊ธฐ;

    public ์บ๋ฆญํ„ฐ(๋ฌด๊ธฐ ์ดˆ๊ธฐ๋ฌด๊ธฐ) {
        this.๋ฌด๊ธฐ = ์ดˆ๊ธฐ๋ฌด๊ธฐ;
    }

    public void change๋ฌด๊ธฐ(๋ฌด๊ธฐ ์ƒˆ๋กœ์šด๋ฌด๊ธฐ) {
        this.๋ฌด๊ธฐ = ์ƒˆ๋กœ์šด๋ฌด๊ธฐ; // ๋ฌด๊ธฐ ๋ณ€๊ฒฝ
    }

    public void ๊ณต๊ฒฉ() {
        System.out.println("๊ณต๊ฒฉ๋ ฅ: " + ๋ฌด๊ธฐ.attack());
    }

    public void ๋ฐฉ์–ด() {
        System.out.println("๋ฐฉ์–ด๋ ฅ: " + ๋ฌด๊ธฐ.defend());
    }
}

public class Main {
    public static void main(String[] args) {
        ์บ๋ฆญํ„ฐ ๋‚˜ = new ์บ๋ฆญํ„ฐ(new ์ฃผ๋จน());

        ๋‚˜.๊ณต๊ฒฉ(); // ์ฃผ๋จน ๊ณต๊ฒฉ
        ๋‚˜.๋ฐฉ์–ด();

        ๋‚˜.change๋ฌด๊ธฐ(new ์นผ());
        ๋‚˜.๊ณต๊ฒฉ(); // ์นผ ๊ณต๊ฒฉ
        ๋‚˜.๋ฐฉ์–ด();

        ๋‚˜.change๋ฌด๊ธฐ(new ์ด());
        ๋‚˜.๊ณต๊ฒฉ(); // ์ด ๊ณต๊ฒฉ
        ๋‚˜.๋ฐฉ์–ด();
    }
}

์บ๋ฆญํ„ฐ ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์— ๋ฌด๊ธฐ ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์˜ ๋ณ€์ˆ˜ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ƒ์„ฑ์ž๋‚˜ change๋ฌด๊ธฐ() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฌด๊ธฐ๋ฅผ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

'๋‚˜'๋ผ๋Š” ์บ๋ฆญํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ์ฃผ๋จน ํด๋ž˜์Šค๋ฅผ ๋ฌด๊ธฐ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ด๋•Œ ์บ๋ฆญํ„ฐ์˜ ๋ฌด๊ธฐ๋Š” ์ฃผ๋จน์ด๋ฉฐ, ๊ณต๊ฒฉ๊ณผ ๋ฐฉ์–ด๋ฅผ ํ•  ๊ฒฝ์šฐ ๊ฐ๊ฐ 1๊ณผ -1์˜ ๋ฐ๋ฏธ์ง€๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ดํ›„ ์ƒˆ๋กœ์šด ๋ฌด๊ธฐ๋กœ ์นผ์ด๋‚˜ ์ด์„ ์„ ํƒํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฌด๊ธฐ ํด๋ž˜์Šค ๋‚ด ๋ฉ”์„œ๋“œ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ๋ฏธ์ง€๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

์ฆ‰, ๋ฌด๊ธฐ์˜ ์‹ค์ œ ๊ตฌํ˜„์ฒด๊ฐ€ ๋ฌด์—‡์ด๋ƒ์— ๋”ฐ๋ผ attack()๊ณผ defend() ๋ฉ”์„œ๋“œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

์ด๋Š” ์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ ๊ฐœ๋…์„ ํ™œ์šฉํ•œ ๊ฒƒ์œผ๋กœ, ๋ฌด๊ธฐ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์‹ค์ œ๋กœ ์–ด๋–ค ๋ฌด๊ธฐ ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉ๋˜๋˜์ง€ ์œ ์—ฐํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋ฐ”์˜ ๋‹คํ˜•์„ฑ
๊ฐ™์€ ์ž๋ฃŒํ˜•์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ž…ํ•ด ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ
์ฆ‰, ํด๋ž˜์Šค๊ฐ€ ์ƒ์† ๊ด€๊ณ„์— ์žˆ์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ๋‹ค์ฑ„๋กœ์šด ์„ฑ์งˆ์ด๋‹ค.
๋Œ€ํ‘œ์ ์œผ๋กœ ์˜ค๋ฒ„๋กœ๋”ฉ, ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์—…์บ์ŠคํŒ…, ๋‹ค์šด์บ์ŠคํŒ…, ์ธํ„ฐํŽ˜์ด์Šค, ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ถ”์ƒํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค.

๋˜, ํ•ด๋‹น ๊ตฌ์กฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ค‘ ์ „๋žต ํŒจํ„ด์„ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ „๋žต ํŒจํ„ด
์‹คํ–‰(๋Ÿฐํƒ€์ž„) ์ค‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ „๋žต์„ ์„ ํƒํ•ด ๊ฐ์ฒด ๋™์ž‘์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€Œ๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ–‰์œ„ ๋””์ž์ธ ํŒจํ„ด


์žฅ์ 

  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์‹œ ์ผ๊ด€๋˜๊ณ  ์ •ํ˜•ํ™”๋œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ‘œ์ค€ํ™” ๊ฐ€๋Šฅ
  • ํด๋ž˜์Šค ์ž‘์„ฑ๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์„ ๋™์‹œ์— ์ง„ํ–‰ํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋‹จ์ถ•
  • ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฐ๊ฒฐํ•จ์œผ๋กœ์จ ํด๋ž˜์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ

์ฐธ๊ณ -์ธํ„ฐํŽ˜์ด์Šค
์ฐธ๊ณ -์ธํ„ฐํŽ˜์ด์Šค ์˜๋ฏธ
์ฐธ๊ณ -๋‹คํ˜•์„ฑ
์ฐธ๊ณ -์ „๋žต ํŒจํ„ด

profile
๐Ÿ€ ูฉ(หŠแ—œห‹*)ูˆ ๐Ÿ€

0๊ฐœ์˜ ๋Œ“๊ธ€