C# 기초 공부

C# namespace에 아직도 {}가 되어있으시다면..?

jju_developer 2025. 1. 22. 18:46
728x90

안녕하세용 jju_developer 입니다.

 

다들 잘 지내시나요?

 

C# 개발을 하다보면 어느 코드에는 아직도 namespace로 감싸져 있는 경우가 있어서

한번 점검을 해보면 좋겠다 싶어서 글을 작성해봅니다!

C# 개발자라면 알아두셔야 할, C# namespace 선언 규칙의 변화에 대해 이야기해보려고 합니다. 

 

아직도 namespace 블록에 {}를 사용하는 분들이 계시다면, 이 글을 꼭 읽어보세요! 

변화된 C# namespace 규칙

C# 10부터 namespace 선언 방식에 큰 변화가 있었습니다.

기존에는 다음과 같이 중괄호 {}를 사용해 블록을 정의했습니다:

namespace MyNamespace
{
    class MyClass
    {
        // Class content
    }
}


C# 10부터는 파일 범위 네임스페이스(File-scoped namespace) 문법이 추가되면서 

중괄호 없이 더 간결하게 작성할 수 있게 되었습니다!!!!!

namespace MyNamespace;

class MyClass
{
    // Class content
}


이제 한 줄로 네임스페이스를 선언할 수 있어, 불필요한 들여쓰기와 코드 블록을 줄일 수 있습니다. 

 

이 변경은 특히 클래스, 인터페이스, 열거형 등이 많은 프로젝트에서 코드 가독성을 크게 향상시키겠죵?

파일 범위 네임스페이스는 C# 10에서 도입되었으며, 이는 .NET 6 이상에서 지원되니까

혹시 프로젝트를 닷넷 6이상 사용하고 계신다면 한번 적용시켜보세요~!!ㅋ

 

내 프로젝트가 지원하는지 확인하는 방법

Windows

명령 프롬프트 또는 PowerShell 열기.

프로젝트 디렉터리로 이동 후 다음 명령어 실행:

dotnet --version

출력된 버전이 6.0 이상이라면 파일 범위 네임스페이스를 사용할 수 있습니다.



또는, Visual Studio에서 프로젝트의 csproj 파일을 열고 TargetFramework 속성을 확인하세요:

<TargetFramework>net6.0</TargetFramework>

 

MAC OS

터미널 열기.

프로젝트 디렉터리로 이동 후 다음 명령어 실행:

dotnet --version


출력된 버전이 6.0 이상인지 확인하세요.

마찬가지로 csproj 파일에서 TargetFramework를 확인할 수도 있습니다.



이 문법을 왜 써야 할까요?

 

단순하게 코드의 들여쓰기 레벨이 줄어들어 가독성이 좋아집니다.

일관성도 있어지고, 같은 파일 내 여러 네임스페이스를 선언할 때 코드 정리가 더 쉬워집니다.

최신 트렌드 반영하는게 우선 가장 맘에 듭니다.

계속해서 최신 C# 문법을 찾아보고 사용하는 것은 개발자의 역량을 보여주는 좋은 방법이라고

생각했습니당!

 

예시로 보는 차이점

// 기존 방식

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, world!");
        }
    }
}

VS

// 파일 범위 네임스페이스 방식

namespace MyApp;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, world!");
    }
}



어느 쪽이 더 깔끔해 보이나요? 😄


마무리~

C# 은 공부 하면 할수록 재밌고 참고 자료도 정리가 잘 되어있으니

새로 프로젝트를 시작하신다면 꼭 적용해보세요~

 

그럼 다음에 또 봅시다!

 

아디오스!

728x90