C#/์ด๊ฒƒ์ด C#์ด๋‹ค

36. ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„ ๋ฉ”์„œ๋“œ

Rainbow๐ŸŒˆCoder 2022. 2. 22. 12:49
728x90

๋ ˆ๊ฑฐ์‹œ(์œ ์‚ฐ) ์ฝ”๋“œ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ์— ๊ฐ๋ณ„ํ•œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

์ดˆ๊ธฐ ๋ฒ„์ „์„ ์„ค๊ณ„ํ•  ๋•Œ ๋†“์นœ ๋ฉ”์†Œ๋“œ๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌด์ž‘์ • ILogger์— ์ƒˆ ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž...

interface ILogger
{
     void WriteLog(string message);
     void WriteError(string error); //์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€
}

 ๊ทธ ๊ฒฐ๊ณผ ILogger๋ฅผ ์ƒ์†ํ•˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•ด

'์ธํ„ฐํŽ˜์ด์Šค ๋ฉค๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค.'๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.

ํŒŒ์ƒํด๋ž˜์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ๊ทœ์น™์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ธฐ๋ณธ ๊ตฌํ˜„ ๋ฉ”์†Œ๋“œ๋Š” ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์š”๊ธดํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์— ์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์ธ ๊ตฌํ˜„์ฒด๋ฅผ ๊ฐ–๋„๋ก ํ•ด์„œ

๊ธฐ์กด์— ์žˆ๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ณธ ๊ตฌํ˜„ ๋ฉ”์†Œ๋“œ์˜ ์˜ˆ์ด๋‹ค.

 

interface ILogger
{
     void WriteLog(string message);
     void WriteError(string error)
     {
          WriteLogp($"Error: {error}");
     }
}

 

์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„ ๋ฉ”์†Œ๋“œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ์กฐ๋กœ ์—…์บ์ŠคํŒ…ํ–ˆ์„ ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์—

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์— ์ถ”๊ฐ€๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ์—‰๋šฑํ•˜๊ฒŒ ํ˜ธ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ๋„ ์—†๋‹ค.

 

๋‹จ..... ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ๊ธฐ๋Šฅ์€ C# 8.0 ๋ฒ„์ „ ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค!

 

 

๊ฐ์„คํ•˜๊ณ 

ํด๋ž˜์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์— ์ถ”๊ฐ€๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ์—‰๋šฑํ•˜๊ฒŒ ํ˜ธ์ถœํ•  ๊ฐ€๋Šฅ์„ฑ๋„ ์—†๋‹ค.

 

์œ„์˜ ์บก์ฒ˜์—์„œ

๋งˆ์ง€๋ง‰ ์ค„์— ์žˆ๋Š” clogger.WriteError() ํ˜ธ์ถœ์ด ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ์ผ์œผํ‚ค๋Š”๋ฐ

์ด๋Š” ConsoleLogger๊ฐ€ WriteError()๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ฆ‰, ์ธํ„ฐํŽ˜์ด์Šค์— ์„ ์–ธ๋œ ๊ธฐ๋ณธ ๊ตฌํ˜„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ฐธ์กฐ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.

 

728x90