F.R.I.D.A.Y.

.Net 프레임워크의 통합 본문

DEV/.Net

.Net 프레임워크의 통합

F.R.I.D.A.Y. 2021. 5. 27. 00:30
반응형

Microsoft가 주력으로 밀고 있는 C#을 비롯한 .Net 기반 언어를 실행하는 프레임워크


.Net Framework

 .Net Framework는 MS사에서 개발한 Windows용 프로그램 개발 및 실행 환경으로[# https://ko.wikipedia.org/wiki/%EB%8B%B7%EB%84%B7_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC] 네트워크 작업, 인터페이스 등의 작업이 포함되어있으며, 공통 언어 런타임(Common Language Runtime, CLR)이란 가상 머신[# 자바 프로그램을 실행하기 위핸 JVM 또한 가상머신의 일종이다.] 위에서 동작한다.

 

 .Net Framework는 가상 머신 역할로서 이것만 설치하면 어떤 플랫폼이더라도 .Net 기반 언어로 생성한 프로그램을 실행할 수 있게 된다. 다만, 문제는 .Net Framework가 Windows OS용으로만 개발되었다는것인데 이를 보완하기 위해 .Net Core라 불리는 리눅스 기반 .Net Framework가 새로 나타났다.

 

.Net Core

 .Net Framework의 경우, 비공개 소프트웨어[# 오픈소스의 반대로 클로즈드 소스라고도 불린다]로서, Windows OS용으로만 개발되었는데, .Net Core의 경우 리눅스 기반 OS에서 실행할 수 있도록 개발되었으며 동시에 .Net Framework와는 달리 오픈소스 소프트웨어이다. 따라서 누구라도 github를 통해 코드와 개발 구조를 확인하고 기여할 수 있다.[# 내가 기여할 수 있을까..?]

 

 .Net Core는 3.1까지 나왔으며, 19년 12월 3일자로 발표되었다. 사실, .Net Core가 .Net Framework의 리눅스 버전이라고는 하지만, 개발 된지 얼마 되지 않았기 때문에 기능이 협소했다. 때문에 Windows의 창과 같은 개념은 근래 들어 추가되었다. 즉, 과거의 .Net Core 프로그램에서는 콘솔 프로그래밍등만 원천 제공되었으며, GUI 프로그래밍을 하려면 여전히 서드파티 라이브러리를 이용했야 했다는 말이 된다.

 

MS의 친Linux 행보

 카피라이트를 지향하던 MS는 어느 순간부터[# 정확히는 3대 CEO 사티아 나델라의 취임 후부터] 친-오픈소스 행보를 보이고 있다. 그와 동시에 리눅스에 대한 부정적 여론도 중화되어, .Net Core와 같은 프레임워크가 나올 수 있었다고 본다. 이러한 친리눅스 행보에는 비단 .Net Core와 같은 프레임워크를 개발한 것 뿐만 아니라 Wine(와인)이라 불리는 프로그램[# Windows 프로그램을 리눅스에서 실행할 수 있도록 하는 프로그램]에도 MS 자체적으로 기여 했다는점, 리눅스 커널이 Windows에 포함되도록 개발하고 있다는 점에서도 볼 수 있다.

 

 사실 이러한 행동은 당연할 수밖에 없다고 보는 것이, 애플처럼 하드웨어부터 소프트웨어까지 모두 자신들이 생산해 자체적인 생태계를 구축하고 있는 회사가 아니고서야, 살아 남기 위해서는 다른 플랫폼 또한 지원하거나 스스로 만들어야한다.[# 이와 관련해 삼성이 MS와 파트너십을 맺은 것도 애플 자체적인 생태계의 시너지에 위협을 받았음이라 생각해본다.] 즉, MS는 이렇게 만들어진 .Net 시리즈를 통합해야할 이유를 충분히 찾은 것 같다.

 

.Net 5의 등장

 이미 많은 프로그래밍 언어가 다양한 플랫폼에서의 실행을 단일 소스코드로 운영할 수 있는 크로스 플랫폼을 제공한다. 때문에 MS가 주력으로 밀고 있는 C#또한 그러할 수밖에 없기 때문인지 .Net Framework와 .Net Core를 통합한 .Net 시리즈를 내놓았으니 그것이 바로 .Net 5이다.

 이 프레임워크를 기반으로 소스코드를 작성하고 빌드하면 이제 리눅스던 Windows던 프로그램을 동일한 기능을 가지도록 해 개발할 수 있게 된다.

 

 이 프레임워크가 나오는 의의라 함은 웹의 지각변동이 예상될지도 모르겠다. asp.net의 경우 .Net 기반 언어로 개발을 하기 때문에 필수적으로 Windows OS로 개발/서비스 해야했다. 그러나 .Net 5가 리눅스에서도 실행이 가능하도록 만들어진 프레임워크인 만큼, asp.net를 사용하는 대규모 서비스가 점차 생겨날 수도 있지 않을까 하는 고민을 해본다.

 

 심지어 ARM용으로 개발할 때도 ARM 에뮬레이터를 거치지 않고 즉각 ARM용 코드로 변환하기 때문에 속도 저하가 발생하지 않는다고. Mac에선 이제 ARM으로 전환 했는데 Windows도 이젠 ARM에서도 속도 저하 없이 호환성 100% 보장돼서 CPU 생태계 확장 좀 했으면 좋겠다.

더보기

# 이름의 지정 사유

 .Net Framework는 아마 4.8 버전까지 나온 것으로 아는데, 버전이 5로 바로 넘어간 것은 .Net Framework 시리즈와의 혼동을 줄임과 동시에 이를 초월했다는 의미에서 넘버링을 5로 정했다고 알려져 있다.

 


 결국 이러나 저러나 C#을 배워야 한다는 말이 되는데.. 언제 배우지..

 

참고

https://slaner.tistory.com/192

# index

728x90
반응형

'DEV > .Net' 카테고리의 다른 글

C# - 문자열  (0) 2021.05.27
C# - 변수 선언  (0) 2021.05.27
XdobeFixGUI v3.0  (1) 2019.08.12
[개발일기] 결과를 뭐로 보여줄지 모르겠네  (0) 2019.06.19
OwnerDraw 어렵다아...  (1) 2019.06.18
Comments