공부는 인프런 강의 : Do it! C# 프로그래밍 입문(메이커멘토)으로 공부했다.
C#
- 마이크로소프트에서 개발한 닷넷(.NET) 프레임워크 기반 범용 목적의 다중 패러다임 프로그래밍 언어
- 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어
범용 프로그래밍 언어
다양한 도메인의 소프트웨어를 개발하기 위해 설계된 프로그래밍 언어
포트란 같은 거는 수치계산 같은 특정 목적에서 사용되지만 C, C#, 자바 등은 개발, 데이터분석 등 여러 목적에서 사용할 수 있게 만들어진 언어이다
다중 패러다임 언어
하나 이상의 프로그래밍 스타일을 지원하는 프로그래밍 언어
C#은 명령형과 선언형을 동시에 지원한다
목적에 맞게 프로그램 스타일 적용해서 사용한다
- 명령형
절차적, 객체지향 프로그래밍 언어
- 선언형
함수형, 논리형, 데이터 흐름형 프로그래밍 언어 등
닷넷 프레임워크
웹 앱, 모바일 앱, 데스크톱 프로그램, 게임 프로그램, 사물인터넷 프로그램 등을 만들기 위한 오픈소스, 크로스 플랫폼 개발 환경
닷넷 프레임워크 vs 닷넷 코어
언어, 실행 환경, 컴파일러는 공통 Infrastructure로 사용하지만 닷넷프레임워크는 윈도우 환경에서 사용, 닷넷코어는 윈도우, 리눅스, 맥 등에서 데스크톱앱이나 웹서비스를 개발할 때, Xamarin은 모바일도..
어떤 환경에서 실행할지에 따라 플랫폼 달라진다
절차지향 프로그래밍 언어(C, 포트란 등)는 코드가 복잡해지면 문제가 발생했을 때 찾기 어려운 점이 있다
객체지향 프로그래밍 언어(C++, Java, C# 등)는 모든 사물을 객체로 표현하고 객체의 속성과 메서드의 호출로 프로그램을 작성한다
변수(절차) → 속성(=애트리뷰트, 프로퍼티, 멤버변수)
함수(절차) → 메서드
이 단어들은 절차지향과 구분하기 위해 다르게 쓰는 것이다
C#으로 만들 수 있는 것
- 윈도우 프로그램
윈도우 OS에서 동작하는 그래픽 환경의 프로그램
메모장, 그림판, 오피스 프로그램, 파일 탐색기 등
- 유니티로 만든 콘텐츠
2차원, 3차원, 증강현실(AR), 가상현실(VR), 시뮬레이션 등을 만들 수 있는 유니티(Unity) 엔진을 통해 제작된 콘텐츠
게임, 시뮬레이터 등
- 웹 애플리케이션
웹 애플리케이션 또는 웹 앱은 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어, 인터넷을 통해서 사용할 수 있는 서비스들을 모두 만들 수 있다고 생각하면 된다
동적인 웹페이지 등
- 사물인터넷 연동 장치
c#에서 제공하는 네트워크 기능을 활용해 외부 장치로부터 데이터 수집 및 분석, 그래프 등으로 가시화할 수 있는 프로그램 제작
아두이노(오픈소스 하드웨어) - 온도, 습도, 압력 등 환경 데이터 수집하고 전송할 수 있다고 한다
- 그 외
모바일 앱, 멀티미디어 처리(음성, 영상 재생)
비주얼 스튜디오(Visual Studio)
웹사이트, 웹 앱, 모바일 앱, 윈도우즈 프로그램 등을 개발할 수 있는 통합 개발 환경(IDE)
↓ 설치하는 방법 ↓
↓ 프로젝트 생성 방법 ↓
웹 IDE 사이트들
설치 없이 웹으로 코드를 작성하고 공부하고 싶다면 아래 사이트를 이용하면 좋다
가입이 필요한 사이트도 있다
마지막 사이트를 사용해서 공부할 것이다
create repl로 repl 만들어서 코드 작성하고 실행하면 된다
C# 프로그램 기본 구조
// A skeleton of a C# program
using System; //이미 있는 네임스페이스를 사용
namespace YourNamespace //만든 네임스페이스
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args) //메인 메서드
{
//Your program starts here...
Console.WriteLine("Hello world!"); //출력
}
}
}
namespace는 일종의 클래스들의 집합이다
Console은 System 네임스페이스 안의 클래스로 입력, 출력, 에러를 제어하기 위한 클래스
WriteLine은 Console 클래스의 메서드로 문자나 숫자 등을 출력하는 메서드
. 으로 메서드 호출
시작과 끝은 { } 중괄호인 것도 그렇고 자바와 거의 비슷하다
참고
- 인프런 : 메이커멘토 - Do it! C# 프로그래밍 입문
- 위키백과
- 마이크로소프트 홈페이지