목록분류 전체보기 (164)
cyphen156
이 글에서는 .NET 8과 Winforms를 사용하여 계산기와 로그인창, 숫자 맞추는 게임을 만든다. 1. 기본 개념익히기 맨처음 WindowsForms 앱 템플릿으로 프로젝트를 생성하면 다음과 같은 화면 구성을 만들 수 있다. 완벽하게 일치하는 것은 아니지만 어느정도 안드로이드 앱 만들때의 경험을 되살려서 여기에 써먹을 수 있을것 같다. Form1.cs[디자인]에서는 안드로이드 XML파일과 같이 화면 구성을 담당하는 파일이다. 도구상자에서 UI구성에 필요한 요소들을 디자인 창에 드래그 & 드롭으로 추가할 수 있다. Form1.cs파일은 디자인 파일과 연동되어 실제 화면 로직에서 여러 이벤트들이 발생했을 때 처리되는 로직들을 담당할 클래스파일이다. 추가된 요소들을 속성 창을 통해 제어하거나 직접 코드 수..
C++의 namespace와 C#의 네임스페이스 설명에 대해서 거의 비슷하게 되어 있어서 둘이 같은 역할을 하는 것 인줄 알았는데 아니었다. C++에서의 namespace는 cpp파일 또는 헤더 파일 내에서 정의된 여러 변수들, 메서드 등의 중복만을 방지하기 위한 정의였다면, C#에서의 namespace는 이 기능을 넘어선 패키징의 개념이 포함되어있었다. 그렇기 때문에 C/C++에서의 #include, 자바나 자바스크립트에서 제공하는 import라는 작업 대신 using 'namespace'를 통해 사용할 클래스 파일을 '불러오고', 변수나 메서드의 중복 또한 방지해준다. 조금 더 나아가자면 import문에서는 파일 경로를 찾아 해당 파일을 참조할 수 있는 기능이라면, using은 같은 폴더 내부의 cs..
C#또한 어쨋든 C/C++를 객체지향으로 체계한 것이기 때문에 자료형이나 문법적인 체계와 같이 큰 틀에서는 다른게 없다. C#이 C/C++와 가장 큰 차이점은 자바의 JVM에 해당하는 .NET이라는 가상환경 속에서 프로그램이 실행된다는 점, 이 가상환경에서는 메모리를 프로그래머 대신 관리해주는 GC(Garbage Collector)의 존재이다. 문법적인 차이(C++ -> C#) 클래스 인스턴스에서 포인터사용 제거(Object->data) -> new/delete를 통한 인스턴스 관리, 포인터 대신 참조 사용 요소만큼 반복하기 for(item : arr) -> for(int item in arr) Array 클래스 int arr[5] = {1, 2, 3, 4, 5}; // 배열의 길이 .Length arr..
이번에 .Net에 대해 배우기 전에 C#에 대해 정리하고 넘어갈 예정이다. 사실 나는 GC(Garbage Collector), VM(Vitual Machine) 환경을 별로 좋아하지 않는다. 오히려 싫어하는 편이다. 하지만 프로젝트 진행을 위해서 배워볼 예정이다. C#은 MicroSoft에서 C/C++를 자바와 유사한 형태로 개발한 언어이다. 유니티때 스크립팅을 통해 잠깐 해봤던 기억을 떠올리면 플랫폼에 종속되지 않는, 가상 머신위에서 돌아가는 객체지향 컴파일 언어라고 기억된다. 하지만 실제로 사용해보면 컴파일 언어와 인터프리터 언어 둘 사이의 어딘가에 있는 것과 같은 느낌을 받은 언어라고 생각한다. 이런 C#의 핵심적인 특징이라면 단언코 .Net이라는 프레임 워크라고 할 수 있다. MS는 .Net을 통..
요새 학교에서 3D 그래픽스 수업을 듣고 있다 원하던 엔진 수업은 아니고 시각디자인과의 3D모델링, 모션그래픽 관련한 수업이지만 실제로 엔진 내에서 사물의 변형이 어떻게 수행되는지, 기능 이름과 간단한 강체 물리 적용을 통해 시뮬레이션 하는 법을 배운다. 이번에 한 것은 헤드셋 모델링이다. 하루 3시간씩 모델링 만들자 라는 생각으로 시작했는데 처음에는 아무것도 모른 상태로 시작해서 첫 1주일은 그냥 쌩으로 날려먹고 친구에게 단축키와 표면 처리를 배워서 3일동안 만든 작업물이 아래의 이미지이다. 지금 확인해보니 로고를 안넣어서 추가작업이 필요할 것같다. 아직은 재질 적용하는 방법이 어려워서 내일 교수님께 수업시간에 여쭤볼 예정이다. ++하면 할수록 디자인 하는사람들이 대단하다고 느낀다. 이거 어떻게 하시는..
.NET MAUI는 뭘까? .NET MAUI는 Microsoft의 .NET 프레임워크를 확장하여 크로스 플랫폼 애플리케이션 개발을 가능하게 하는 UI 프레임워크이다. .NET은 MicroSoft에서 개발한 프로그래밍 프레임워크로, 주로 C#, F#, 그리고 Visual Basic과 같은 언어를 사용한다. IOS, Android, Windows 애플리케이션 등 다양한 종류의 플랫폼과 애플리케이션을 개발할 수 있는 환경을 제공한다. 언어 독립성: 다양한 프로그래밍 언어를 지원 플랫폼 간 호환성: Windows, Linux, macOS 등 다양한 운영 체제에서 실행될 수 있다. 라이브러리와 API의 풍부함: 웹, 모바일, 데스크톱 애플리케이션 개발을 위한 방대한 라이브러리와 API를 제공한다. 강력한 개발 도..
Vue/cli 프로젝트 보안관련 에러 해결하다가든 생각 어차피 모바일 최적화 어플리케이션인데 왜 내가 프로그레시브 웹 앱을 만드려 하고있지? 라는 의문이 들었다. 프로그래시브 웹 앱은 어찌되었든 모바일 앱 화면 위에 웹브라우저를 띄워서 화면을 연동시키는것으로 모바일 네이티브환경에 최적화 되지 않는다. 그래서 급작스럽게 크로스 플랫폼에 대한 시장을 조금 더 찾아봤고, 앱 개발 프레임워크에 대한 변경이 필요하게 되었다. 우선 React-Native 가장 큰 커뮤니티와 시장성을 가지고 있다. 하지만 지난 프로젝트 하면서 스트레스를 너무 많이 받았어서 JS언어로는 이제 진행하고 싶지 않았다. 그래서 나온 대안이 Dart언어의 Flutter와 C# 베이스의 Xamarin 최근에는 Flutter가 RN을 제치려고 ..
가끔가다가 Vue/React 같은 프로젝트를 생성하려고 npm 명령어를 치면 뜨는 보안오류다. Windows의 실행 정책 때문에 발생하는데 모바일에서 비인증 애플리케이션 설치할 때(알수없는 게시자)뜨는 경고와 같이 무시하고 설치하기 위해 보안 기준을 낮춰주면 된다. 해결 방법은 간단하다. 1. 검색 창에서 Windows PowerShell을 검색한 뒤 관리자 권한으로 실행시켜준다. 2. PowerShell 창에서 Set-ExecutionPolicy ~~~를 입력하면 된다. 그러면 실행규칙 변경에 대한 경고사항이 나오는데 Y또는 A눌러주면 된다. 그리고 나서 VS Code와 커맨드라인(CMD)터미널을 종료했다가 다시 실행시키면 정상적으로 CLI를 수행할 수 있게 된다. ++ 추가 설명 Set-Executi..