일상/TIL

07.25 학습내용

aihtnyc_h 2023. 7. 25. 23:30
728x90
반응형
SMALL

오늘의 회고

느낀 점 및 배운점 나아가야할 점

- 어제 깜빡하고 못 올려서 오늘 올리기!!

- 오늘은 책의 첫장을 읽으면서, 단어 하나하나 검색하다 이걸 하루에 다 하는 건 힘들 거 같아 일단 간단한게 맞나..?

- 자세한 내용은 뒤에 나온다고 했지만, 왜 C#을 사용하고 이용하는지, 어디에 쓰이는지 제대로 알게되었으며, 어떻게 발전했는지 알 수 있었다.

- 리드미 작성... 표 만들기.. 어렵습니다.. (노션에 적고 옮기면 저절로 마크 다운형식으로 작성해주지만, 그래도 직접 만들어 보고 싶어서 만들었다..!)

- 어제 공부한 수의 범위에 대해 다시 한번 다시 보고 C#에 대해 정리하는 시간을 가졌다!


C#

  • 마이크로소프트에서 만든 프로그래밍 언어
  • 컴파일과 인터프리터의 장점을 모두 갖춘 하이브리드 언어

1.1 프로그래밍 언어 알아보기

컴퓨터는 하드웨어와 소프트웨어로 구성된다.

하드웨어는 pc, 스마트폰 같은 장치를 의미

소프트웨어는 이러한 하드웨어에 설치된 운영 체제, 앱 등을 의미

소프트웨어를 만드는 행위를 프로그래밍이라 함

소프트웨어를 만드는 사람을 프로그래머라 함

  • 코드(code) : 텍스트로 된 소프트웨어를 만드는 명령 집합으로, 소스(source)라 함
  • 코딩(coding) : 프로그래밍 언어의 코드로 프로그램을 만드는 과정. 코딩은 컴퓨터 프로그래밍과 개념이 비슷!
  • 컴파일러(compiler) : 프로그램 소스 코드를 컴퓨터 등 하드웨어가 실행할 수 있는 기계 코드로 변환하는 프로그램
  • 컴파일(compile) : 컴파일러를 변환하는 과정 프로그램 소스 코드를 기계코드로 실행한다. (컴파일 언어 C, C++ 등이 해당)
  • 인터프리터(interpreter) : 따로 컴파일 과정을 거치지 않고, 소스 코드를 바로 해석해서 실행하는 것 소스 코드를 인터프리터에서 실행한다. (인터프리터 언어 자바스크립트, 파이썬, PHP 등)

1.2 C# 소개하기

마이크로소프트에서 만든 개체 지향 프로그래밍 언어

데스크톱, 웹, 모바일, 게임 프로그램 등 분야를 가리지 않고 프로그램을 작성 가능

전 세계 개발자가 오랫동안 사용하고 있는 프로그래밍 언어 중 하나

C#프로그래밍 언어

C#프로그래밍이란 ?

  • 응용 프로그램을 만드는 프로그래밍 언어
  • C# 만으로 데스크톱 프로그램 및 웹 프로그램, 모바일과 게임 프로그램 제작 가능
  • 강력하고 재사용 가능한 응용 프로그램을 쉽게 만들 수 있다.
  • MS사의 최고 엔지니어 개발자 앤더스 헤일스버그가 디자인 함
  • 6.0버전부터 작지만 개발자에게 도움을 주는 기능을 다수 추가하는 방식으로 업데이트 하고 있다.

C#프로그래밍의 특징

  • .NET(닷넷)을 위한 많은 언어 중 하나로, MS의 닷넷 플랫폼을 기반
  • 절차적 언어와 개체 지향적 언어의 특징, 그리고 함수형 프로그래밍 스타일을 제공하는 다중 패러다임 프로그래밍 언어
  • C, C++, 자바, 자바스크립트 기초 문법과 비슷
  • 자동으로 메모리 관리
  • 컴파일 기반 언어
  • C나 자바스크립트와 달리 전역함수나 변수가 없고, 모두 클래스 안에서 생성
  • 강력한 형식의 언어 (어떤식으로 강력한 형식인가?)
  • 제네릭과 LINQ의 편리한 기능을 제공함

C#의 일반적인 프로그래밍 영역

  • 데스크톱 응용 프로그램
  • 웹 응용 프로그램
  • 모바일 응용 프로그램
  • 데이터베이스 응용 프로그램
  • 게임 프로그램
  • 클라우드 프로그램
  • IoT 프로그램

C# 버전

버전 발표 특징

1.0 2002.02.13 - C#의 첫 번째 버전
  • 닷넷 프레임워크(.NET Framework) 1.0
  • 간결하고 현대화된 언어
  • 관리된 코드
  • 자동화된 가비지 컬렉션 | | 1.1 | 2003 | 비주얼 스튜디오 도구 기능 향상 | | 2.0 | 2005 | - 제네릭
  • 부분 클래스
  • 무명 메서드
  • 이터레이터(반복기)
  • null 가능 형식
  • Static 클래스 | | 3.0 | 2006 | - 암시적으로 형식화된 변수
  • 개체 이니셜라이저
  • 컬렉션 이니셜라이저
  • 무명 형식
  • 확장 메서드
  • 람다 식
  • 자동 구현 속성
  • 쿼리 식
  • 익스프레션 트리 | | 3.5 | 2007 | LINQ | | 4.0 | 2010 | - 다이나믹 바인딩
  • 명명된 또는 선택적 인수 | | 4.5 | 2012 | | | 5.0 | 2013 | - 비동기
  • 비동기 메서드 | | 6.0 | 2014 | - 문자열 보간법
  • 정적 멤버를 위한 using static 구문
  • 자동 속성 이니셜라이저
  • null 조건부 연산자
  • 식 본문 멤버
  • nameof 연산자 | | 7.0 | 2016 | - 튜플과 튜플 해체
  • 패턴 매칭
  • 숫자 구분자와 이진 리터럴
  • 로컬 함수
  • out 키워드 기능 향상 | | 8.0 | 2019 | - nullable 참조 형식
  • 비동기 스트림 |

100% 하위 호환성을 지킴!

낮은 버전에서 지원하던 기능이 높은 버전으로 올라가면서 없어진 것이 단 하나도 없다!

새로운 C# 그리고 닷넷

처음 C# 윈도 기반의 닷넷 프레임워크에서 실행 → 크로스 플랫폼을 지원하는 닷넷 코어 기반으로 제공

닷넷 프레임워크 + 닷넷 코어 ⇒ 닷넷


1.3 닷넷 생태계

  • 소프트웨어 프레임워트로, 응용 프로그램의 개발 속도를 높이는 데 도움이 되는 API 및 서비스 모음 (C#과 동일하게 1.0 버전으로 출시)
  • 닷넷 프레임워크, 닷넷 코어, 닷넷 스탠다드처럼 닷넷으로 시작하는 용어들은 모두 닷넷 생태계에 포함 됨
  • 닷넷 생태계의 모든 영역에서 사용할 수 있는 프로그래밍 언어
  • LINQ 기능으로 쉡게 프로그래밍 할 수 있기 때문에 많이 씀

닷넷(.NET)

  • 무료, 오픈 소스, 크로스 플랫폼 개발 환경
  • 런타임 엔진(여러 명령어 집합)
  • 여러 언어 제공 : C#, 비주얼 베이직, F#
  • 웹, 데스크톱, 모바일, 게임, lot, 클라우드 등 모든 영역의 개발 환경 제공

닷넷 프레임워크

  • 응용 프로그램을 만드는 또 다른 종류의 소프트웨어이다.
  • 윈도 기반 운영 체제에 설치되고, ASP.NET, Windows Forms, WPF 등 기술을 포함한다.
  • C#은 닷넷 프레임워크의 일부로 닷넷 프레임워크는 실행 환경이라고 생각하자!

닷넷 코어

  • 크로스 플랫폼을 지원하고 ASP.NET Core, Blazor, Windows Forms, WPF 등 기술을 포함한다.
  • 서로 다른 버전을 머신 하나에서 함께 실행할 수 있으며 닷넷 프레임 워크 기반보다 성능 향상에 중점을 둔다.

자마린

  • 모바일 응용프로그램을 제작할때 쓰이며, iOS, 안드로이드 기반 모바일 응용 프로그램을 C#과 XAML 기술로 만들 수 있다.

닷넷 스탠다드

  • 닷넷 프레임워크, 닷넷 코어, 자마린 영역에서 공통으로 사용할 코드를 모아 프로젝트 하나로 관리 할 수 있다. 이를 닷넷 스탠다드라고 한다.

유니티

  • 닷넷 생태계에 직접적으로 포함되지는 않지만, 유명한 게임 엔진인 유니티에서 많이 사용하는 언어 중 하나가 C# 이며,유니티 스크립트는 C# 프로그래밍 언어를 사용한다.

닷넷은 내부적으로 CLR(런타임 엔진으로 닷넷의 모든 소프트웨어를 돌리는 엔진 역할)과 FCL(닷넷 개발에 필요한 필수 라이브러리 클래스의 집합)로 구분할 수 있다!

728x90
반응형
LIST