2024-01-10 1. 방법 기존의 존재하는 container 자체의 포트를 변경하는 방법은 따로 없어 자신의 원본 컨테이너 (아래의 예제에서는 origin)을 복사하여 이미지로 만든다.(아래의 예제에서는 copy) 이후 다시 run을 통해 새로운 컨테이너 명과 포트 포워딩을 명시하고 컨테이너를 생성하여 사용하면 된다. //만약에 변경할 컨테이너가 실행중이라면 우선 멈춘다. docker stop origin docker commit origin copy docker run --name new_origin -p 80:80 -d copy 메인 이미지 출처 : 사진: Unsplash의NEOM
2024-01-09 1. 방법 open user settings를 검색하여 Preferences: Open User Settings(Json) 클릭 아래 두개의 코드 추가 "dart.previewFlutterUiGuides": true, "dart.previewFlutterUiGuidesCustomTracking": true, 아래와 같이 자식 부모 구조에 대한 하얀 점선이 생긴 걸 확인하면 완료된다. 만약에 적용이 되지 않는 다면 vscode 재접속 후 아무 Dart 파일이나 클릭해 보면 적용된 것을 확인할 수 있다. 2. 출처 https://stackoverflow.com/questions/64575310/how-i-enable-guide-lines-in-visual-studio-code-with-f..
2024-01-08 1. 방법 Preferences -> Settings 로 들어간다. word wrap 을 검색한다. 이후 Controls how lines should wrap 을 on 으로 변경한다. 메인 이미지 출처 : 사진: Unsplash의Luca Severin
2024-01-05 1. Flutter’s rendering model 일반적으로 크로스 플랫폼 언어들은 추상화된 레이어를 통해 네이티브 언어들과 소통을 하게 되는데, 이러한 추상화 과정에서 많은 부하를 가져오게 된다. 반면에 Flutter는 자체 위젯 세트를 통해 시스템 UI 위젯 라이브러리를 우회하여 이러한 추상화를 최소함으로써 부하를 줄이는 전략을 사용했다. Flutter의 시각적 요소를 그리는 Dart 코드는 렌더링을 위해 Skia(또는 향후 Impeller)를 사용하는 네이티브 코드로 컴파일된다. Flutter는 또한 자체 Skia 복사본을 엔진의 일부로 포함하므로 개발자는 휴대폰이 새로운 Android 버전으로 업데이트되지 않은 경우에도 최신 성능 개선 사항으로 업데이트를 유지할 수 있도록 앱..
2024-01-02 1. 설치 dependencies: dropdown_button2: ^2.3.8 import 'package:dropdown_button2/dropdown_button2.dart'; 2. 예제 final List items = [ 'Item1', 'Item2', 'Item3', 'Item4', ]; String? selectedValue; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: DropdownButtonHideUnderline( child: DropdownButton2( isExpanded: true, hint: Text( 'Select Item', style: TextSt..
2024-01-03 1. 구현 예제 코드 코드를 구현한 배경지식은 로그인 후 Appbar 우측 상단에 톱니모양의 아이콘이 나오면 로그아웃과 회원탈퇴 기능을 하는 드롭다운 버튼을 구현하는 것이 필요하여, PopupMenuButton 위젯을 사용하여 구현하였다. 드롭다운은 메뉴는 로그아웃/회원탈퇴 두 가지이며, 각각은 PopupMenuItem 위젯으로 wrapping 되어 있다. 유저의 tap에 따라 onSlected 되면 해당 PopupMenuItem 의 value 값 기준으로 분기를 진행하여 원하는 기능을 수행할 수 있게 된다. PopupMenuButton( onSelected: (value) async { if (value == 'signout') { await authService.signOut();..