Study/CleanCode

[Study][CleanCode - 2] 6. ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ

youn12 2022. 7. 14. 17:07
๐Ÿ“‹ ๋ชฉ์ฐจ.

6. ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ
    .์ž๋ฃŒ ์ถ”์ƒํ™”
    .์ž๋ฃŒ/๊ฐ์ฒด ๋น„๋Œ€์นญ

    .๋””๋ฏธํ„ฐ ๋ฒ•์น™
    .์ง‘์ค‘ ๊ตฌ์กฐ
    .์ž๋ฃŒ ์ „๋‹ฌ ๊ฐ์ฒด
    .ํ™œ์„ฑ ๋ ˆ์ฝ”๋“œ
    .๊ฒฐ๋ก 

โœ”๏ธ ๋‚ด์šฉ.

 

6. ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ

 

 

 ๋ณ€์ˆ˜๋ฅผ ๋น„๊ณต๊ฐœ(private)๋กœ ์ •์˜ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค. ๋‚จ๋“ค์ด ๋ณ€์ˆ˜์— ์˜์กดํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์กฐํšŒ(get) , ์„ค์ •(set) ํ•จ์ˆ˜๋ฅผ ๋‹น์—ฐํ•˜๊ฒŒ ๊ณต๊ฐœ(public)ํ•ด ๋น„๊ณต๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœํ• ๊นŒ?

 


.์ž๋ฃŒ ์ถ”์ƒํ™”

 

 ๋ณ€์ˆ˜ ์‚ฌ์ด์— ํ•จ์ˆ˜๋ผ๋Š” ๊ณ„์ธต์„ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ตฌํ˜„์ด ์ €์ ˆ๋กœ ๊ฐ์ถฐ์ง€์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ตฌํ˜„์„ ๊ฐ์ถ”๋ ค๋ฉด ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ์ € get/set ํ•จ์ˆ˜๋กœ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฃฌ๋‹ค๊ณ  ํด๋ž˜์Šค๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

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

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

 

// X
public class Point {
	public double x;
	public double y;
}

// O
public interface Point {
	double getX();
	double getY();
	void setCartesian(double x, double y);
	double getR();
	double getTheta();
	void setPolar(double r, double theta);
}

// X
public interface Vehicle {
	double getFuelTankCapacityInGallons();
	double getGallosOfGasoline();
}

// O
public interface Vehicle {
	double getPercentFueRemaining();
}

 


 

.์ž๋ฃŒ/๊ฐ์ฒด ๋น„๋Œ€์นญ

 

 ์œ„์˜ ๋‘ ์˜ˆ์ œ๋Š” ๊ฐ์ฒด์™€ ์ž๋ฃŒ ๊ตฌ์กฐ ์‚ฌ์ด์— ๋ฒŒ์–ด์ง„ ์ฐจ์ด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

 

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


 ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ ๋‘ ์ •์˜๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์ƒ๋ฐ˜๋œ๋‹ค.

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

๋ฐ˜๋Œ€๋กœ๋„

์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค.
๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋Š” ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค.

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


๋ชจ๋“ˆ์€ ์ž์‹ ์ด ์กฐ์ž‘ํ•˜๋Š” ๊ฐ์ฒด์˜ ์†์‚ฌ์ •์„ ๋ชฐ๋ผ์•ผ ํ•œ๋‹ค.
๋””๋ฏธํ„ฐ ๋ฒ•์น™

 

 ๊ฐ์ฒด๋Š” ์ž๋ฃŒ๋ฅผ ์ˆจ๊ธฐ๊ณ  ํ•จ์ˆ˜๋ฅผ ๊ณต๊ฐœํ•œ๋‹ค. ์ฆ‰, ๊ฐ์ฒด๋Š” ์กฐํšŒ ํ•จ์ˆ˜๋กœ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๊ณต๊ฐœํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
์ข€ ๋” ๋ช…ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋ฉด ๋””๋ฏธํ„ฐ ๋ฒ•์น™์€ "ํด๋ž˜์Šค C์˜ ๋ฉ”์„œ๋“œ f๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋งŒ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค"๋ผ๊ณ  ์ฃผ์žฅํ•œ๋‹ค.

 

  • ํด๋ž˜์Šค C
  • f ๊ฐ€ ์ƒ์„ฑํ•œ ๊ฐ์ฒด
  • f ์ธ์ˆ˜๋กœ ๋„˜์–ด์˜จ ๊ฐ์ฒด
  • C ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ์ฒด

 

class C {
	prviate A a;
	
	public void cMethod(){
		...
	}
	
	public void f(Param param){
		cMethod();				// ํด๋ž˜์Šค C ๋ฉ”์„œ๋“œ
		B b = new B(); 
		b.bMethod(); 			// f๊ฐ€ ์ƒ์„ฑํ•œ ๊ฐ์ฒด(b) ๋ฉ”์†Œ๋“œ
		param.paramMethod(); 	// ์ธ์ˆ˜๋กœ ๋„˜์–ด์˜จ ๊ฐ์ฒด(param) ๋ฉ”์†Œ๋“œ
		a.aMethod(); 			// C ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜(a)์— ์ €์žฅ๋œ ๋ฉ”์†Œ๋“œ
	
	}
}

 

 - ๊ธฐ์ฐจ ์ถฉ๋Œ

final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();

 

 ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ฐจ ์ถฉ๋Œ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ ํ•œ ์ค„๋กœ ์ด์–ด์ง„ ๊ธฐ์ฐจ๋กœ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์กฐ์žกํ•˜๋‹ค ์—ฌ๊ฒจ์ง€๋Š” ๋ฐฉ์‹์œผ๋กœ ํ”ผํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆ„๋Š” ํŽธ์ด ์ข‹๋‹ค.

 

Options opts = ctxt.getOptions();
File scratchDir = opts.getScratchDir();
final String outputDir = scratchDir.getAbsolutePath();

 

 ์œ„ ์˜ˆ์ œ๊ฐ€ ๋””๋ฏธํ„ฐ ๋ฒ•์น™์„ ์œ„๋ฐ˜ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ctxtOptionsScratchDIr์ด ๊ฐ์ฒด์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ž๋ฃŒ๊ตฌ์กฐ์ธ์ง€์— ๋‹ฌ๋ ค์žˆ๋‹ค.

 

  • ๊ฐ์ฒด์ผ ๊ฒฝ์šฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ˆจ๊ฒจ์•ผ ํ•˜๋ฏ€๋กœ ํ™•์‹คํžˆ ๋””๋ฏธํ„ฐ ๋ฒ•์น™์„ ์œ„๋ฐฐํ•œ๋‹ค.
  • ์ž๋ฃŒ ๊ตฌ์กฐ๋ผ๋ฉด ๋‹น์—ฐํžˆ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋…ธ์ถœํ•˜๋ฏ€๋กœ ๋””๋ฏธํ„ฐ ๋ฒ•์น™์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

 ์œ„ ์˜ˆ์ œ๊ฐ€ get ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ”๋žŒ์— ํ˜ผ๋ž€์„ ์ผ์œผํ‚ค๊ฒŒ ๋œ ๊ฒฝ์šฐ์ด๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ํŒ๋‹จํ•˜๊ณ  ๋””๋ฏธํ„ฐ ๋ฒ•์น™ ๊ฑฐ๋ก ์ด ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

 

final String outputDir = ctxt.options.scratchDir.absolutePath; // ์ž๋ฃŒ ๊ตฌ์กฐ

 

 ์ž๋ฃŒ ๊ตฌ์กฐ๋Š” ๋ฌด์กฐ๊ฑด ํ•จ์ˆ˜ ์—†์ด ๊ณต๊ฐœ ๋ณ€์ˆ˜๋งŒ ํฌํ•จํ•˜๊ณ  ๊ฐ์ฒด๋Š” ๋น„๊ณต๊ฐœ ๋ณ€์ˆ˜์™€ ๊ณต๊ฐœ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•œ๋‹ค๋ฉด? ๊ฐ„๋‹จํ•ด์ง„๋‹ค.
ํ•˜์ง€๋งŒ ๋‹จ์ˆœํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์—๋„ get/set์„ ์ •์˜ํ•˜๋ผ ์š”๊ตฌํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ‘œ์ค€(์˜ˆ, Bean)์ด ์กด์žฌํ•œ๋‹ค.



.์ง‘์ค‘ ๊ตฌ์กฐ

 

 

 ์•ž์„  ์–˜๊ธฐ๋“ค๋กœ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๊ฐ์ฒด๊ฐ€ ๋ฐ˜๋ฐ˜ ์„ž์ธ ์žก์ข… ๊ตฌ์กฐ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ํ•จ์ˆ˜๋Š” ๋ฌผ๋ก ์ด๊ณ  ์ž๋ฃŒ๊ตฌ์กฐ๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์–‘์ชฝ์˜ ๋‹จ์ ๋งŒ ๋ชจ์•„๋†“๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์žก์ข… ๊ตฌ์กฐ๋Š” ๋˜๋„๋ก ํ”ผํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค.


.์ž๋ฃŒ ์ „๋‹ฌ ๊ฐ์ฒด

 

 

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

 

 ์ข€ ๋” ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ๋Š” '๋นˆ Bean' ๊ตฌ์กฐ๋‹ค. 
๋นˆ์€ ๋น„๊ณต๊ฐœ(private) ๋ณ€์ˆ˜๋ฅผ get/set ํ•จ์ˆ˜๋กœ ์กฐ์ž‘ํ•œ๋‹ค. ์ผ์ข…์˜ ์‚ฌ์ด๋น„ ์บก์Šํ™”๋กœ ๋ณ„๋‹ค๋ฅธ ์ด์ต์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.


 

.ํ™œ์„ฑ ๋ ˆ์ฝ”๋“œ

 

 

 ํ™œ์„ฑ ๋ ˆ์ฝ”๋“œ๋Š” DTO์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋‹ค. ๊ณต๊ฐœ(public) ๋ณ€์ˆ˜ or ๋น„๊ณต๊ฐœ(private) ๋ณ€์ˆ˜์— get/set์ด ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ง€๋งŒ, ๋Œ€๊ฒŒ save๋‚˜ find์™€ ๊ฐ™์€ ํƒ์ƒ‰ ํ•จ์ˆ˜๋„ ์ œ๊ณตํ•œ๋‹ค. ํ™œ์„ฑ ๋ ˆ์ฝ”๋“œ๋Š” DB Table์ด๋‚˜ ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ์ž๋ฃŒ๋ฅผ ์ง์ ‘ ๋ณ€ํ™˜ํ•œ ๊ฒฐ๊ณผ์ด๋‹ค.

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



.๊ฒฐ๋ก 

 

 

  • ๊ฐ์ฒด๋Š” ๋™์ž‘์„ ๊ณต๊ฐœํ•˜๊ณ  ์ž๋ฃŒ๋ฅผ ์ˆจ๊ธด๋‹ค. ๊ธฐ์กด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ๊ฐ์ฒด ํƒ€์ž…์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋Š” ์‰ฌ์šด ๋ฐ˜๋ฉด, ๊ธฐ์กด ๊ฐ์ฒด์— ์ƒˆ ๋™์ž‘์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค.

 

  • ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ณ„๋‹ค๋ฅธ ๋™์ž‘ ์—†์ด ์ž๋ฃŒ๋ฅผ ๋…ธ์ถœํ•œ๋‹ค. ์ƒˆ ๋™์ž‘์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋Š” ์‰ฌ์šฐ๋‚˜, ๊ธฐ์กด ํ•จ์ˆ˜์— ์ƒˆ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋Š” ์–ด๋ ต๋‹ค.


์ƒˆ๋กœ์šด ์ž๋ฃŒ ํƒ€์ž… ์ถ”๊ฐ€ -> ๊ฐ์ฒด 
์ƒˆ๋กœ์šด ๋™์ž‘ ์ถ”๊ฐ€ -> ์ž๋ฃŒ๊ตฌ์กฐ

ํŽธ๊ฒฌ์„ ๊ฐ€์ž์ง€ ๋ง๊ณ  ๋ฌธ์ œ์— ์ตœ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์„ ํƒํ•˜์ž.


๐Ÿ“ ๋Š๋‚€์ .

- ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์˜ ์ ์ ˆํ•œ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
- ๋””๋ฏธํ„ฐ์˜ ๋ฒ•์น™์„ ์ค€์ˆ˜ํ•˜๋ฉด ์ข€ ๋” ๊น”๋”ํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.