.NET이란? 프로그램 실행부터 AI 코딩까지, 초보자를 위한 닷넷 이해하기

“프로그램을 설치했는데 .NET이 필요하다고 나옵니다. 이게 뭔가요? 코딩을 배워야 하나요?” 컴퓨터 프로그램을 설치하다가 .NET(닷넷)이라는 이름을 본 적 있나요? 또는 AI에게 프로그램을 만들어 달라고 했더니 “.NET 프로젝트를 생성하겠습니다”라는 답을 받았을 수도 있습니다. 처음 보면 확장자처럼 생겼고, 어떤 프로그래밍 언어의 이름 같기도 합니다. 하지만 .NET은 특정 파일 확장자도, 언어 하나의 이름도 아닙니다. .NET은 Microsoft와 오픈소스 개발자들이 함께 발전시켜 온 무료·오픈소스 소프트웨어 개발 플랫폼입니다. 프로그램을 작성하고, 빌드하고, 실제로 실행하는 데 필요한 여러 도구와 기능을 제공합니다. 가령 누군가는 .NET으로 업무용 프로그램을 만들고, 다른 사람은 서버에서 작동하는 웹서비스를 만들 수 있습니다. 최종 사용자는 완성된 앱을 이용하기만 하면 되므로, .NET이라는 말을 들었다고 반드시 코딩을 배워야 하는 건 아닙니다. 이 글에서는 .NET의 뜻부터 C#과의 차이, 실행에 필요한 '런타임', 개발에 필요한 'SDK', 설치 여부 확인, 그리고 간단한 첫 프로그램까지 쉬운 말로 설명하겠습니다.

.NET이란 · 핵심 흐름.NET이란의 핵심 흐름을 네 단계로 정리한 자체 제작 개념도..NET이란 · 핵심 흐름1.NET 구성언어와 실행 환경을 구분합니다2SDK로 빌드도구가 프로젝트를 준비합니다3런타임으로 실행필요한 실행 요소를 확인합니다4버전 확인지원 상태와 설치를 살핍니다개념을 이해하기 위한 요약입니다. 실제 기능과 조건은 본문 및 공식 문서를 확인하세요.EMFLS AI · 자체 도식
자체 제작 개념도 · EMFLS AI

1. .NET은 '프로그램을 만드는 작업장'이라고 생각하세요

어떤 사람이 작은 책상을 만드는 상황을 떠올려 보겠습니다. 책상을 만들려면 설계도, 나무, 공구, 조립 과정이 필요합니다. 프로그램을 만드는 일도 비슷합니다.

  • 프로그래밍 언어: 컴퓨터가 수행할 일을 적는 규칙입니다. .NET에서는 C#이 널리 사용됩니다.
  • 라이브러리: 파일 읽기, 문자 처리, 인터넷 통신처럼 자주 필요한 기능을 미리 만들어 둔 모음입니다.
  • 개발 도구(SDK): 코드를 프로젝트로 만들고, 검사하고, 실행 가능한 프로그램으로 빌드하는 공구 상자입니다.
  • 실행 환경(런타임): 완성된 프로그램이 실제 컴퓨터에서 작동하도록 돕는 엔진입니다. .NET은 이런 요소가 협력하는 개발 플랫폼의 이름입니다. 비유를 정확히 적용하자면 C#은 설계도를 쓰는 언어, SDK는 제작 공구, 런타임은 완성된 기계가 작동하는 데 필요한 장치에 가깝습니다. 한 가지 비유로 모든 기술적 차이를 설명할 수는 없지만 처음 개념을 잡는 데는 도움이 됩니다.

2. .NET과 C#은 같은 뜻인가요?

같지 않습니다. C#(씨샵)은 프로그래밍 언어이고, .NET은 그 언어로 작성한 프로그램을 만들고 실행하는 데 쓰이는 플랫폼입니다. 예를 들어 누군가 “C#으로 .NET 앱을 만들었다”고 말하면 다음처럼 이해할 수 있습니다. C#으로 어떤 동작을 할지 작성하고 → .NET 개발 도구로 프로그램을 만들고 → 적절한 .NET 실행 환경에서 작동시킨다. .NET은 C# 외에도 F#과 Visual Basic 같은 언어를 지원합니다. 그래서 '.NET=C#만 사용하는 프로그램'이라고 생각하는 것도 정확하지 않습니다.

이름 무슨 역할일까요? 초보자용 비유
C# 프로그램의 동작을 작성하는 언어 설계도를 쓰는 말
.NET 앱 개발과 실행을 위한 플랫폼 작업장 전체
.NET SDK 프로젝트 생성·빌드 등 개발 도구 공구 상자
.NET Runtime 만들어진 앱의 실행 지원 작동 엔진
NuGet .NET 개발에 쓰이는 패키지를 관리하는 생태계 필요한 부품을 구하는 곳

표에 나온 단어를 모두 외울 필요는 없습니다. C#은 언어이고, .NET은 플랫폼이라는 점부터 기억하면 충분합니다.

3. .NET으로 어떤 프로그램을 만들 수 있나요?

.NET은 계산기 하나를 만드는 데만 쓰이지 않습니다. Microsoft 공식 설명에 따르면 다양한 유형의 애플리케이션을 개발하는 데 사용합니다. ① 회사에서 사용하는 업무 프로그램 사용자의 입력을 받고 정보를 저장하거나, 파일을 처리하는 프로그램을 만들 수 있습니다. Windows 데스크톱 UI를 구축할 때는 Windows Forms나 WPF 같은 기술이 사용되기도 합니다. ② 인터넷 서버와 웹서비스 웹사이트 뒤에서 회원정보를 처리하거나 데이터를 제공하는 서버 기능을 만들 수 있습니다. 이런 분야에서 ASP.NET Core 같은 .NET 기반 기술을 활용합니다. ③ 명령줄 프로그램 창과 버튼 없이도 파일 이름을 정리하거나 계산 결과를 출력하는 작은 도구를 만들 수 있습니다. 처음 배우는 사람은 이런 간단한 프로그램부터 시작하기 좋습니다. ④ 다양한 운영체제에서 동작하는 프로그램 현대 .NET 자체는 Windows·macOS·Linux를 지원합니다. 하지만 .NET으로 만들었다는 이유만으로 모든 개별 앱이 모든 운영체제에서 동작하는 것은 아닙니다. 예를 들어 Windows 전용 화면 기술로 만든 앱은 .NET 기반이어도 Mac에서 그대로 실행되지 않을 수 있습니다. 프로그램의 실제 호환성은 사용한 UI 기술, 라이브러리, 빌드 대상에 따라 달라집니다.

4. .NET 프로그램은 어떻게 실행될까요?

코드를 적었다고 곧바로 사람이 사용하는 프로그램이 되는 것은 아닙니다. 필요한 파일을 만들고 실행 준비를 거치는 과정이 있습니다. 대표적인 관리 코드 실행 흐름을 단순화하면 다음과 같습니다. C# 소스 코드 → 컴파일 및 빌드 → 중간 언어·메타데이터 등을 담은 결과물 → .NET 런타임 → 프로그램 실행 여기서 컴파일은 사람이 작성한 코드를 컴퓨터가 실행할 수 있도록 준비하는 작업입니다. 일반적인 .NET 빌드 결과물에는 프로그램이 사용하는 형식과 참조 정보 같은 메타데이터가 포함될 수 있습니다. 이러한 정보는 프로그램을 실행하는 데 도움을 주며, 일부 분석 도구가 구조를 조사할 때 단서가 되기도 합니다. 다만 위 흐름은 쉽게 설명하기 위한 대표 사례입니다. .NET에는 미리 기계어로 컴파일하는 Native AOT 같은 방식도 있어서 모든 앱이 정확히 같은 단계로 실행되는 것은 아닙니다. 또한 .NET 앱을 조사해서 일부 구조를 알아냈다고 개발자가 처음 작성한 원본 소스와 주석까지 그대로 복원할 수 있는 것은 아닙니다.

5. 런타임과 SDK는 왜 따로 있나요?

이 부분은 실제 사용자가 가장 많이 혼동하는 지점입니다. 런타임(Runtime)은 만들어진 .NET 프로그램을 실행할 때 필요한 구성 요소이고, SDK(Software Development Kit)는 .NET 프로그램을 직접 개발할 때 사용하는 도구 모음입니다. 가령 친구가 만든 업무용 프로그램을 받아 실행하기만 한다면, 그 프로그램이 요구하는 런타임이 필요할 수 있습니다. 반면 내가 코드를 작성하고 빌드하려면 SDK가 필요합니다.

내가 하려는 일 일반적으로 필요한 것
기존 .NET 앱 실행 해당 앱에 맞는 런타임 또는 앱에 함께 포함된 런타임
C#으로 새 .NET 앱 제작 .NET SDK
.NET 프로젝트 빌드 .NET SDK
특정 Windows 데스크톱 앱 실행 앱 요구사항에 맞는 .NET Desktop Runtime 등
서버용 .NET 웹앱 실행 해당 배포 방식과 [ASP.NET](http://ASP.NET) Core Runtime 등 요구사항 확인

모든 .NET 앱 사용자에게 SDK 설치가 필요한 것은 아닙니다. SDK에는 개발에 필요한 기능과 관련 런타임이 포함되지만, 완성된 앱을 실행하는 사람에게는 개발 도구가 불필요한 경우가 많습니다. 또한 앱이 필요한 실행 환경을 함께 담아 배포되는 자체 포함(self-contained) 방식이라면, 사용자가 그 런타임을 별도 설치하지 않아도 되는 경우가 있습니다. 그래서 설치 오류가 난다고 최신 .NET SDK부터 무작정 설치하기보다, 프로그램이 요구하는 .NET 버전과 런타임 종류를 먼저 확인해야 합니다.

6. .NET과 .NET Framework는 같은 프로그램인가요?

이름이 비슷하지만 서로 다른 .NET 제품 계열입니다. .NET Framework는 Windows 중심으로 발전한 기존 플랫폼입니다. 오래된 Windows 업무용 프로그램에서는 지금도 .NET Framework를 요구할 수 있습니다. 현대 .NET은 과거 .NET Core에서 이어진 플랫폼으로, Windows뿐 아니라 macOS와 Linux 등 여러 운영체제를 지원합니다. 중요한 점은 최신 .NET을 설치한다고 예전 .NET Framework 전용 프로그램의 모든 문제가 해결되는 것은 아니라는 것입니다. 예를 들어 어떤 오래된 프로그램이 특정 .NET Framework 버전을 요구한다면 그 프로그램의 공식 설치 안내를 따라야 합니다. '.NET'이라는 이름만 보고 아무 버전이나 설치하면 문제가 남을 수 있습니다. 앞으로 새 프로그램을 배울 때는 Microsoft 문서에 나온 제품 이름과 대상 버전을 구별해서 보세요.

7. 내 컴퓨터에 .NET이 설치되어 있는지 확인하는 법

.NET 프로그램을 사용하거나 만들고 싶다면 우선 설치 상태를 확인할 수 있습니다. 1단계 — 공식 설치 페이지 확인 Microsoft의 공식 .NET 다운로드 페이지에서 내 컴퓨터 운영체제와 CPU 종류에 맞는 설치 파일을 확인합니다. 2단계 — 터미널 또는 명령 프롬프트 열기 Windows에서는 PowerShell이나 명령 프롬프트, Mac에서는 Terminal 같은 도구를 사용할 수 있습니다. 3단계 — 설치 정보 확인하기 다음 명령은 설치 정보를 보여 줍니다.

dotnet --info

SDK가 어떤 것들이 설치되어 있는지 확인하려면 다음처럼 입력합니다.

dotnet --list-sdks

앱 실행용 런타임 목록을 확인하려면 다음 명령을 사용합니다.

dotnet --list-runtimes

결과가 나온다면 컴퓨터에서 인식되는 .NET 구성 요소를 확인할 수 있습니다. 단, SDK 버전과 런타임 버전은 서로 다를 수 있습니다. 또한 명령을 찾지 못한다는 오류가 나왔다고 반드시 완전히 미설치라고 단정하기도 어렵습니다. 설치 위치나 환경변수 문제일 가능성도 있으므로 공식 설치 안내와 비교해야 합니다. 이 명령들은 기존 파일을 수정하지 않고 설치 상태를 조회하는 용도로 소개한 것입니다. 이 글을 작성하면서 특정 Windows·Mac 컴퓨터에서 실제 출력 결과를 측정한 것은 아닙니다.

8. C#으로 가장 작은 .NET 프로그램을 만드는 예시

직접 만들고 싶다면 '.NET SDK가 설치되어 있다'는 전제에서 교육용 예제를 따라 볼 수 있습니다. 터미널을 열고 다음 명령을 입력합니다.

dotnet new console -o HelloDotnet

이 명령은 HelloDotnet이라는 폴더 안에 간단한 콘솔 프로그램 프로젝트를 만듭니다. 이어서 프로젝트 폴더로 이동합니다.

cd HelloDotnet

프로그램을 실행하려면 다음 명령을 사용합니다.

dotnet run

기본 콘솔 템플릿에는 화면에 인사말을 출력하는 코드가 들어 있습니다. 프로젝트 파일의 Program.cs를 열어 다음과 같은 형태의 간단한 출력 코드를 볼 수 있습니다.

Console.WriteLine("안녕하세요! .NET 첫 프로그램입니다.");

코드를 저장하고 dotnet run을 다시 실행하면 해당 문구를 출력하도록 구성할 수 있습니다. 이 예제의 핵심은 짧습니다. SDK가 프로젝트를 만들고, C# 코드에 할 일을 적고, .NET 도구가 빌드·실행을 돕는다는 것입니다. 참고로 실제 실행 결과는 설치된 SDK 버전, 운영체제, 프로젝트 설정에 따라 달라질 수 있습니다. 이번 글에서 코드를 직접 실행한 것은 아닙니다. 처음 시도한다면 공식 설치 안내를 확인하고 본인이 만든 빈 폴더에서 진행하세요.

9. REA가 '.NET 프로그램을 분석한다'는 말은 무슨 뜻인가요?

AI로 소프트웨어를 조사하는 글에서 '.NET 프로그램도 분석할 수 있다'는 표현을 볼 수 있습니다. 여기서 .NET은 분석 대상 앱이 사용하는 개발·실행 플랫폼을 뜻합니다. 가령 본인이 만든 오래된 .NET 업무 프로그램의 구조를 파악해야 한다고 가정해 보겠습니다. 일부 .NET 빌드 결과물에는 프로그램 구성 요소의 이름, 참조 관계, 타입 정보 같은 메타데이터가 포함될 수 있습니다. 적절한 분석 도구와 권한이 있다면 이런 정보를 통해 어떤 모듈이 있는지 조사할 단서를 얻을 수 있습니다. 하지만 다음 세 가지는 다릅니다. 첫째, 파일 안에서 구성 정보를 발견한 것. 둘째, 해당 프로그램이 실제로 어떤 일을 하는지 검증한 것. 셋째, 개발자의 원본 소스 코드를 그대로 되찾은 것. 한 단계가 확인됐다고 나머지까지 보장되는 것은 아닙니다. 네이티브 코드 변환, 최적화, 난독화, 배포 방식 등에 따라 분석 가능한 정보도 달라집니다. REA 같은 도구가 특정 .NET 앱을 지원하는지도 분석 도구의 최신 버전·운영체제·권한에 따라 확인해야 합니다. 특히 다른 회사 프로그램이나 타인의 파일을 분석할 때는 소유권, 이용약관, 저작권, 개인정보 관련 조건을 먼저 살펴야 합니다. 이 글은 분석 개념을 설명할 뿐, 허가받지 않은 프로그램을 분석하거나 보호 장치를 우회하는 방법을 안내하지 않습니다.

10. .NET은 무료인가요? 이용할 때 비용이 들까요?

.NET 플랫폼 자체는 무료이며 오픈소스입니다. 개인 공부나 상업용 프로그램 제작에 이용할 수 있습니다. 그러나 .NET으로 개발한다는 사실과 모든 관련 서비스가 무료라는 말은 다릅니다. 예를 들어 별도의 유료 개발 도구를 사용하거나, 만든 앱을 유료 클라우드 서버에 운영하거나, 유료 API를 연결하면 해당 서비스 비용이 발생할 수 있습니다. 초보자는 비용을 다음과 같이 구분하면 됩니다.

  • .NET 자체 다운로드와 학습
  • 선택한 개발 편집기나 IDE
  • 프로그램을 배포할 서버·클라우드
  • 외부 데이터·AI API 등의 부가 서비스 특정 제품의 무료 사용 조건과 가격은 언제든 달라질 수 있으므로 결제하기 전 해당 서비스의 공식 안내를 확인하세요.

11. .NET이 필요한 상황에서 기억할 체크포인트

프로그램만 실행하고 싶다면: 오류 화면에 표시된 .NET 버전과 런타임 종류부터 확인하세요. 출처가 불분명한 다운로드 사이트보다 Microsoft 공식 경로를 이용하는 편이 안전합니다. 새 앱을 만들고 싶다면: .NET SDK를 설치하고 작은 콘솔 예제로 시작하세요. 간단한 출력에 성공한 뒤 웹이나 데스크톱 화면으로 확장하는 편이 이해하기 쉽습니다. AI에게 .NET 앱을 만들어 달라고 할 때는: 운영체제, 원하는 기능, 설치 환경을 명확히 전달하고, 외부 서비스 비용과 파일 수정 권한을 확인하도록 요청하세요. 예를 들어 다음처럼 말할 수 있습니다.

Windows에서 사용할 개인용 메모 프로그램을 .NET으로 만들고 싶어요. 먼저 어떤 .NET SDK와 화면 기술이 적합한지, 설치가 필요한 프로그램이 무엇인지 설명해 주세요. 처음에는 비용이 들지 않는 최소 기능만 만들고, 실행 방법과 테스트 절차도 알려 주세요. 제 컴퓨터의 기존 파일은 허락 없이 변경하지 마세요. 이렇게 요청하면 AI가 막연히 코드를 길게 만드는 대신 필요한 환경과 검증 단계를 먼저 설명하도록 유도할 수 있습니다.

자주 묻는 질문

Q1. .NET을 설치하면 컴퓨터가 느려지나요?

설치 자체가 항상 컴퓨터를 느리게 만든다고 볼 근거는 없습니다. 저장 공간을 사용하고 프로그램을 실행할 때 메모리와 CPU 자원을 쓰지만, 실제 성능 영향은 실행 중인 앱과 환경에 달려 있습니다. 문제를 진단할 때는 앱의 실제 자원 사용량을 확인해야 합니다.

Q2. .NET과 C# 중 무엇부터 배우면 될까요?

처음 프로그램을 만든다면 C#의 기본 문법을 배우면서 .NET SDK로 아주 작은 프로그램을 실행해 보는 흐름이 좋습니다. 두 가지는 경쟁 관계가 아니라 함께 사용하는 경우가 많습니다.

Q3. Mac에서도 .NET을 사용할 수 있나요?

예. 현대 .NET의 지원 대상에는 macOS도 포함됩니다. 다만 Mac용 SDK를 설치할 수 있다는 사실과 특정 Windows 전용 앱을 실행할 수 있다는 사실은 다릅니다. 사용하려는 앱과 라이브러리의 호환성을 별도로 확인해야 합니다.

Q4. .NET Framework를 설치하라는 오류가 나오면 최신 .NET을 설치하면 되나요?

반드시 그렇지는 않습니다. .NET Framework와 현대 .NET은 다른 계열이므로 앱 제작자가 요구하는 버전과 설치 조건을 따르는 것이 정확합니다.

Q5. .NET 프로그램을 사용할 때는 무조건 인터넷 연결이 필요한가요?

아닙니다. 오프라인으로 실행할 수 있는 .NET 앱도 있습니다. 다만 로그인, 동기화, 온라인 데이터 조회 같은 기능을 가진 앱은 인터넷이 필요할 수 있습니다. 앱이 어떻게 설계됐는지에 따라 다릅니다.

Q6. .NET으로 만든 파일은 모두 .exe인가요?

그렇지 않습니다. .NET의 빌드 결과물과 배포 파일은 여러 형태가 있을 수 있으며, .dll 등의 파일도 사용됩니다. 파일 확장자만 보고 프로그램의 내부 구조나 안전성을 단정할 수는 없습니다.

결론: .NET은 언어 하나가 아니라 프로그램의 '제작·실행 기반'입니다

처음에는 낯설었던 .NET도 핵심을 정리하면 어렵지 않습니다. C#은 프로그램을 작성하는 언어, .NET은 다양한 프로그램을 만들고 실행하는 플랫폼, SDK는 개발 도구, 런타임은 실행 환경입니다. Windows용 오래된 .NET Framework 프로그램과 현대 .NET 앱을 구별하고, 프로그램이 요구하는 런타임·버전을 확인하는 것만으로도 설치 오류를 이해하는 데 도움이 됩니다. AI로 코딩을 시작한다면 큰 프로그램부터 만들기보다는 간단한 콘솔 예제로 .NET이 작동하는 과정을 익혀 보세요. .NET이 무엇인지 알고 나면 AI가 제시하는 설치 지침이나 코드를 더 정확하게 검토할 수 있습니다.

함께 읽으면 좋은 글