닷넷 프로젝트와 패키지

닷넷과 패키지

닷넷에는 파일 관리, HTTP, 파일 압축에 이르는 모든 것을 처리하는 많은 핵심 라이브러리가 함께 제공됩니다. 타사 라이브러리로 구성된 대규모 에코시스템도 있습니다. 닷넷 패키지 관리자인 NuGet을 사용하여 핵심 라이브러리를 설치하고 애플리케이션에서 사용할 수 있습니다.

닷넷 및 해당 에코시스템은 ‘종속성’이라는 단어를 많이 사용합니다. 패키지 종속성은 타사 라이브러리입니다. 종속성은 특정 기능을 수행하며 애플리케이션에 추가될 수 있는 재사용 가능한 코드 조각입니다. 타사 라이브러리는 애플리케이션이 작동하기 위해 ‘의존’하는 항목이며, 그래서 ‘종속성’이라는 단어를 사용합니다.

타사 라이브러리는 패키지로 간주하며 리포지토리에 저장될 수 있습니다. 패키지는 관련 기능을 활용할 수 있도록 애플리케이션에 추가할 수 있는 하나 이상의 라이브러리로 구성됩니다.

패키지를 설치할지 여부

닷넷 프로젝트에 패키지가 필요할지 몇가지 고려사항입니다.

더 나은 코드 : 예를 들어 보안과 같은 작업을 처리하고 있으며 인증 및 권한 부여를 구현하려고 할때 개발자 데이터와 고객 데이터를 보호하기 위해 정확하게 수행하는 작업입니다. 많은 개발자가 사용하는 라이브러리와 표준 패턴이 있는데 이와 같은 라이브러리는 개발자에게 항상 필요할 수 있는 기능을 구현하고 문제가 발생하면 패치가 적용됩니다. 직접 만드는 대신 이러한 라이브러리를 사용하는 것이 시간도 절약하고 생산성 및 다른 개발자가 알아보기 쉽습니다. 개발을 할때 고려해야 하는 사항이 너무 많기 때문에 직접 코드를 생산하는 것보다 더 나은 선택이 될 수 있습니다.

시간을 절약 : 위에서도 말씀드린 부분인데 유틸리티 라이브러리나 UI 구성 요소 라이브러리와 같은 대부분의 항목을 직접 빌드할 수 있습니다. 하지만 시간이 걸립니다. 직접 빌드한 결과가 사용 가능한 항목과 비슷하더라도, 필요하지 않다면 이 코드를 작성하는 작업을 복제하는 데 시간을 들이지 않는 것이 좋습니다.

유지 관리 : 개발도 중요하지만 유지보수도 중요합니다. 이는 모든 라이브러리 및 앱을 유지 관리해야 하는 것과 같은 맥락인데요. 유지 관리에는 새 기능 추가 및 버그 수정이 포함됩니다. 라이브러리를 유지 관리하는 것이 개발자나 팀의 시간을 잘 활용하는 것은 아닙니다. 오픈 소스 소프트웨어 팀이 유지 관리하게 하는 것이 더 좋다는 건 누구나 아는 사실입니다.

좋은 패키지 선택

라이브러리를 설치하기 전에 라이브러리의 종속성을 검사하는 것이 좋습니다. 이러한 종속성은 패키지를 사용하도록 결정하는 요인이 될 수도, 사용하지 않을 이유가 될 수도 있습니다. 프로젝트의 종속성을 선택할 때 고려할 몇 가지 요소는 다음과 같습니다.

크기 : 너무 큰 패키지 즉, 종속성 수가 많으면 큰 메모리 공간이 생성될 수 있습니다. 대역폭이 제한되거나 다른 하드웨어 제한이 있는 경우 이 요인은 프로젝트가 느려진다던지 하는 문제가 발생할 수 있습니다.

라이선스 : 라이브러리에 부여된 라이선스가 상업적, 개인적, 교육용 등 의도한 모든 용도에 사용해도 되는지 확인이 필요합니다.

활성 유지 관리 : 꼭 필요한 패키지가 있더라도 오랫동안 업데이트되지 않거나 사용되지 않는 패키지는 결국 문제가 될 수 있습니다.

패키지를 설치하기 전에 https://www.nuget.org/packages/<package name>으로 이동하여 패키지에 대해 자세히 알아볼 수 있습니다. 이 URL을 선택하면 패키지의 상세 페이지로 이동합니다. 설치 전에 한번 방문해서 알아보는 습관이 중요합니다.

최신글

닷넷을 사용하는 프로젝트의 종류

생산성이 중요한 프로젝트

하나의 앱 모델을 기반으로 애플리케이션을 빌드하는 방법을 배운 후에는 다른 앱 모델의 경우에도 다른 앱을 빌드하는 데 배운 내용을 쉽게 적용이 가능합니다. 예를 들어 웹 애플리케이션을 빌드하는 방법을 배운 후에는 닷넷 기술을 활용하여 모바일 앱을 빌드할 수 있습니다.

지식을 재활용하면 새로운 프로그래밍 모델 또는 언어를 학습하는 데 드는 시간과 스트레스를 줄일 수 있습니다. 새로운 문제를 해결하면 회사에서 시간과 비용을 절감할 수 있습니다.

엔터프라이즈급 프로젝트

닷넷은 다양한 이유로 기업에서 널리 사용되고 있습니다. 장점으로는 에코시스템과 에저 클라우드 서비스 및 온프레미스 서버 제품을 포함한 다른 MS제품과의 통합입니다.

닷넷은 강력한 형식의 시스템이므로 느슨한 형식의 시스템에서 발생할 수 있는 많은 버그를 피할 수 있습니다. 개발자는 C#의 개체 기반 패러다임을 선택할 수 있습니다. 뿐만 아니라 해결해야 하는 문제의 종류에 적합한 언어를 사용하여 개발할 수 있습니다.

스타트업 등 소규모 프로젝트

닷넷은 고객 피드백과 원격 분석을 기반으로 언어, API, 도구의 디자인을 오랫동안 향상했기 때문에 소규모 프로젝트에도 널리 사용됩니다.

프로토타입 제작을 위해 전체 기능을 갖춘 소프트웨어를 신속하게 개발할 수 있습니다. 또한 닷넷은 저렴한 하드웨어 및 클라우드 서비스에서 실행할 수 있습니다. 다른 많이 사용되는 플랫폼에 비해 성능이 뛰어나 스타트업 비즈니스에 적합합니다.

클라우드 및 AI 프로젝트

개발자는 닷넷용 애저 SDK를 사용하여 애저 리소스를 프로비저닝하고 관리할 수 있습니다. 또는 애저 App Service 및 애저 Functions를 통해 닷넷 언어로 빌드된 애플리케이션을 호스트할 수 있습니다.

ML닷넷은 닷넷 언어용 무료 기계 학습 라이브러리입니다. 기계 학습 분석 및 예측을 위해 모델 기반 기능을 활성화합니다.

IoT 앱을 빌드

닷넷을 사용하여 IoT 디바이스 및 시나리오를 위한 IoT 앱을 빌드할 수 있습니다. IoT 앱은 일반적으로 GPIO(범용 I/O) 핀이나 직렬 포트 또는 유사한 하드웨어를 사용해야 하는 센서, 디스플레이, 입력 디바이스와 상호 작용합니다.

라즈베리 Pi 및 휴밍보드 같은 인기 있는 보드로 작업하는 데 사용할 수 있는 라이브러리가 있습니다.

최신글

닷넷을 사용하는 방법 (feat. 비쥬얼스튜디오2019)

닷넷에서의 애플리케이션 개발 워크플로를 설명해보고자 합니다.

개발환경 설정

개발자가 내리는 첫 번째 결정은 애플리케이션을 만드는 데 사용할 도구를 선택하는 것입니다. 원래 명령어 프롬프트로 개발하는 것인 워크프롤우에서 시작적인 효과를 더한 툴을 사용하여 개발이 좀더 편리하도록 환경을 설정해주는 것이 필요합니다.

비쥬얼스튜디오2019

C# 개발자라면 비쥬얼스튜디오2019를 사용하는 것이 가장 좋습니다. 비쥬얼스튜디오2019 포괄적이고 시각적인 특성으로 인해 더 많은 시간과 대역폭을 요구하고 다운로드 및 설치에 더 많은 디스크 공간이 필요합니다.

하지만 일부 초보자에게 있어 가장 쉽게 시작하는 방법입니다. 인터넷 연결 속도에 따라 설치에 15분 이상이 소요됩니다.

닷넷코어 설치

비쥬얼스튜디오2019의 비쥬얼스튜디오 설치 관리자는 워크로드의 형태로 옵션을 제공합니다. 워크로드는 함께 작동하여 특정 앱 모델을 빌드하는 프레임워크, 라이브러리, 기타 도구의 모음입니다.

새 애플리케이션을 빌드하려면 플랫폼 간 개발용 닷넷코어 워크로드를 설치해야 합니다.

플랫폼 간 개발용 닷넷코어 워크로드는 닷넷SDK를 설치합니다. 닷넷SDK에는 코드 작성을 시작하는 데 필요한 모든 라이브러리, 도구, 템플릿이 포함되어 있습니다.

프로젝트 시작

일반적으로 소프트웨어 개발 프로젝트는 일련의 요구 사항에서 시작됩니다. 이러한 요구 사항은 앱 모델 선택에 영향을 미칩니다. 선택한 앱 모델은 웹, 데스크톱 또는 모바일 애플리케이션 또는 백그라운드 프로세스일 수 있습니다.

비쥬얼스튜디오2019나 닷넷CLI를 사용할 때는 일반적으로 프로젝트 템플릿을 기반으로 새 프로젝트를 만들어서 시작합니다.

  • 템플릿 및 정의한 프로젝트 이름을 기반으로 폴더와 파일을 생성합니다.
  • 앱 모델 프레임워크에 필요한 라이브러리와 일반적으로 사용되는 라이브러리에 대한 참조를 추가합니다.
  • 애플리케이션을 실행하고 코드가 컴파일되는지를 확인할 수 있도록 작은 샘플 애플리케이션을 확인할 수 있는 필수 코드를 제공합니다.
  • 코드에 지침이 포함된 경우도 있습니다. 이러한 지침은 샘플 애플리케이션 수정 및 자체 애플리케이션 개발을 안내합니다.

비쥬얼스튜디오2019에서 새 프로젝트 대화 상자를 사용하면 설치된 템플릿 세트에서 애플리케이션 모델을 시각적으로 선택할 수 있습니다. 또는 다양한 커뮤니티 기여 내용에서 선택할 수 있습니다. 닷넷CLI에서는 명령과 플래그의 조합을 사용하여 새 프로젝트 템플릿을 선택할 수 있습니다.

최신글

닷넷 프레임워크

닷넷 프레임워크 종류와 설명

어느 프레임워크가 어느 앱 모델을 지원하는지 다음 표를 보면 알 수 있습니다. 앱 모델을 닷넷 프레임워크에 매핑합니다.

앱 모델프레임워크설명
ASP.NET Core서버 쪽 논리를 빌드하기 위한 프레임워크입니다.
ASP.NET Core MVC웹 페이지 또는 웹 API의 서버 쪽 논리를 빌드하기 위한 프레임워크입니다.
ASP.NET Core Razor Pages서버에서 생성된 HTML을 빌드하기 위한 프레임워크입니다.

클라이언트
BlazorBlazor는 ASP.NET Core의 일부입니다. 두 가지 모드를 통해 서버 쪽 코드를 실행하기 위한 통신 수단으로 소켓을 활용하여 DOM(문서 개체 모델)을 조작하거나 컴파일된 C#을 브라우저에서 실행하기 위한 WebAssembly 구현으로 활용하여 조작할 수 있습니다.
윈도우WinForms“배틀십 그레이” Windows 스타일 애플리케이션을 빌드하기 위한 프레임워크입니다.
윈도우WPF
(Windows Presentation Foundation)
다양한 폼 팩터를 따르는 동적 데스크톱 애플리케이션을 구축하는 프레임워크입니다. WPF를 사용하면 폼 요소가 다양한 애니메이션 라이브러리의 도움을 받아 움직임, 페이드, 글라이드 등 기타 효과를 수행할 수 있습니다.
모바일Xamarin.NET 개발자가 iOS 및 Android 디바이스용 앱을 빌드할 수 있습니다.
애플리케이션과 매핍되는 닷넷 프래임워크 목록

닷넷은 인기 있는 타사 및 오픈 소스 게임 개발 환경과 Unity 같은 엔진을 사용하도록 지원도 가능합니다.

최신글

닷넷 프레임워크

닷넷 프레임워크 및 라이브러리 활용

닷넷 빌드

모든 소프트웨어는 컴퓨터에서는 가장 낮은 수준에서 소프트웨어로 빌드되어 컴퓨터의 하드웨어와 직접 통신합니다. 마더보드, 프로세서, 메모리 및 하드 드라이브의 데이터 흐름을 제어하게 됩니다.

위와 같은 낮은 수준에서 닷넷과 같은 소프트웨어는 애플리케이션을 개발 및 실행하는 방법을 제공하고 애플리케이션 프레임워크와 기능 라이브러리를 통해 이전 개발 방식보다 더 적은 작업으로 풍부한 애플리케이션을 빠르게 빌드할 수 있게 도와줍니다.

닷넷 라이브러리

코드 라이브러리는 특정 용도의 기능을 단일 어셈블리로 캡슐화합니다. 닷넷의 경우 수천 개의 라이브러리를 사용할 수 있습니다. 이러한 라이브러리는 자사 또는 타사 라이브러리일 수 있으며 상용 또는 오픈 소스일 수 있습니다.

라이브러리는 애플리케이션에서 사용할 수 있는 다양한 기능을 제공합니다. 이러한 어셈블리를 참조하고 필요한 메서드를 호출합니다. 개발자는 이러한 방식으로 다른 소프트웨어 개발자의 작업을 빌드할 수 있습니다. 모든 기능을 직접 작성하고 유지 관리할 필요가 없으므로 시간과 노력을 절약할 수 있습니다.

닷넷 프레임워크

애플리케이션 프레임워크는 시작 프로젝트, 파일 템플릿, 코드 생성기, 기타 도구와 함께 몇 가지 관련 라이브러리를 결합할 수 있습니다. 이러한 리소스를 사용하여 특정 용도의 전체 애플리케이션을 빌드할 수 있습니다. 이러한 애플리케이션 프레임워크를 앱 모델이라고 합니다. 예를 들어 웹 개발, 데스크톱 개발과 모바일 개발, 게임 개발과 같은 앱 모델에 사용할 수 있는 인기 있는 닷넷 애플리케이션 프레임워크가 있습니다.

비쥬얼스튜디오

비쥬얼스튜디오 2019을 설치하여 닷넷 SDK를 직접 설치할 수 있습니다. 닷넷 SDK는 기본 클래스 라이브러리라는 포괄적인 라이브러리 및 애플리케이션 프레임워크 집합을 사전 설치합니다. 빌드하고자 하는 플랫폼 또는 앱 모델과 무관하게 프로그램의 라이브러리 코드를 사용할 수 있습니다.

다른 타사 라이브러리의 경우 개발자는 NuGet 같은 패키지 관리자를 사용하여 NuGet 갤러리 같은 패키지 리포지토리에서 코드 라이브러리를 찾아 통합합니다.

최신글

C# 코드의 작동방법

여기 한줄의 코드가 있습니다.

Console.WriteLine("Hello World!");

리터럴문자열

코드를 실행하면 Hello World! 메시지가 출력 창에 출력되었습니다. C# 코드에서 큰따옴표로 묶인 문구를 리터럴 문자열 이라고 합니다. 즉, H, e, l, l, o 등의 문자를 문자 그대로 출력으로 보내려고 했습니다. 리터럴 문자열은 쓴 그대로 화면에 출력됩니다. 프로그래밍 내에 예약어나 명령어가 아닌 있는 그대로를 프린트하는 것입니다.

메서드

WriteLine() 을 메서드 라고 합니다. 메서드 뒤에는 괄호 집합이 있으므로 항상 메서드를 쉽게 찾을 수 있습니다. 각 메서드에는 하나의 작업이 있습니다. WriteLine() 메서드의 작업은 한 줄의 데이터를 출력 창에 쓰는 것입니다. 출력된 데이터는 여는 괄호와 닫는 괄호 사이에 포함되어 입력 매개 변수로 전송됩니다. 일부 메서드는 입력 매개 변수가 필요하지만, 그렇지 않은 메서드도 있습니다.

하지만 메서드를 호출하려면 항상 메서드 이름 뒤에 괄호를 사용해야 합니다. 괄호를 ‘메서드 호출 연산자’라고 합니다.

클래스

Console 파트를 클래스 라고 합니다. 클래스는 메서드보다 큰 집합으로 모든 메서드는 하나의 클래스에 속한다고 보면 됩니다. 더 적절한 표현으로 메서드가 클래스 내부에 있습니다.

메서드에 액세스하려면 메서드가 있는 클래스를 알아야 합니다. 하나의 클래스에는 자주 사용하고 유사한 작업을 수행하는 모든 메서드을 취합하여 구성하고 있습니다. 어떤 메서드를 사용하고 싶다면 그 클래스를 임포트 해와야 합니다. 레고로 보면 바퀴 조립을 위해 바퀴 키트를 가지고 오는거라고 생각하면 됩니다.

클래스 이름 Console과 메서드 이름 WriteLine()을 구분하는 점(.)도 있습니다. 마침표(.)는 ‘멤버 액세스 연산자’입니다. 즉, 점을 통해 클래스에서 해당 메서드 중 하나로 “탐색”하는 것입니다. 레고 바퀴 키트에서 찾고자 하는 바퀴를 찾는 거라고 생각하시면 됩니다. (CTRL + F)

문장의 종결자 세미콜론

마지막으로, 세미콜론(;)은 ‘FINISH 연산자’입니다. C#에서 문 은 전체 명령입니다. 세미콜론은 명령 입력을 마쳤음을 컴파일러에 알립니다.

마치며

출력문 한줄로 기본적은 내용을 훑어봅니다. 물론 지금 알아야하는 내용은 아닙니다. 저 내용을 암기하는 건 2000페이지 백과사전을 암기하겠다는 것과 같습니다. 엉덩이로 체득하고 코딩으로 삽잘하다보면 자연히 알게되는 내용입니다.

저것들이 뭉친 것들의 집합을 알고리즘이라고나 할까요? 알고리즘 이해되면 개발 끝난거죠.

최신글

닷넷

마이크로소프트 닷넷이란?

닷넷은 애플리케이션 개발을 위한 에코시스템

에코시스템이라는 용어는 애플리케이션 개발 환경의 다중 패싯 영역과 이 환경을 둘러싼 커뮤니티를 말합니다. 결합된 여러 패싯은 닷넷에서 애플리케이션을 학습하고 빌드하는 데 투자해야 할 이유가 됩니다.

애플리케이션을 실행

개발자는 C#, F# 같은 닷넷 언어를 사용하여 소스 코드를 작성합니다. 작성하는 각 코드 줄은 프로그램이 실행되는 동안 컴퓨터에서 수행할 명령을 나타냅니다.

개발자가 코드를 실행하려면 먼저 코드를 컴파일해야 합니다. 닷넷 컴파일러는 소스 코드를 중간 언어(IL)라는 특수 언어로 변환하는 프로그램입니다. 닷넷 컴파일러는 IL 코드를 닷넷 어셈블리라는 파일에 저장합니다. “중간” 형식으로 코드를 컴파일하면 Windows나 Linux 또는 32비트나 64비트 컴퓨터 하드웨어 등 코드 실행 위치와 관계없이 동일한 코드 베이스를 사용할 수 있습니다.

닷넷 런타임 은 컴파일된 닷넷 어셈블리의 실행 환경입니다. 다시 말해서 닷넷 런타임은 호스트 운영 체제에서 실행되어 애플리케이션을 실행하고 관리합니다.

이러한 메커니즘은 처음에는 몰라도 상관없습니다. 경험을 통해 닷넷 언어, 컴파일러, 런타임의 기본 기능들은 파악이 가능해집니다.

C# 이 곧 닷넷이 아닙니다. C#은 프로그래밍 언어 구문입니다. 구문의 일부로 닷넷 코드 라이브러리 또는 어셈블리에 정의된 메서드를 참조하고 호출할 수 있습니다. 또한 닷넷  SDK와 함께 설치된 C# 컴파일러를 사용하여 C# 코드에서 어셈블리를 만듭니다. 닷넷 런타임은 닷넷 어셈블리를 실행합니다. 차이를 이해하기 시작하면 한단계 성숙된 프로그래머가 될 수 있습니다.

닷넷의 활용

MS 언어를 사용하여 애플리케이션을 개발한다면 닷넷은 무조건 사용하게 됩니다. 모든 프로그램 언어를 구동시키는 프레임워크 역할을 하는게 닷넷이거든요.

굳이 개발자가 아니어도 윈도우를 사용하는 엔드유저의 모든 컴퓨터에는 닷넷이 설치되어 있습니다. 온라인게임을 하나 구동하려고 해도 닷넷이 설치되어야하거든요. 닷넷을 모르고 MS 개발자가 될 수는 없습니다. 한글 모르는 한국인가 같다고 할까요.

최신글

프로그래밍 언어란 무엇인가?

프로그래밍 언어란

C#과 같은 프로그래밍 언어를 사용하면 컴퓨터에서 수행하려는 명령을 작성하고 실행할 수 있습니다. 프로그래밍 언어마다 구문이 다르지만, 첫 번째 프로그래밍 언어를 배운 뒤 다른 프로그래밍 언어는 쉽게 배울 수 있습니다. 프로그래밍 언어의 작업은 사람이 읽고 이해할 수 있는 방식으로 명령을 작성할 수 있도록 하는 것입니다. 프로그래밍 언어로 작성하는 명령을 “소스코드” 라고 합니다.

작성된 소스코드는 개발자만이 알 수 있는 구문입니다. 이것을 컴퓨터가 알 수 있게 하는 것이 컴파일입니다. 컴파일을 해야만 컴퓨터가 알 수 있는 형식이 되고 인식할 수 있습니다.

컴파일이란

컴파일러 라는 특수 프로그램은 컴퓨터 CPU에서 실행할 수 있는 다른 형식으로 소스 코드를 컴퓨터가 알아 볼 수 있는 형식으로 변환합니다. 개발 툴을 이용하면 버튼 1클릭으로 쉽게 컴파일 할 수 있습니다.

소스코드를 컴파일해야 하는 이유는 대부분의 프로그래밍 언어는 처음보는 사람은 암호처럼 보이겠지만 컴퓨터 조차 그렇게 본다는 것입니다. 수천 또는 수백만 개의 작은 스위치를 설정하거나 해제하여 표현되는 컴퓨터 언어로 변경하는 것이 컴파일이 기본이라고 보시면 됩니다.

가령 인간이 이해하는 코드와 컴퓨터가 이해하는 형식을 연결하는 브릿지로 생각하면 되겠습니다.

구문이란

프로그래밍 언어의 구문에는 키워드, 연산자(세미콜론 또는 괄호와 같은 특수 키보드 문자), 컴파일러에서 적용하는 기타 문법 규칙 등이 포함됩니다. 모두가 합의한 규칙대로 정해시 치기만 하면 되는 것입니다. 가령 구문을 끝낼 때는 ; 문자로 마친다든지 하는 것들이죠.

개발 툴(대표적으로 비쥬얼 스튜디오)에 코드를 입력하면 여러 단어와 기호의 색이 약간 변경되는 것을 확인할 수 있습니다. 구문 강조 표시는 C#의 구문 규칙을 따르지 않는 코드 오류를 쉽게 파악하는 데 사용할 수 있는 유용한 기능입니다. 한글에서 타자를 칠 때 맞춤법 틀리면 아래 빨간실선 생기는 것과 같습니다.

Visual Studio Code와 Visual Studio IDE같은 개발툴에서는 이런 기능과 비슷하고 훨씬 더 강력한 여러가지 옵션을 사용할 수 있습니다.

최신글

C#이 대세, C#으로 할 수 있는 것들

C#을 사용하면 다음과 같이 다양한 유형의 애플리케이션을 빌드할 수 있습니다.

  • 데이터를 캡처, 분석, 처리하는 비즈니스 애플리케이션
  • 웹 브라우저에서 액세스할 수 있는 동적 웹 애플리케이션
  • 2D 및 3D 게임
  • 금융 및 공학용 애플리케이션
  • 클라우드 기반 애플리케이션
  • 모바일 애플리케이션

프로그래밍 언어를 배우는 가장 좋은 방법은 최대한 많이 코딩을 해보는 것입니다. 인터넷에 찾아보면 수없이 많은 오픈 소스와 예제들이 많습니다. 본인에게 알맞은 툴을 설치하고 많이코딩해 볼수록, 삽질이 많아질수록 실력은 좋아집니다.

차근차근 진행하다보면 위의 애플리케이션들을 개발하는데 어느 정도 감을 찾을 수 있을 것입니다. 처음에는 무조건 삽질이지요.

관련 전공서적을 공부하거나 이론을 먼저 선행하여 기초를 탄탄히 하는 것도 중요합니다만 무조건 닥 코딩 삽질보다 빠르게 프로그래밍 언어를 배울 수는 없습니다.

기초가 탄탄하지 않아 어느 수준에서 막힌다면 그때 이론을 찾아보면 될 일!

C#이 대세가 되지 않을까

C#으로 모든 언어를 대체할 수 있습니다. 자바는 물론 C++도 가능합니다. 그 보다 쉬운 상위 언어들이야 말할 것도 없다고 봅니다.

닷넷이라는 좋은 프레임워크를 가지고 있고 웹 언어로서도 많은 퍼포먼스를 보여주고 있습니다. 응용프로그래밍 언어의 한 종류로서 게임개발이나 각종 애플리케이션 개발도 우리나라는 아니지만 해외에서는 다양하게 사용 중입니다.

자바는 서자

논외로 자바는 오라클의 자식인데 돈은 벌어서 구글에 바치고 있죠. 오라클이 자바를 인수한 순간부터 약간 혼외자의 자식의 느낌이 나는 건 어쩔 수 없죠.

오라클 입장에서야 자바가 달갑겠습니까. 그에비해 C#은 MS의 우수한 첫째아들 느낌이니 앞으로도 총망받은 언어가 될 것이란게 자명한 수순이겠지요.

딥러닝, AI, 핀테크, 블록체인 등등 자바로 개발이 가능하겠습니까?

C#의 친구 VS

C#을 개발한다면 VS이라는 툴을 모두 사용할겁니다. 물론 공짜입니다. 기가 막힌 툴이지요. 저는 전 자바개발자로써 현재는 개발업을 한동안 중단한 상태이지만 VS의 기가막힌 성능에 대해선 잘 압니다. 자바도 개발이 가능하니 ~

이런 든든한 친구가 있는 C#이 촉망받는 언어가 되지 않을 수 없습니다. 애초에 C#개발자가 될 것 그랬습니다. 선배님들의 말에 자바가 취직이 잘된다하여…

C# 공부

C#으로 다양한 것들을 할 수 있지만 저는 게임을 만들어보면 어떨가합니다. 게임을 좋아하기도 하고 이 웹사이트는 게임리뷰를 위한 공간이기도 하지만 게임 개발도 병행해보면 좋을 듯 합니다. 물론 매우 느린 속도로 업데이트 되겠지만 아는 만큼 족족 써보도록 하겠습니다.

최신글

자마린(Xamarin) 이란?

자마린은 오픈 소스 UI 프레임워크입니다. 개발자는 자마린을 사용하며 단일한 공유 코드베이스에서 안드로이드, iOS, 윈도우 애플리케이션을 빌드할 수 있습니다.

개발자는 Xamarin.Forms로 C#의 코드 숨김이 있는 XAML에서 사용자 인터페이스를 만들 수 있습니다. 이러한 인터페이스는 각 플랫폼에서 성능 네이티브 컨트롤로서 렌더링됩니다.

자마린 사용대상

자마린의 사용 대상은 다음을 목표로 하는 개발자입니다

  • .플랫폼 전반에서 UI 레이아웃과 디자인을 공유합니다.
  • 플랫폼 전반에서 코드, 테스트 및 비즈니스 논리를 공유합니다.
  • Visual Studio로 C#의 플랫폼 간 앱을 작성합니다.

자마린 작동방법

자마린은 플랫폼 전반에서 UI 요소를 만들기 위한 일관된 API를 제공합니다. 이 API는 XAML이나 C#으로 구현이 가능하며 MVVM(Model-View-ViewModel) 같은 패턴에 대한 데이터 바인딩을 지원합니다.

런타임에서 자마린은 플랫폼 렌더러를 사용하여 플랫폼 간 UI 요소를 Xamarin.Android, Xamarin.iOS, UWP의 네이티브 컨트롤로 변환합니다. 따라서 개발자는 여러 플랫폼 간에 코드를 공유하면서도 네이티브한 모양과 느낌, 성능을 얻을 수 있습니다.

자마린 애플리케이션은 일반적으로 공유된 .NET Standard 라이브러리와 개별 플랫폼 프로젝트로 구성됩니다. 공유 라이브러리에는 XAML 또는 C# 뷰와 서비스, 모델 또는 기타 코드와 같은 비즈니스 논리가 포함되어 있습니다. 플랫폼 프로젝트에는 애플리케이션에 필요한 플랫폼별 논리 또는 패키지가 포함됩니다.

자마린 플랫폼을 사용하여 플랫폼 전반에서 .NET 애플리케이션을 기본적으로 실행합니다.

라이브러리

애플리케이션에 다양한 기능을 추가하는 라이브러리의 대규모 에코시스템이 있습니다. 대표적으로 Xamarin.Essentials이 있습니다.

Xamarin.Essentials

Xamarin.Essentials는 네이티브 디바이스 기능을 대상으로 플랫폼 간 API를 제공하는 라이브러리입니다. Xamarin와 마찬가지로 Xamarin.Essentials 또한 일종의 추상화로서 네이티브 유틸리티 액세스 프로세스를 간소화합니다. Xamarin.Essentials에서 제공하는 유틸리티의 예로는 다음 몇 가지를 들 수 있습니다.

  • 디바이스 정보
  • 파일 시스템
  • 가속도계
  • 전화 걸기
  • 텍스트 음성 변환
  • 화면 잠금

최신글