백앤드/C#

[C#] 알아보기

영최 2024. 11. 20. 16:48
728x90

기존의 절차적 프로그래밍 언어(C언어)와 달리 객체지향 프로그래밍 언어(Java,Python,C++,C#)은 코드의 재사용성에 무게를 두었다.

그만큼 오늘날 프로그램의 규모가 커졌다는 것을 의미한다. 여러 사람이 같은 프로그램을 만들더라도 전체의 영향을 최소화하면서 반복적으로 작업해야할 부분과 그렇지 않은 부분을 분리해 관리하도록 만든것임


C# 프로그래밍 언어 

 

마이크로소프트에서 개발된 언어로 초기에는 자바와 비슷한 구조로 MS종속적인 환경으로 주목받지 못했지만 
.NET Core를 오픈소스로 공개해서 게임, 모바일 등 여러 플랫폼에서 응용가능해짐

장점: 사소한 실수도 컴파일오류를 띄워 에러가 적음, 가비지 컬렉터로 메모리 정리해줌
단점: 다중 상속 안됨,윈도우에서만(Core말고 프레임워크는) 개발 가능,C와 C++에 비해 속도가 느림

 


.NET 프레임워크

.NET 프레임워크는 MS에서 개발한 윈도우 프로그램 개발 및 실행 환경임.

동작원리: C#->CLI(Common Intermidiate Language,공통언어기반)->CLR(Common Language Runtime,공통 언어 런타임) 

을 통해 프로그래밍 언어와 상관없이 윈도우 플랫폼에서 동작하는 프로그램을 만들 수 있음


절차지향 vs 객체지향 차이

 

절차지향 언어인 C의 경우 시간 흐름으로 코드 작성 ex) 메인 함수 내 코드: 종이 준비-> 펜 선택->스케치-> 색칠
그러나 이렇게 개발하면 여러명이 함께 개발하는 대규모 프로그램 또는 자주 수정되는 프로그램을 만들때 복잡해지는 경향이 있음

그래서 등장한게 객체지향 프로그래밍임.

객체지향 프로그램은 모든 사물을 객체(Object)로 표현함.

객체는 속성(Property)와 메소드(Method)로 구성됨

속성은 변수, 메소드는 행위임

 

객체지향은 객체간 소통을 중시함. 즉, 메소드를 통해 객체간 데이터를 주고 받으며 서로 원하는 동작을 수행함

프로그램이 복잡해지더라도 객체단위로 수정이 용이하며,

역할을 분담했기때문에 오류발생시 문제가 있는 클래스를 중심으로 원인을 파악하면 해결이 쉬움

 


C# 웹앱 

 

C#과 ASP.NET Core, Azure(애저)를 사용해 웹앱을 만들 수 있음
ASP.NET Core: 오픈소스 웹 프레임워크로 웹페이지 개발을 위한 환경

Azure(애저): MS에서 제공하는 클라우드 서비스

클라우드 서비스는 컴퓨터의 연산과 저장장치가 원격 공간에 존재하며 사용한만큼 지불하는 서비스 

728x90