๋ค์์คํ์ด์ค(namespace) ๋?
C#์ ๋ค์์คํ์ด์ค๋ ์ฝ๋๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ทธ๋ฃนํํ๊ณ ์ด๋ฆ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํ ๊ตฌ์กฐ์ ๋๋ค.
๋์ผํ ์ด๋ฆ์ ํด๋์ค, ์ธํฐํ์ด์ค ๋ฑ์ด ์ฌ๋ฌ ๊ณณ์ ์์ด๋ ๋ค์์คํ์ด์ค๋ฅผ ํตํด ๊ตฌ๋ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ค์์คํ์ด์ค(namespace)์ ์ญํ
- ์ฝ๋์ ๋
ผ๋ฆฌ์ ๊ทธ๋ฃนํ
- ๊ด๋ จ๋ ํด๋์ค, ์ธํฐํ์ด์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ์ ํ๋์ ๋ค์์คํ์ด์ค๋ก ๋ฌถ์ด ์ฝ๋๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํ ์ ์์ต๋๋ค.
- ์: System.Collections๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ด๋ จ ํด๋์ค๋ค์ ๊ทธ๋ฃนํ
- ํด๋์ค ์ด๋ฆ ์ถฉ๋ ๋ฐฉ์ง
- ๋์ผํ ์ด๋ฆ์ ํด๋์ค๊ฐ ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์กด์ฌํด๋ ์ถฉ๋ํ์ง ์์ต๋๋ค.
- ๋ค์์คํ์ด์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํด ์ฌ์ฉํ๋ฉด ์ค๋ณต๋ ์ด๋ฆ์ ํด๋์ค๋ฅผ ๊ตฌ๋ถ ๊ฐ๋ฅํฉ๋๋ค.
- ๊ฐ๋
์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ ํฅ์
- ํ๋ก์ ํธ๊ฐ ์ปค์ง์๋ก ํด๋์ค์ ๋ฉ์๋๊ฐ ๋ง์์ง๋๋ค. ๋ค์์คํ์ด์ค๋ก ๊ทธ๋ฃนํํ๋ฉด ํ์ํ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ฐพ๊ณ ์ ์ง๋ณด์ํ ์ ์์ต๋๋ค.
- ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ
- ๊ณตํต ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋ค์์คํ์ด์ค๋ก ๋ฌถ์ผ๋ฉด ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์ฌ์ฌ์ฉํ๊ธฐ ์ฌ์์ง๋๋ค.
๋ค์์คํ์ด์ค(namespace) ์ฌ์ฉ ์์
1. ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค ์ฌ์ฉ
C#์์ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๋ค์์คํ์ด์ค๋ System์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
using System;
namespace MyApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!"); // System.Console ์ฌ์ฉ
}
}
}
2. ์ฌ์ฉ์ ์ ์ ๋ค์์คํ์ด์ค
์ฌ์ฉ์๊ฐ ์ง์ ๋ค์์คํ์ด์ค๋ฅผ ์ ์ํด ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค.
- MathHelper ํด๋์ค๋ MyCompany.Utilities ๋ค์์คํ์ด์ค์ ์ ์๋จ.
- using ํค์๋๋ก ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ์ ธ์ ์ฝ๊ฒ ํธ์ถ.
using System;
namespace MyCompany.Utilities
{
public class MathHelper
{
public static int Add(int a, int b) => a + b;
}
}
namespace MyCompany.Application
{
using MyCompany.Utilities;
class Program
{
static void Main(string[] args)
{
int result = MathHelper.Add(3, 5);
Console.WriteLine($"Result: {result}");
}
}
}
3. ๋ค์์คํ์ด์ค ์ค์ฒฉ
์ค์ฒฉ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํด ๋ ์ธ๋ถํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
namespace MyCompany
{
namespace Utilities
{
public class Logger
{
public static void Log(string message)
{
Console.WriteLine($"[Log]: {message}");
}
}
}
}
class Program
{
static void Main()
{
MyCompany.Utilities.Logger.Log("Application started.");
}
}
4. ๋ณ์นญ(alias) ์ฌ์ฉ
๊ธด ๋ค์์คํ์ด์ค ์ด๋ฆ์ ๊ฐ๋จํ๊ฒ ๋ณ์นญ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
namespace MyCompany.Utilities
{
public class MathHelper
{
public static int Add(int a, int b) => a + b;
}
}
namespace MyCompany.Application
{
using MyMath = MyCompany.Utilities.MathHelper;
class Program
{
static void Main()
{
int result = MyMath.Add(7, 3);
Console.WriteLine($"Result: {result}");
}
}
}
5. ์ด๋ฆ ์ถฉ๋ ํด๊ฒฐ
๊ฐ์ ์ด๋ฆ์ ํด๋์ค๊ฐ ๋ค๋ฅธ ๋ค์์คํ์ด์ค์ ์์ ๋, ๋ค์์คํ์ด์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํฉ๋๋ค.
namespace LibraryA
{
public class Helper
{
public static void Display() => Console.WriteLine("Helper from LibraryA");
}
}
namespace LibraryB
{
public class Helper
{
public static void Display() => Console.WriteLine("Helper from LibraryB");
}
}
class Program
{
static void Main()
{
LibraryA.Helper.Display();
LibraryB.Helper.Display();
}
}
6. ๊ธ๋ก๋ฒ ๋ค์์คํ์ด์ค
global:: ํค์๋๋ฅผ ์ฌ์ฉํด ์ต์์ ๋ค์์คํ์ด์ค๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์กฐํ ์ ์์ต๋๋ค.
namespace MyCompany
{
class Program
{
static void Main()
{
global::System.Console.WriteLine("Hello from global namespace!");
}
}
}
C#์ ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค
- System: ํต์ฌ ํด๋์ค(์: Console, String) ํฌํจ.
- System.Collections.Generic: ์ ๋ค๋ฆญ ์ปฌ๋ ์ (์: List, Dictionary).
- System.IO: ํ์ผ ์ ์ถ๋ ฅ ๊ด๋ จ ํด๋์ค(์: Stream, File).
- System.Linq: LINQ ๊ด๋ จ ๋ฉ์๋ ๋ฐ ํ์ฅ ๋ฉ์๋.
๋ค์์คํ์ด์ค ์ค๊ณ ๋ฐฉ๋ฒ
- ํ๋ก์ ํธ์ ๊ท๋ชจ์ ๋ง๊ฒ ๋ค์์คํ์ด์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ
- ์์ ํ๋ก์ ํธ: ๋จ์ผ ๋ค์์คํ์ด์ค๋ก ๊ทธ๋ฃนํ.
- ์ค๊ฐ ๊ท๋ชจ: CompanyName.ModuleName.
- ๋๊ท๋ชจ: CompanyName.Product.Module.SubModule.
์์ :
namespace Contoso.ECommerce.OrderProcessing
{
public class Order
{
public int OrderId { get; set; }
public string CustomerName { get; set; }
}
}
๋ค์์คํ์ด์ค์ ์ด์ ๋ธ๋ฆฌ
- ๋ค์์คํ์ด์ค๋ ์ฝ๋ ๊ทธ๋ฃนํ ๋จ์์ด๊ณ , ์ด์ ๋ธ๋ฆฌ๋ ์ฝ๋ ๋ฐฐํฌ ๋จ์์ ๋๋ค.
- ํ๋์ ๋ค์์คํ์ด์ค๊ฐ ์ฌ๋ฌ ์ด์ ๋ธ๋ฆฌ์ ๊ฑธ์ณ ์์ ์ ์์.
- ์: System ๋ค์์คํ์ด์ค๋ mscorlib.dll, System.dll ๋ฑ์์ ์ ๊ณต.
๋ค์์คํ์ด์ค์ ์ฅ๋จ์
์ฅ์ :
- ์ด๋ฆ ์ถฉ๋ ๋ฐฉ์ง
- ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ ์ฆ๊ฐ
- ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๋ชจ๋ํ์ ํ์ ์ฉ์ด
๋จ์
- ๊ณผ๋ํ ๋ค์์คํ์ด์ค ๋ถ๋ฆฌ ์ ๋ณต์ก๋ ์ฆ๊ฐ
- ๋ค์์คํ์ด์ค ์ค๋ณต ์ ๊ด๋ฆฌ ์ด๋ ค์
'๐ Development > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C# .net] Windows ์๊ฒฉ ์ฆ๋ช ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ (0) | 2024.12.11 |
---|---|
[C#] GDI+ (Graphics Device Interface Plus) ๋? (1) | 2024.11.19 |
C#๊ณผ .NET์ผ๋ก ์น์บ ์ดฌ์ ๋ฐ ์ ์ฅ ์์ (3) | 2024.11.12 |
C#๊ณผ .NET ๊ด๊ณ, ์ฝ๊ฒ ์ดํดํ๊ธฐ (2) | 2024.11.11 |