전체 글
-
C++ 포인터와 레퍼런스C++/Common 2023. 10. 3. 20:56
6일간의 연휴간 C++을 익히는 시간을 가졌습니다. 10년전에 처음 프로그래밍을 배울때 가장 어려웠던 C의 포인터 개념을 다시 한번 되새기고 남기려고 이 포스팅을 남깁니다. void 포인터 타입과 상관없이 포인터를 생성합니다. nullptr은 비어있는 포인터 변수를 만들때 넣습니다. void* pointer = nullptr; 포인터 할당 int value = 100; int* ptrValue1 = &value; 포인터는 다른 변수의 주소값을 할당해서 지정합니다. int value = 100; int* ptrValue1 = &value; int* ptrValue2 = ptrValue1; 혹은 다른 포인터를 그대로 지정하여 사용할 수 있습니다. 여기서 &value 와 같이 변수앞에 &이 붙는 경우는 변수의..
-
Blazor Server로 풀스택 웹어플리케이션 만들기(1) - Blazor Server란?.NET/WEB 2023. 9. 28. 23:43
이 시리즈에서는 블레이저 서버를 이용해서 풀스택 웹어플리케이션을 만드는 내용을 다룹니다.C# Blazor란?C#과 razor 컴포넌트를 이용해서 프론트엔드를 구성할 수 있습니다.C#에서는 ASP.NET Core라는 강력한 백엔드 프레임워크가 이미 있기 때문에, 프론트엔드와 백엔드 모두를 C#으로 작성할수 있습니다.Blazor 프로젝트 템플릿은 두가지로 나눌 수 있습니다.Blazor WebAssemblyBlazor WebAssembly는 말그대로 WebAssembly 프로젝트입니다. 브라우저에서 wasm으로 빌드 된 닷넷 런타임을 실행시키고 C#코드를 실행시키는 방식으로 구동됩니다. 따라서 Blazor Wasm도 Asp.net core 서버와 코드를 공유할수 있는 큰 장점이 있습니다.언어를 전환할 필요도 ..
-
C# 문법 Null Safety.NET/Common 2022. 9. 17. 21:52
C# NULL Safety C# 8.0에서는 다음과 같은 Nullsafety 연산자를 지원한다. NULL 대체할당 var nullstring = null; nullstring ??= "null일경우 대체할 스트링" 이 문법을 사용하면 다음과 같이 Null check하고 할당하는 코드를 단 한줄로 줄일 수 있다. if(nullstring == null) { nullstring = "null일경우 대체할 스트링"; } null safety 연산자를 해석하면 다음과 같다. A??=B ; A(좌측변수)가 널이라면 B(우측변수)를 A에 할당한다 NULL 대체 NULL값이 들어있는 변수를 대체하는 연산자는 ?? 이다. var nullstring = null; Console.WriteLine(nullstring?? ..
-
showDialog 메세지창 띄우기FLUTTER/Common 2022. 9. 11. 14:47
showDialog( context: context, builder: (context) { String sDate = dateFormat.format(selectedDate); return AlertDialog( title: Text("$sDate 작성"), content: TextField( controller: createTextController, ), actions: [ TextButton( onPressed: () { Navigator.pop(context); }, child: Text("취소")), TextButton( onPressed: () { model.create(selectedDate, createTextController.text); createTextController.text =..
-
상태 관리 ProviderFLUTTER/Common 2022. 9. 11. 13:30
데이터들의 상태를 매번 setstate로 호출하여 가져오지 않고 상태관리 위젯으로 관리하는 것입니다. 다음과 같은 데이터가 있다고 합시다. 첫번째 페이지에서는 데이터의 전체를 두번째 페이지에서는 그룹2에 해당하는 데이터를 세번째에서는 그룹1의 데이터만을 보여준다고 가정합시다. 각 페이지별로 데이터를 갖고있다고하면 페이지 1에서 데이터 1개를 삭제한다고 했을때 그 데이터가 그룹2인지 그룹1인지 확인하여 삭제해야 합니다. 상태관리 위젯들에서는 위와같은 데이터의 상태들을 일관성있게 관리하여 한쪽의 페이지에서 데이터가 변경되면 다른 페이지에서도 변경된 데이터가 적용되도록 관리할 수 있게 도와줍니다. 사용법을 알아봅시다. 우선 provider | Flutter Package (pub.dev)에서 install방법..
-
Shared Preference 사용 시FLUTTER/이슈 처리 기록 2022. 9. 10. 18:57
윈도우 개발자 모드를 사용해야만 쓸수 있는 Plugin이 존재합니다. 스터디 중 Shared Preference를 사용해야하는 경우가 있어 사용하는데 다음과 같은 문제가 발생하였고, install은 정상적으로 되지만 sharedpreference를 사용시에는 빨간화면으로 정상적으로 앱실행이 되지 않았습니다. 해결 방법은 단순한대 나온대로 power shell terminal에 start ms-settings:developers 치면 윈도우 개발자용 설정이 보여집니다. 개발자 모드를 on에 놓고 끕니다. 그럼에도 다시 적용되지 않는 문제도 있는데 로드된 앱을 재실행 해주면됩니다.
-
CustomScrollViewFLUTTER/Common 2022. 9. 9. 00:12
Sliver를 사용하여 스크롤 효과를 만드는 스크롤뷰 입니다. import 'package:flutter/material.dart'; class CustomExample extends StatefulWidget { const CustomExample({super.key}); @override State createState() => _CustomExampleState(); } class _CustomExampleState extends State { List top = []; List bottom = [0]; @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: CustomScrollView( slive..