728x90

전체 글 48

[Python] MariaDB와 pymysql을 사용한 행 단위 csv 파일 저장하기

프롤로그 업무 중 구글링을 아무리 해봐도 DB 데이터를 행단위 csv 파일로 각각 저장하는 방법을 찾을 수 가 없어 직접 해결해본 끝에 작성하는 글... SQLite에 저장된 테이블 데이터를 MySQL로 가져와 Python으로 로그 시간별 행단위 csv 파일을 만들어 저장하는 과정입니다. Python, PyMySQL DBMS : SQLite(DB Browser for SQLite) DBMS : MariaDB(HeidiSQL) 1. SQLite의 테이블 데이터를 CSV로 내보내기 2. CSV 테이블 데이터를 MySQL로 가져오기 3. Python - pymysql 설치하기 윈도우키 + R을 눌러 실행창이 열리면 cmd를 입력 후 프롬포트 창에 pip install pymysql을 입력해 설치를 진행한다. ..

[Flutter] copyWith()로 위젯 속성 값 추가하기

copyWith() 함수를 사용하면 위젯의 속성 값은 그대로 사용하면서 추가하고자 하는 코드만 작성할 수 있다. copyWith() 적용 전import 'package:flutter/material.dart';void main() { runApp(const MyApp());}class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'sample', theme: ThemeData.dark(), // 기존 Theme 코드..

Flutter 2022.11.16

[Flutter] 온보딩 스크린(Onboarding Screen)

온보딩 스크린(Onboarding Screen)은 사용자가 처음으로 애플리케이션을 실행했을 때 서비스에 대한 소개 및 기능 안내를 도와주는 화면이다. main.dartimport 'package:flutter/material.dart';import 'onboarding.dart'; // onboarding.dart importvoid main() { runApp(const MyApp());}class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( home: OnBoardingPage(), // on..

Flutter 2022.11.15

[mysql] Error:1129 Host is blocked...'mysqladmin flush-hosts' 해결방법

number:1129, Message:Host '원격 호스트 PC의 외부 IP 주소'is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 원격 호스트에서 mysql로 서버에 접근 시 위의 에러로 접근이 불가능 할 경우에 대한 해결방법이다. 원인 - 원격 서버에서 mysql 서버로 단순 커넥션 한 뒤 close 하게 되면 mysql은 비정상적인 접속으로 판단해 원격 호스트에 해당하는 IP를 blocking 하게 된다. - 이 때 mysql의 비정상적 접속 요청 수를 카운트 하게 되는데 설정된 max_connect_error 값 이상으로 넘어가게 되면 자동으로 blocking 된다. - max_connect_er..

DB 2022.11.14

[Flutter] Custom Widget 사용하기

커스텀 위젯 클래스 생성- 커스텀 위젯은 클래스로 만든다.커스텀위젯 클래스 생성1. 코드 빈 공간에 stless 입력 후 StatelessWidget을 상속받는 위젯 클래스를 하나 생성한다. 2. 클래스 생성 후 클래스 명을 자신이 원하는 이름으로 변경한다. 3. 하단의 return 우측에 자신이 담고자 할 레이아웃에 대한 코드를 입력한다. 4. 결과적으로 return에 해당하는 코드를 클래스 명을 통해 호출할 수 있도록 한다. import 'package:flutter/material.dart';void main() { runApp(const MyApp());}class MyApp extends StatelessWidget { const MyApp({super.key}); @override Wi..

Flutter 2022.11.14

[Flutter] 텍스트 스타일

텍스트 스타일(style: TextStyle())- 텍스트에 여러가지 하위 속성들을 입히고자 한다면 Text() 위젯, style: 안에 원하는 스타일을 입력한다.- color : 텍스트에 색깔을 입힌다.- letterSpacing : 글자 간격을 지정한다.- fontSize : 글자 사이즈를 지정한다.- fontWeight : 폰트의 생김새를 지정한다. - Color의 경우 color 명으로도 색을 지정할 수 있지만 다른 방법으로도 세밀하게 색상을 지정할 수 있다. Color c = const Color(0xFF42A5F5);Color c = const Color.fromARGB(0xFF, 0x42, 0xA5, 0xF5);Color c = const Color.fromARGB(255, 66, 165, ..

Flutter 2022.10.31

[Flutter] 플러터 박스 디자인

먼저 body 영역에 간단하게 Container 위젯을 작성해본다.  margin- margin을 통해 컨테이너의 바깥쪽 영역에 여백을 줄 수 있다.padding- padding을 통해 컨테이너의 안쪽 영역에 여백을 줄 수 있다.  - EdgeInsets.all(크기) : 모든 외부 면에 크기만큼의 여백을 준다.- EdgeInsets.fromLTRB(크기, 크기, 크기, 크기) : 왼쪽(L), 위쪽(T), 오른쪽(R), 아래(B) 만큼의 여백을 준다.- EdgeInsets.only(top:크기, bottom:크기, left:크기, right:크기) : 외부 면 중 원하는 부분에 원하는 크기만큼의 여백을 준다. decoration: BoxDecoration()- 하위 속성들은 BoxDecoration 아래..

Flutter 2022.10.31

[Flutter] 레이아웃 및 Scaffold

Material Design- MaterialApp()도 하나의 위젯 개념으로 사용된다.- MaterialApp()을 사용하면 구글이 기본으로 제공하는 Material 테마, 위젯을 사용할 수 있게 된다.- 프로젝트 생성 시 초기에 import되는  flutter/material.dart 가 이에 해당되며, import 후 MaterialApp 사용 시 구글이 만든 디자인 규칙에 따라 안드로이드 앱에서 자주 볼 수 있는 UI 위젯을 사용할 수 있게 된다. Cupertino Design- 머터리얼 디자인은 안드로이드에 적용하기 위한 디자인 규칙으로 iOS 앱과는 어울리지 않는다.- 아이폰과 같은 디자인을 적용하고자 한다면 쿠퍼티노 디자인을 사용해야 하며, flutter/cupertino.dart 패키지를 ..

Flutter 2022.10.31

[Flutter] Flutter 기본 위젯

프로젝트 초기 생성 시 여러 파일들과 main.dart 파일도 함께 생성된다.기본적으로 이해를 돕기 위해 프로젝트 생성 시 샘플 코드가 들어 있지만 쓸모가 없기 때문에 void main() 함수 블럭 하위의 모든 코드를 삭제한다. 깔끔하다. main 함수 블럭 아래에 stless를 입력한 후 Flutter Stateless Widget을 선택한다.- dart 언어는 main 함수 내에 작성된 코드가 실행된다. 생성된 클래스의 이름을 지정해준다. return 구문 뒤의 Container를 MaterialApp으로 바꿔주면 메인페이지에 대한 기본 세팅은 끝난다.  텍스트 위젯- Text('텍스트') 아이콘 위젯- Icon(Icons.아이콘 이름) 이미지 위젯- Image.asset('경로')- 이미지를 넣고..

Flutter 2022.10.25

[WPF] WPF 기본 컨트롤(2) - Label

- Lable은 텍스트 속성 대신 Content 속성을 가진다.- 단지 텍스트가 아니라 모든 종류의 컨트롤을 직접 호스팅하기 때문이다.  - 초기 설정 상태의 Label은 약간의 패딩을 가지므로 텍스트를 상단과 좌측으로부터 몇 픽셀 떨어지게 렌더링 한다.- TextBlock의 경우 해당 사항이 아니며 이떄는 수동으로 지정해야 한다.- Content가 단순 문자열인 경우 Label은 내부적으로 TextBlock을 만들고 그 곳에 문자열을 표시한다.  Label 컨트롤과 TextBlock 컨트롤- TextBlock은 텍스트 문자열만 렌더링하는 반면 Label은 다음과 같은 기능을 수행한다.테두리 지정다른 컨트롤 렌더링(이미지 등)ContentTemplate 속성을 통해 템플릿 사용 가능관련 컨트롤들에 포커스..

WPF 2022.09.07

[WPF] WPF 기본 컨트롤(1) - TextBlock

- TextBlock은 여러 줄의 문자열을 입력 가능하며 string만 담을 수 있다. 긴 문자열 처리 This is a TextBlock control with multiple lines of text. This is a TextBlock control with text that may not be rendered completely, which will be indicated with an ellipsis. This is a TextBlock control with automatically wrapped text, using the TextWrapping property. - 빨간색 텍스트는 LineBreak를 이용해 설계 요구대로 여러줄로 되어있다. 하지만 윈도우 ..

WPF 2022.09.07

[WPF] WPF Application(4) - Application Culture / UICulture

- 숫자 또는 날짜 정보는 응용 프로그램을 실행하는 컴퓨터의 특정 언어 설정에 기반해 자동으로 변환된다.- 하지만 이러한 기능이 항상 동작하진 않기 때문에 이럴 경우 CultureInfo 클래스를 사용한다.  Ad-hoc formatting- 만약 특정 정보, 특히 단일 Label의 내용에 서식을 지정해야하는 경우라면 ToString() 함수와 CultureInfo 클래스를 조합해 바로 쉽게 적용할 수 있다.double largeNumber = 123456789.42;CultureInfo usCulture = new CultureInfo("en-US");CultureInfo deCulture = new CultureInfo("de-DE");CultureInfo seCulture = new CultureI..

WPF 2022.09.06

[WPF] WPF Application(3) - 리소스

- WPF에서는 원하는 모든 데이터를 리소스 형태로 저장하여 컨트롤이나 윈도우를 지역적으로 저장하거나 전체 애플리케이션을 전역으로 저장할 수 있다.- 여기서 데이터는 실제 정보일 수도 있고 WPF 컨트롤들의 계층구조일 수도 있다. - 리소스는 x:Key 속성으로 키를 받는다. 키를 이용해 애플리케이션 내 다른 위치에 있는 값을 참조할 수 있다.- 키는 markup extension인 StaticResource와 결합되어있다.  StaticResource와 DynamicResource- StaticResource의 경우 XAML이 로드될 때 단 한번 할당된다는 것이 주요 특징이다.- StaticResource를 사용하면 나중에 리소스가 변경되더라도 변경사항이 반영되지 않는다. - DynamicResourc..

WPF 2022.09.06

[WPF] WPF Application(2) - App.xaml 과의 연동

- App.xaml은 어플리케이션의 선언부 시작점이다.- VS에서 새로운 프로젝트 생성 시 App.xaml.cs라는 코드 비하인드 파일을 자동으로 생성함과 동시에 이 파일도 생성된다.- 두 개의 파일이 부분 클래스로 함께 작동하며 XAML과 코드 비하인드에서 모두 작업할 수 있도록 한다.- App.xaml.cs는 윈도우 애플리케이션의 중심 클래스인 Apllication 클래스를 확장한다.- .NET은 이 클래스에서 명령들을 실행하고 요청한 윈도우 또는 페이지를 시작한다. App.xaml의 구조새로운 애플리케이션을 생성하면 자동으로 다음과 같은 App.xaml이 생성된다. - StartupUri : 애플리케이션이 실행될 때 어떤 윈도우 또는 페이지로 시작하는지 정의하는 부분이다. 위의 경우 M..

WPF 2022.09.06

[Node-RED] Node-RED 비밀번호 설정

C:\Users\USER\.node-red\settings.js 열기 (경로는 사용자마다 상이할 수 있음) Ctrl+F 로 adminAuth 검색 //adminAuth: { // type: "credentials", // users: [{ // username: "admin", // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", // permissions: "*" // }] //}, 해당 내용의 주석을 모두 제거 username과 password 항목을 변경 username은 그냥 적어도 무방하지만 password 항목은 hash 작업이 필요함 https://www.devglan.com/online-tools/bcryp..

통신/Node-RED 2022.09.06
728x90