본문 바로가기
카테고리 없음

[C#]닷넷 프레임워크, 닷넷 코어, 모노, 닷넷 네이티브

by 창용이랑 2022. 5. 16.
728x90

출처 : https://zdnet.co.kr/view/?no=20151130154241

 

마이크로소프트(MS)의 개발 플랫폼이 급변하고 있다. 닷넷 프레임워크는 오픈소스 혁신으로 바뀌었고, OS X과 리눅스 지원도 윤곽을 찾아가고 있다. 비주얼스튜디오는 크로스플랫폼을 지원하는 통합개발환경이면서, 데브옵스 플랫폼으로 변모하고 있다. 닷넷은 윈도란 온실을 벗어나 야생에 내던져진 상태다. MS는 윈도 라이선스 중심의 사업전략을 버리고 있다. MS가 많은 기득권을 포기한다는 인상을 준다. 그러나 MS는 윈도 전성기보다 더 큰 제국을 꿈꾼다.

마이크로소프트 MS LOGO 로고

■닷넷, 오픈소스와 크로스플랫폼으로 혁신 가속

MS는 지난 18일(현지시간) 개발자 대상 컨퍼런스 ‘커넥트’를 열고 닷넷, 비주얼스튜디오, 애저 등의 업데이트를 발표했다.

MS 닷넷은 지난해 윈도, OS X, 리눅스 등에서 사용되는 닷넷코어와 윈도 전용인 닷넷 프레임워크로 나뉘었다. 이중 닷넷코어는 오픈소스다.

MS는 18일 OS X과 리눅스용 닷넷코어 및 ASP닷넷5 RC 버전을 발표했다. MS는 ‘고라이브(Go Live)’ 라이선스를 포함한다고 밝혔다. 이는 현업 시스템에서 사용가능하고, MS의 지원을 요청할 수 있다는 의미로 설명된다.

서버사이드웹 개발용인 ASP닷넷5는 윈도용 닷넷프레임워크와 닷넷코어 환경 모두에서 사용가능한 개발플랫폼이다.

이제 닷넷코어에 기반해 윈도, 리눅스, OS X 등에서 작동하는 애플리케이션과 서비스를 구축할 수 있다. 닷넷 애플리케이션은 이동성을 제공하므로 윈도에서 돌아가는 앱을 코드 변경없이 리눅스나 OS X 환경에서 바로 활용할 수 있다.

닷넷코어 런타임과 베이스클래스라이브러리(BCL)는 류JIT(RyuJIT) 컴파일러에서 리눅스와 OS X를 지원한다.

MS는 커넥트에서 닷넷코어를 사용해 리눅스와 OS X에서 닷넷 네이티브 코드를 컴파일하는 모습을 시연했다. 닷넷 네이티브는 클라이언트 앱을 위한 런타임으로 서버사이드인 닷넷코어와 구분된다. 닷넷 네이티브의 리눅스 및 OS X 지원 일정은 아직 확정되지 않았다.

닷넷코어에선 파일명 최대길이 260자 제한이 없어졌다. 크로스플랫폼 SQL클라이언트를 사용할 수 있다.

닷넷코어는 닷넷 프레임워크에서 핵심요소만 추려낸 변종이다. 리눅스와 OS X에서 닷넷 앱을 구동하기 위해 만들어진 오픈소스 모노와 같은 목적을 갖지만 MS에서 일정 책임을 진다는 게 다르다.

닷넷은 자바를 견제하기 위해 MS에서 2000년 내놓은 플랫폼이다. 닷넷 전용 언어인 C#은 자바에 비해 꾸준하게 업데이트됐고, 기업용 앱 개발 시장의 큰 축을 차지하게 됐다. 닷넷은 mS에게 기업 IT 고객 방어를 위한 방파제였다.

그런 MS가 닷넷의 크로스플랫폼을 선언하고, 오픈소스 버전을 만드는 모습은 이색적이다. 많은 걸 잃어버리는 선택일 수 있다.

하지만 닷넷프레임워크는 MS의 빠른 혁신을 가로막는 걸림돌이기도 하다. 윈도 런타임에 의존하므로 윈도 업데이트에 애플리케이션 호환성 우려가 항상 도사리는 탓이다.

현대 애플리케이션이 점차 빠른 시작과 성능을 요구함에 따라, SW 배포가 더 단순하고 명확해져야 한다. 닷넷의 윈도 런타임 의존은 최신 SW 개발 트렌드에 적합하지 않다.

MS는 또한, 닷넷 프레임워크를 지속적으로 모듈화 구조로 재설계해왔다. 그러나 호환성 문제에 발 묶여 대대적인 개편에 어려움을 겪어왔다. 결국 호환성 부분을 포함하게 돼 닷넷프레임워크는 더 무겁고 복잡해졌다.

오픈소스 커뮤니티 개발과 크로스플랫폼은 이 문제를 풀기 위한 해법이다. 레거시 환경을 위해 닷넷 프레임워크는 유지하고, 복잡하고 무거워진 부분을 걷어내 어느 OS에서든 작동되는 경량 버전을 오픈소스로 만드는 것이다. 닷넷을 쉽게 모듈 구조로 바꾸기 위한 포석도 된다.

닷넷코어의 초기작이 처음 사용된 게 윈도8의 윈도스토어앱이었다. 클라이언트 앱을 위한 ‘닷넷네이티브’가 사용된다. 닷넷네이티브는 윈도10에 이르러 유니버셜윈도플랫폼으로 이어지고 있다.

닷넷코어는 내년 출시될 윈도서버2016 제품에서 중요 축을 담당하게 된다. 윈도서버 커널을 잘게 쪼개 애플리케이션 컨테이너 형태로 쓸 수 있는 ‘나노서버’는 닷넷프레임워크 대신 닷넷코어를 사용하게 돼 있다.

닷넷코어는 서버 애플리케이션용이므로 GUI를 포함하지 않는다. 하지만, 오픈소스인 만큼 언제든 커뮤니티 차원에서 그래픽 요소를 개발해 추가할 수 있다.

2001년 등장한 독립 오픈소스 닷넷진영인 모노를 완전히 대체하는 건 아니다. 모노는 독자노선을 이어가지만, 오픈소스 닷넷파운데이션에 중추를 맡고 있기도 하다. 모노의 설립자인 미구엘 데 이카자는 닷넷파운데이션의 이사회 일원이며, 닷넷코어 프로젝트를 총괄하고 있다. 미구엘 데 이카자는 지난 3월 닷넷컨퍼런스에서 닷넷코어의 로슬린 컴파일러와 코어FX 라이브러리를 모노의 런타임 코어로 사용할 것이라고 밝혔었다.

결국 닷넷코어는 MS 생태계를 윈도 밖으로 더욱 확대하는 역할이다. 윈도 생태계에 갇혀 있던 닷넷 앱이 더 큰 바다로 나아갈 수 있게 된 것이다.

■비주얼스튜디오, IDE서 기업 IT 플랫폼으로 진화

새로운 닷넷을 활용하게 해주는 도구는 비주얼스튜디오다. 또 비주얼스튜디오는 닷넷보다 더 큰 차원의 생태계를 노린다.

비주얼스튜디오 최신버전은 도커 컨테이너로 바로 배포할 수 있게 됐다. 개발툴 차원에서 마이크로서비스와 모듈화 시스템에 맞게 지원하는 것이다.

이뿐 아니라 자바, 고 등의 언어 플랫폼도 품으려 하고 있다. R언어도 지원해 분석 플랫폼 후방지원도 가능해졌다. 자마린 플러그인을 통해 C#으로 안드로이드와 iOS 앱도 만들 수 있고, 코르도바 플러그인으로 HTML 앱개발도 가능하다.

코드에디터지만 IDE의 기본 기능도 제공하는 비주얼스튜디오코드는 베타 버전으로 승격됐다. 비주얼스튜디오코드는 리눅스와 OS X서도 사용가능하다.

무엇보다 비주얼스튜디오코드가 오픈소스로 전환됐다. 이와 함께 비주얼스튜디오코드에 확장(extension)을 붙일 수 있게 됐다.

비주얼스튜디오온라인은 ‘비주얼스튜디오팀서비스’로 이름을 바꿨다. 단순히 이름을 바꾼 게 아니다. 그동안 비주얼스튜디오온라인이 웹버전 비주얼스튜디오로 여겨졌던 것을 바로잡는 차원이다.

비주얼스튜디오팀서비스로 이름을 바꾸면서 개발과 운영을 밀접하게 결합한 데브옵스 플랫폼으로 성격을 강화하게 됐다. 비주얼스튜디오팀서비스에서 닷넷 빌드 시 NPM과 GULP를 사용할 수 있고, X코드 빌드도 가능해졌다. 인텔리J 플러그인을 사용할 수 있으며, 작업 기반 빌드 서비스 커스터마이징, 작업 대시보드, 코드 서치 익스텐션, 패키지관리, 릴리스 관리 등이 제공된다.

비주얼스튜디오 커뮤니티 에디션과 팀서비스, 비주얼스튜디오코드 등을 묶음으로 제공받는 비주얼스튜디오 에센셜도 공개됐다. 포럼의 지원을 받을 수 있고, 각종 훈련 서비스와 월간 애저 크레딧을 제공받을 수 있다.

비주얼스튜디오 프로페셔널과 엔터프라이즈 에디션을 월간 혹은 연간 단위로 구독료를 지불하는 요금제가 신설됐다. 비주얼스튜디오를 구독 기간 만큼 이용하면서, MSDN도 이용할 수 있다.

비주얼스튜디오 역시 확장을 거래할 수 있는 마켓플레이스를 갖게 됐다. 기존 비주얼스튜디오 갤러리를 더욱 확장한 것으로, 모든 비주얼스튜디오 에디션(엔터프라이즈, 프로페셔널, 커뮤닡, 팀서비스, 코드)을 위한 확장을 거래하는 곳이다.

MS는 차기 비주얼스튜디오 버전에서 경량으로 설치할 수 있게 되고, C#의 다음 버전을 위한 새 테마를 제공할 것이라고 예고했다. OS X에서 사용가능한 비주얼스튜디오 안드로이드 에뮬레이터도 출시할 계획이라고 밝혔다.

비주얼스튜디오는 윈도뿐 아니라 닷넷의 울타리도 벗어났다. 닷넷 개발자뿐 아니라 비MS 개발자까지 수용하겠다는 의지가 엿보인다. 개발자 외에 IT운영자, 파트너 개발사까지 묶어내려 한다.

닷넷코어 덕에 기업의 서버가 윈도 대신 리눅스여도 상관없어졌다. 개발환경도 모든 환경을 수용한다. 이제 다양한 유형의 개발자가, 또 다양한 경험을 가진 운영자가 비주얼스튜디오란 거대한 호수에 모이는 것이다.

■'기, 승, 전, 애저'

닷넷, 비주얼스튜디오 등의 확장보다 더 큰 그림은 애저 클라우드다. MS는 최근 레드햇과 파트너십을 맺고 애저에서 RHEL을 정식 지원한다고 발표했다. 닷넷코어를 RHEL에서 원활히 작동시키고, 제이보스와 호환도 가능하게 한다.

비주얼스튜디오팀서비스는 당연히 애저에 기반한다. 비주얼스튜디오의 애저 통합도 긴밀하게 이뤄지고 있다. MS가 닷넷과 비주얼스튜디오 생태계로 IT종사자를 흡수하면 애저 사용자도 커진다. 사용자가 윈도를 쓰든 리눅스를 쓰든 상관없이 결국 애저를 기반으로 쓰게 한다면, 굳이 윈도 라이선스 판매에 목맬 이유가 없다.

여기에 MS 오피스365도 있다. IT인력뿐 아니라 기업 현업 종사자가 MS오피스를 쓴다. MS는 오피스 API를 공개해 각종 애플리케이션에 MS오피스를 활용하게 했다. ERP, CRM 등을 포함한 다이나믹스 제품군은 닷넷, 비주얼스튜디오, 애저, 오피스365 등과 모두 연관된다.

■당신이 누구든 MS를 쓴다

물론 아직 완전히 준비를 마친 건 아니다. 닷넷코어는 현존하는 닷넷 프레임워크 기반 애플리케이션을 수용하지 못한다. 닷넷코어가 닷넷프레임워크의 구성요소 다수를 걷어낸 것인 탓이다.

여러 닷넷 기반 라이브러리를 닷넷코어에서 쓸 수 없다. 이미 만들어진 닷넷 앱 다수는 재설계하지 않는 한 계속 닷넷 프레임워크로 써야 한다. 닷넷코어가 수용가능한 기존 생태계가 작다는 의미다.

성능도 완성단계로보기 힘들다. 엔티티프레임워크7(EF7)이 닷넷코어에서 쓸 수 있게 됐지만, MS도 EF6 기반 앱을 EF7으로 이동하는 걸 추천하지 않는다고 밝히고 있다. RC1 버전인 EF7의 성능은 EF6보다 떨어진다.

그러나 닷넷코어는 동시성(concurrency)에 최적화돼 있고, 일부 시나리오에선 닷넷 프레임워크보다 확실히 더 뛰어난 성능을 보여주기도 한다. 결론적으로 MS는 윈도보다 더 큰 제국을 꿈꾸고 있다. 윈도나 오피스 패키지 라이선스를 팔았을 때와 규모가 다르다. 모든 컴퓨터에 윈도를 깔자는 수준이 아니라, MS의 전 제품과 서비스를 세계 어느곳에든 존재하도록 하려는 노림수다.

수많은 개발자를 수용하고, IT운영자를 포섭하며, 어떤 형태의 사용자든 MS 제품에 걸치게 된다. 윈도 디바이스는 MS 생태계 중 금상첨화 정도겠다.

 

투자는 확실히 이뤄지고 있다. MS는 닷넷코어 개발에 100~200명 정도의 개발인력을 투입하고 있다고 밝혔다. 대규모로 인력을 투입하고 있다는 얘기다. MS 조직도 클라우드 서비스와 윈도 제품, 닷넷, 비주얼스튜디오 등이 한 그룹 안에서 협업하는 형태로 개편됐다.

MS는 더 큰 제국을 노리고 있다.