[C#] C# 알아보기
C#이란?
2002년 Microsoft에서 개발한 객체 지향 프로그래밍 언어
Microsoft의 .NET 프레임워크에서 사용되며 Windows 애플리케이션 및 웹 애플리케이션 개발을 위해 설계됨
객체 지향?
객체 지향 프로그래밍 OOP(Object-Oriented Programming)?
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code.
프로그램을 독립적인 객체들의 집합으로 모델링하고, 객체들 간의 상호작용을 통해 프로그램을 구축하는 접근 방식.
.NET 프레임워크?
.NET 프레임워크란?
Windows 프로그램 개발 및 실행 환경(프레임워크).
여러 가지 프로그래밍 언어(C#, VB.NET, F# 등)를 사용하여 애플리케이션을 개발하고 실행할 수 있도록 지원함.
.NET 프레임워크 주요 구성 요소
1. Common Language Runtime (CLR): CLR은 .NET 애플리케이션을 실행하는 런타임 환경을 제공함. CLR은 메모리 관리, 가비지 컬렉션, 예외 처리, 스레드 관리 등의 핵심 기능을 담당함. 또한, 언어 간의 상호 운용성을 지원하여 C#과 같은 다양한 언어로 작성된 코드를 함께 실행할 수 있도록 함.
2. .NET 클래스 라이브러리: .NET 프레임워크는 다양한 기능을 제공하는 클래스 라이브러리의 집합을 포함함. 이 라이브러리는 데이터베이스 액세스, 파일 입출력, 네트워킹, 그래픽 처리, 보안 등 다양한 작업을 쉽게 처리할 수 있는 API를 제공함.
3. 언어 지원: .NET 프레임워크는 C#, VB.NET, F# 등의 다양한 프로그래밍 언어를 지원함. 각 언어는 고유한 문법과 특징을 가지고 있지만, 모두 CLR에서 실행되므로 상호 운용성을 가질 수 있음.
4. 개발 도구: .NET 프레임워크는 Visual Studio와 같은 강력한 개발 도구를 제공함. 이러한 도구는 코드 편집, 디버깅, 테스트, 배포 등 개발 프로세스를 지원하여 개발자들이 효율적으로 애플리케이션을 개발할 수 있도록 도와줌.
.NET 프레임워크를 사용하면 Windows 운영 체제에서 실행되는 다양한 유형의 애플리케이션을 개발할 수 있음. 이러한 애플리케이션은 웹 애플리케이션, 데스크톱 애플리케이션, 서버 애플리케이션, 게임 등 여러 영역에 걸쳐 다양하게 활용됨.
C#은 왜 개발되었나?
1. 간편한 사용성: C#은 자바와 유사한 문법을 가지고 있으며, C++보다 상대적으로 간단한 문법을 가지고 있음. 이로 인해 개발자들은 더 쉽게 코드를 작성하고 유지할 수 있음.
2. .NET 프레임워크와의 통합: C#은 .NET 프레임워크와 긴밀하게 통합되어 있음. .NET은 다양한 플랫폼에서 실행되는 애플리케이션을 개발할 수 있는 강력한 기능을 제공함.
C, C++ 과 비교?
1. 객체 지향 언어: C#은 객체 지향 프로그래밍 언어로 설계됨. 이는 코드를 모듈화하고 재사용성을 높일 수 있는 기능을 제공함.
2. 가비지 컬렉션: C#은 가비지 컬렉션을 사용하여 자동으로 메모리 관리를 처리함. 이는 개발자가 명시적으로 메모리를 할당하거나 해제할 필요가 없으므로 프로그램 개발과 유지보수를 간편하게 만듦.
가비지 컬렉션?
가비지 컬렉션(GC, Garbage Collection)?
프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능
실행 중인 프로그램에서 더 이상 사용되지 않는 객체(가비지)를 식별하고 메모리에서 자동으로 해제하는 프로세스.
- C#의 가비지 컬렉션은 CLR(Common Language Runtime)에서 수행됨.
- CLR은 C# 코드를 실행하는 런타임 환경으로, 가비지 컬렉션을 관리하고 실행 시점에 필요한 작업을 수행함.
-> 개발자는 메모리 누수와 같은 일반적인 메모리 관련 문제를 피하고, 프로그램 실행 중에 동적으로 할당된 객체들을 자동으로 정리할 수 있음.
3. 플랫폼 독립성: C#은 .NET 프레임워크 위에서 실행되기 때문에 여러 플랫폼에서 동작할 수 있음. 이는 애플리케이션의 이식성을 향상시키는 장점을 가지고 있음.
C#의 특징, 장점?
1. 강력한 타입 시스템: C#은 정적 타입 언어로, 변수와 메서드에 명시적인 타입을 사용함. 이를 통해 컴파일 시점에서 많은 오류를 잡아낼 수 있고, 코드의 안정성과 가독성을 높일 수 있음.
2. 풍부한 라이브러리 지원: C#은 .NET 프레임워크와 함께 제공되는 다양한 라이브러리를 활용할 수 있음. 이러한 라이브러리들은 데이터베이스 액세스, 그래픽 처리, 네트워킹 등 다양한 작업을 보다 쉽게 처리할 수 있도록 도와줌.
3. 멀티스레딩 지원: C#은 멀티스레딩을 지원하여 병렬 처리를 할 수 있음. 이를 통해 복잡한 작업을 분산시키고 성능을 향상시킬 수 있음.
C#으로 무엇을 만들 수 있나?
1. Windows 애플리케이션 개발: C#은 Windows 운영 체제에서 실행되는 응용 프로그램을 개발하기 위해 주로 사용됨. Windows Forms, WPF(Windows Presentation Foundation), UWP(Universal Windows Platform) 등의 플랫폼을 활용하여 사용자 인터페이스를 구축할 수 있음.
2. 웹 애플리케이션 개발: C#은 ASP.NET을 통해 웹 애플리케이션을 개발하는 데 사용됨. ASP.NET은 웹 페이지, 웹 서비스, 웹 API 등을 만들 수 있게 해줌.
ASP.NET?
ASP.NET?
HTML, CSS 및 JavaScript를 사용하여 유용한 웹 사이트와 웹 애플리케이션을 작성할 수 있는 무료 웹 프레임워크.
ASP.NET은 서버 측 웹 개발을 위해 사용되며, .NET 프레임워크 또는 .NET Core 위에서 실행될 수 있음.
Web API를 만들고 웹 소켓 같은 실시간 기술도 사용할 수 있음.
- 웹 애플리케이션을 만들기 위한 세 가지 프레임워크 Web Forms, ASP.NET MVC 및 ASP.NET Web Pages를 제공함.
3. 게임 개발: C#은 Unity 게임 엔진에서 스크립트 언어로 사용되며, 모바일 게임 및 컴퓨터 게임을 개발하는 데 사용될 수 있음.
4. 모바일 애플리케이션 개발: Xamarin 프레임워크를 사용하여 C#을 활용하여 Android 및 iOS 플랫폼에서 실행되는 모바일 애플리케이션을 개발할 수 있음.
https://namu.wiki/w/Microsoft%20.NET
https://coding-factory.tistory.com/132