본문 바로가기
반응형

Programming257

Flutter 시작하기 2 일차 : splash screen 정렬하기 우선 색상코드를 바꿔줍니다. color: Colors.orange, --> color: Color(0xFFF99231), Center위젯을 Colum위젯으로 바꾸고, CircularProgressIndicator 반영하기 이미지를 높이방향으로 가운데 정렬하기 이미지의 사이즈를 200px로 줄이고 가운데 정렬하기 프로그레스 이미지를 흰색으로 변경하기 import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override W.. 2023. 3. 3.
Flutter 시작하기 1 일차 : splash screen 코드팩토리의 플러터 프로그래밍 - Splash Screen 우여곡절 끝에 플러터 설치를 마치고, 혼자 공부하다 잘 안되어 책을 구매하게 되었습니다. 기본 문법은 대충 보고, 첫번째 예제부터 따라해보기로 했습니다. import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body:.. 2023. 3. 3.
Windows에서 Visual Studio없이 플러터(flutter)설치하기 Flutter를 한번 해보려고 합니다. 그런데 Flutter Doctor라는걸 실행하니까, Visual Studio가 안깔려있다네요???? 모바일 개발할건데 웬 Visual Studio? ㅠㅠ 그래서 포기할까도 생각해봤지만 여기저기 찾아다니다가 알아냈습니다. Windows에서 모바일만 개발할 계획인데 굳이 무거운 Visual Studio를 깔고싶지 않다면 아래와 같이 실행하여 설정을 변경해 줄 수 있습니다. 그러면 Visual Studio 관련 부분이 사라집니다.^^ flutter config --no-enable-windows-desktop flutter doctor (ps) Unable to find bundled Java version 에러 C:\Program Files\Android\Android.. 2023. 2. 27.
C#(WPF) - Datagrid 멀티라인 추가하기 아래와 같이 xaml에서 직접 작성할 수 있습니다. 아래와 같이 C#코드로 작성할 수도 있습니다. /* * Created by SharpDevelop. * User: wijkim * Date: 2023-02-13 * Time: 오후 2:56 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents;.. 2023. 2. 14.
파이썬 폴리움(folium) 라이브러리 시군구별 데이터 표시 시군별 평균수입/총수입 자료를 지도에 매핑해서 나타내보도록 하겠습니다. 아래의 자료는 시군별 평균수입/총수입 자료입니다. 한가지 추가로 필요한 파일이 시군구 지형자료입니다. 아래의 파일도 같은 프로젝트 폴더에 저장하고 실행합니다. import folium as g import json import webbrowser import pandas as pd g_map = g.Map(location=[37.4, 127], tiles='cartodbpositron', # tiles = 'Stamen Terrain', zoom_start=7) geo_data = json.load(open('skorea_municipalities_geo_simple.json', encoding='utf-8')) df = pd.rea.. 2023. 2. 13.
파이썬 Folium으로 주피터 노트북 없이 지도 표시하기..chatGPT가 도와줌 오늘은 파이썬의 Folium 라이브러리로 지도를 그려보도록 하겠습니다. 보통의 예제들이 주피터 노트북을 이용해서 지도 결과물을 표시하도록 되어있었는데, 불행히도 제 PC에는 아직 주피터 노트북 설치를 안했네요. 그래서 한참동안 그냥 결과물을 보려고 고생을 하다가 갑자기 그녀석이 생각났습니다. chatGPT~!!! ㅋㅋㅋㅋ 한번 이용해봐야겠습니다. 첨엔 folium 결과를 matplotlib로 내보낼 수 있을까 하고 한참을 고민했는데, chatGPT도 실패를 했습니다. IPython을 깔기도 하고, 별의별 라이브러리를 다 갖다가 붙여놨는데, 결론은 이미지 파일로 만들어서 픽셀단위로 matplotlib에 뿌리더군요. 이건 좀 아니지 않나 싶어서 간단히 html로 만든 결과물을 브라우저로 자동으로 오픈시켜주는.. 2023. 2. 12.
만자로(Manjaro) 리눅스 듀얼부팅 - 파티션 및 한글(ibus, uim) 적용 오랫만에 어떤 리눅스를 골라 설치할까 하다가 다시 만자로 리눅스를 설치해보기로 했습니다. 물론 Windows와 듀얼부팅으로요. 버전은 manjaro-gnome-22.0.2 입니다. 1. 파티션 다른 부분은 사실 거의 Next만 눌러줘도 되지만, 항상 어려웠던 부분이 바로 파티션이 아닐까 합니다. 요즘은 UEFI 방식의 BIOS지원으로 이를 적용하고자 뭔가 좀 더 복잡해진 것 같아...애를 먹었습니다. 그런데 사실 힘들었던 부분은 UEFI(GPT)방식이냐 옛날방식(MBR)방식이냐가 아니라... 부트로더를 제대로 설정하지 못해서 생긴 문제였습니다. - 윈도우즈에서 우선 리눅스를 사용할 공간을 마련합니다. 추가로, 부트로더 8MB를 위한 파티션을 현재 부팅하드인 C드라이브에 함께 추가합니다. 리눅스는 D드라이.. 2023. 2. 5.
파이썬으로 폴더 내 파일명 일괄 수정하기 특정 폴더의 파일 전체에 대해서 일괄 수정하는 기능을 구현해 보았습니다. add_string 함수는 파일명에 접두사와 접미사를 붙여서 출력하는 기능이고, change_string 함수는 파일명에 특정 문자열을 다른 문자열로 바꾸는 기능입니다. 우선은 파일명을 확인하는 부분까지만 구현하고, 실제 변경하는 부분은 주석 처리하였습니다. 사용하실 분은 해당 부분 주석 해제후 사용하세요. import os def add_string(path, prefix, suffix): for filename in os.listdir(path): name_only, ext = filename.split('.') # 파일명과 확장자로 분리 print(name_only, ext) new_name = prefix + name_onl.. 2022. 11. 5.
프론트엔드 프레임워크 비교 (Angular / React / Vue / Svelte) 프론트엔드 프레임워크 하면 Angular / React / Vue 그리고 최근 부각되고 있는 Svelte가 있는데요. 전문 개발자는 아니지만 조금은 손대본 경험을 토대로(Angular제외..) 특성을 알아보도록 하겠습니다. Stackoverflow Ranking에서 여러 프로그래밍 언어 및 프레임워크에 대한 점유율, 선호도 등 자세한 정보는 확인하실 수 있습니다. 해당 정보에 따르면 웹 프레임워크의 점유율은 아래 그래프와 같습니다. 이 중에 프론트엔드 프레임워크만 보면 React가 제일 상단에 있고, jQuery, Angular, Vue 그리고 한참 아래쪽에 Svelte가 있네요 역시 Stackoverflow Ranking에 따르면 이번엔 Svelte가 제일 위에 있고, 그다음 React,.. 2022. 11. 1.
Django - Gitlab - Heroku CD/CI 배포 와 Freenorm DNS연결 Django앱을 Gitlab에 올리고, Heroku로 자동 배포하는 방법, 그리고 Freenorm의 무료 DNS를 적용하는 방법을 알아보겠습니다. 순서는 아래와 같습니다. django 앱 생성 (본문은 Django의 사용법을 다루는 글이 아니므로, 기본적인 앱은 만들어져 있어야 합니다.) Heroku repo 생성 Gitlab repo 생성 CD/CI설정 (Gitlab 추가설정 및 파일 추가 생성) 추가 설정 (오류 점검) 외부DNS(Freenom) 적용 1. Django 앱 생성 기본적인 앱이 구현되어있겠지만, 앱을 배포하기 위해서는 추가적인 라이브러리 설치가 필요합니다. pip install gunicorn whitenoise django-herok # gunicorn: 위에서 설명한 파이썬 HTTP.. 2022. 10. 9.
.NET6(dotnet6)에서 entity framework 설치하기 (ef명령어 오류) dotnet core3.1 쓰다가 업그레이드 된 닷넷이 있다고 하여 dotnet6를 설치하고 스캐폴딩을 수행해보겠습니다. 1. 필요한 라이브러리를 설치하고(Oracle DB) 2. 스캐폴딩......근데, 스캐폴딩하다가 에러가 발생했습니다. dotnet ef dbcontext scaffold "User Id=abc;Password=1234;Data Source=abcd.efghijk.com:1521/dbname;" Oracle.EntityFrameworkCore -t TBL_ITMAN_AUTH -t TBL_ITMAN_CONSUMABLE -t TBL_ITMAN_ERP -t TBL_ITMAN_OH_UPLOAD -t TBL_ITMAN_PRT_MDL -t TBL_ITMAN_PRT_MST -t TBL_ITMAN_.. 2022. 9. 14.
Python Dataframe 출력 시 생략(...)없이 출력하는 방법 Pycharm이던 Jupyter Notebook이던 Dataframe형태의 결과를 볼 때, 칼럼의 수가 많아지면 기본적으로는 중간이 ....으로 표시됩니다. 간단하게 확인만 할건데 매번 추가코드를 작성하기도 귀찮고.... 이럴 때 옵션 하나면 간단히 처리할 수 있습니다. # row 생략 없이 출력 pd.set_option('display.max_rows', None) # col 생략 없이 출력 pd.set_option('display.max_columns', None) 누군가에겐 도움이 되었길 2022. 8. 21.
Python matplotlib 마커(marker) 종류 matplotlib의 plot기능에서 색상/라인/마커의 종류에 대해 알아보겠습니다. import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'bo-') # 파란색 + 마커 + 실선 plt.xlabel('X-Axis') plt.ylabel('Y-Axis') plt.show() 2022. 8. 3.
자바GUI(Swing) - Simple text editor 인텔리제이(Intellij) IDE 를 사용하여 간단한 텍스트 에디터를 만들어보도록 하겠습니다. 1. 새 프로젝트 생성 인텔리제이 메뉴에서 File - New - Project 를 클릭하여 새 프로젝트를 생성해줍니다. Name은 editor로 하고, 적당한 위치에 아래와 같은 세팅으로 진행할 예정입니다. JDK는 설치되어있지 않다면 JDK의 드롭다운 메뉴 중 Download JDK를 눌러, 적당한 버전을 고른 후 다운로드 받아줍니다. 혹은 직접 원하는 JDK를 다운로드 받아서 선택할 수도 있습니다. 2. Main Class 생성 프로젝트 하위 폴더 중 src에서 우클릭하여 New - Java Class 를 클릭한 후, 클래스 이름을 editor로 하여 새로운 클래스를 생성해줍니다. 만들어진 클래스 내부에.. 2022. 7. 11.
Linux용 음악 프로그램 QMMP - 설치부터 스킨 변경까지 linux를 처음 알고 시작했을 당시만해도 xmms라는 콘솔에서 실행하는 프로그램을 설치하고 음악을 듣곤 했었는데, 거기서부터 파생된 gui형태의 프로그램들이 많이 나온것 같습니다. xmms2도 있었고, audacious라는 프로그램을 최근까지도 메인으로 사용하고 있었는데, 얼마전 qmmp라는 또다른 프로그램을 알게 되었습니다. 이름에서 알 수 있듯이 QT기반의 프로그램 이라고 합니다. 어떤 녀석인지 한 번 설치해 보도록 하겠습니다. 현재 제 데스크탑에는 ubuntu 20.04 lts가 설치되어 있습니다. 그래서 ubuntu package manager로 가서 qmmp를 찾아봅니다. 2개가 나오는데 어떤걸까요? 아래쪽이 1.5 버전이라고 되어있어서 아래쪽 프로그램을 설치하겠습니다. 설치하고 나니 보이긴 .. 2022. 7. 3.
자바GUI(JavaFX) - CSS파일 적용 JavaFX에서 css파일을 적용하는 방법에 대해 알아보겠습니다. 1. CSS 파일 추가 "resources - 프로젝트이름폴더" 하위에 css파일을 추가합니다. 샘플로 darktheme.css라고 이름지었습니다. 2. CSS파일 적용 HelloApplication클래스의 Scene 선언부 바로 뒤에 darktheme을 불러오는 코드를 추가합니다. package com.example.test07; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; public class HelloAppl.. 2022. 6. 26.
자바GUI(JavaFX) - Gradle 환경에서 외부 라이브러리 추가하기 IntelliJ에서 JavaFX 프로젝트 생성을 할 때 Maven 또는 Gradle 빌드환경을 선택하도록 되어있습니다. Gradle환경에서 외부 라이브러리 추가하는 방법에 대해 알아보겠습니다. 1. build.gradle 파일 수정 Gradle 환경으로 프로젝트를 생성하고 외부 Library를 추가할 때에는 build.gradle파일의 dependencies 부분에 인식시켜줘야 합니다. dependencies { implementation files("libs/gson-2.9.0.jar") // 라이브러리 추가부분 implementation files("libs/aquafx-0.1.jar") // 라이브러리 추가부분 testImplementation("org.junit.jupiter:junit-jupit.. 2022. 6. 25.
Electron-vue 보일러플레이트 만들기 1. Vue 프로젝트 시작 vue create . //폴더를 먼저 만들고 해당 폴더를 프로젝트 폴더로 하여 생성 2. Electron-Builder 설치 이거 설치하고 테스트를 해본다. vue add electron-builder 3. 배포 테스트 npm run electron:build 4. Router 설치 vue add router - App.vue파일이 자동으로 업데이트 됨 Home About - ./views/HomeView.vue와 /views/AboutView.vue 파일이 자동 생성됨- - ./router/index.js 파일이 자동 생성됨 5. Bootstrap-vue 설치 npm install bootstrap-vue bootstrap Bootstrap-vue 설정 (main.js) i.. 2022. 6. 22.
Vue3 + bootstrap5 적용하기 1. 설치 npm i --save bootstrap npm i --save @popperjs/core // 부트스트랩 실행에 필요 2. main.js에 두줄만 Import하면 됨 import { createApp } from 'vue' import App from './App.vue' import router from './router/index.js' // 아래 두줄만 넣으면 된다. import 'bootstrap/dist/css/bootstrap.min.css' import 'bootstrap' createApp(App) .use(router) .mount('#app') *** bootstrap-vue 적용하기 npm install vue bootstrap-vue bootstrap 이제 main.js.. 2022. 5. 28.
Vuex 사용 state : data getters : computed mutations : methods actions : methods(비동기) Vuex action에서의 활용 context.state context.getters context.commit (mutation의 함수 사용시) context.dispatch (action의 함수 사용시) Vue 컴포넌트에서 Vuex Helper 사용 ...mapState('모듈',[ '상태1','상태2' ]) ===> computed에서 사용 ...mapGetters('모듈',[ '상태1','상태2' ]) ===> computed에서 사용 ...mapMutations('모듈',[ '상태1','상태2' ]) ===> methods에서 사용 ...mapActions('모듈.. 2022. 5. 24.
Vue 프로젝트 - Movie페이지 단일영화 상세정보 및 skeleton UI작성 1. routes 수정 /movie/#123456과 같이 ID를 입력받을 수 있도록 수정 import { createRouter, createWebHashHistory} from 'vue-router' import Home from './MyHome.vue' import Movie from './MyMovie.vue' import About from './MyAbout.vue' export default createRouter({ // Hash, History --> Hash mode 사용 예정 history: createWebHashHistory(), // pages routes:[ { path:'/', component: Home }, { path:'/movie/:id', component: Movi.. 2022. 5. 22.
Vue 영화검색사이트 기본 설치 파일 1.라이브러리 설치 npm i vue-router vuex bootstrap@5 npm i -D node-sass sass-loader 2. bootstrap 커스터마이징 - scss/main.scss 작성 - 오류 방지를 위해 maps는 주석 처리 // Required @import "../../node_modules/bootstrap/scss/functions"; // Default variable overrides $primary:#FDC000; //variables가 실행되기 전에 재정의되어야 함 // Required @import "../../node_modules/bootstrap/scss/variables"; @import "../../node_modules/bootstrap/scss/mix.. 2022. 5. 14.
Vue Tailwind CSS 적용하기 1. 설치 npm install -D tailwindcss@latest postcss@latest autoprefixer@latest 2. 활성화 npx tailwindcss init -p 3. ./tailwind.config.js환경설정 module.exports = { // content: [ // "./index.html", // "./src/**/*.{vue,js,ts,jsx,tsx}", // ], purge:[ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}" ], theme: { extend: {}, }, plugins: [], } 4. src/index.css 파일 생성 @import "tailwindcss/base"; @import "tailwindcs.. 2022. 5. 13.
Vue apache 배포 오류 Vue로 작성한 프로그램을 Build를 하고... npm run build /dist/ 폴더의 파일들을 아파치 폴더에 옮겼는데, 빈 화면이 나옵니다. index.html 파일은 보이는데 개발자 화면 확인해보니...js파일과 css파일의 경로를 인식을 못했습니다. "/js/chunk-vendors....."처럼 되어있는데, 혹시나 해서 "."을 붙여보니 작동이 됩니다. 동일한 오류 겪고계신 분께서는 한번 시도해보시길 바랍니다. 2022. 5. 12.
C#(WPF) - 실행 프로그램 아이콘 설정하기 Dotnet 프로그램의 Icon을 변경하는 것은 굉장히 쉽습니다. 원하는 아이콘(111.ico)이미지를 프로젝트 폴더에 넣어준 뒤, project.csproj파일에 등록시켜주면 끝납니다. WinExe netcoreapp3.1 111.ico true 2022. 4. 22.
Godot사용팁 - path2D Path2D노드 사용법에 대해 알아보겠습니다. Path2D노드를 사용하면 단순히 움직이는 캐릭터들(Enemy 나 NPC 등)의 단순 이동동작을 최소한의 코딩으로 구현할 수 있는 유용한 노드입니다. 1. 적당한 Enemy 노드가 있을 경우, 전체 동작하는 Scene에서 아래와 같이 구성을 하였습니다. Path2D노드는 하위에 항상 PathFollow2D를 자식으로 담고 있어야 합니다. Path2D노드가 포인트를 이용하여 라인을 생성하는 노드라면, PathFollow2D노드는 그 선을 어떤 방식으로 따라가는지를 설정하는 노드입니다. 2. Path2D노드를 다시 선택하면 아래 그림과 같이 에디터 상단에 포인터 추가/삭제/편집할 수 있는 버튼이 활성화됩니다. 적당히 이동 경로를 그려줍니다. 이 중 5번째 아이콘.. 2022. 3. 14.
Godot사용팁-AnimationTree노드의 Blendmode2D로 애니메이션 컨트롤 오늘은 AnimationTree노드에 대해 알아보겠습니다. 처음 캐릭터의 애니메이션을 만들면 AnimationPlayer노드를 많이 사용하는데요, 이 노드만 이용해서 각종 상태를 코드로 컨트롤하려면 좀 힘듭니다. 많이 힘듭니다. 머리는 쥐가나고, 코드는 스파게티가 되고, 뭐 하나라도 추가하려면 완전... 그래서 여기서도 똑똑하신분이 상태 관리하라고 노드를 하나 주셨는데, 그게 바로 AnimationTree노드입니다. AnimationTree노드를 사용하려면 각각의 동작 Animation은 사전에 구현이 되어있어야합니다. 이미 존재하는 Animation을 컨트롤하는 상태관리자라고 보시면 됩니다. 참고로 저는 코로나 격리기간 중에 아래와 같은 게임을 7살 딸과 함께 만드는 중이었습니다. 탑다운 방식이다보니 .. 2022. 3. 12.
Godot GUI프로그래밍 예제 - 시계만들기 1. Display Size를 (400,500)으로 세팅합니다. 2. Borderless를 설정합니다. 3. Per Pixel Transparency를 Allowed, Enabled 로 바꿉니다. 4. 노드 구성 - clock (control) ㄴ ColorRect (ColorRect) ㄴ Body (sprite) : 시계 몸체 이미지 ㄴ pivot_h (Node2D) ㄴ Hour (sprite) : 시침 이미지 ㄴ pivot_m (Node2D) ㄴ Minute (sprite) : 분침 이미지 ㄴ pivot_s (Node2D) ㄴ Second (sprite) : 초침 이미지 5. Body는 앱 중앙에 위치시키고, pivot들은 Body의 중앙에, pivot 내부의 sprite이미지들은 위와같이 정렬해줍니.. 2022. 2. 24.
Godot GUI 프로그래밍 - 컨테이너 GUI에서 레이아웃을 구성할 때 앵커를 이용해서 다양한 종횡비를 처리할 수도 있습니다만, 좀더 효과적으로 내부 요소들을 배치하기 위해서는 컨테이너가 필요합니다. 컨테이너 노드를 사용하면 모든 자식 노드는 자신의 지정된 위치가 무시됩니다. 즉, 컨테이너가 위치를 제어하게 되고, 컨테이너의 크기가 조정되면 모든 자식 노드가 그에 따라 재배치되며 사용된 컨테이너 유형에 따라 동작합니다. HBoxContainer 가 자식 버튼 의 크기를 조정 하는 예입니다. Size Flag 컨테이너에 노드를 추가할 때 컨테이너가 각 자식을 처리하는 방식은 주로 Size Flag에 따라 다릅니다 . Size Flag는 컨테이너의 자식노드(컨트롤 노드)의 inspector에서 찾을 수 있습니다. 크기 플래그는 수직 및 수평 크기.. 2022. 1. 25.
C#(WPF) 프린트 - 단순 출력부터 다이얼로그 없이 출력하기까지 https://www.c-sharpcorner.com/uploadfile/mahesh/printing-in-wpf/ Printing in WPF This article discusses the process of printing in WPF and how to print a FlowDocument, Control, and Window in WPF. www.c-sharpcorner.com 1. 단순 출력 기초 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls;.. 2022. 1. 14.