본문 바로가기

프로그래밍

(299)
[RUST] 인자 입력 받아 명령 프로세스 실행하기 rust 에서 std::process::Command 를 사용해 cmd 명령이나 파일을 실행 할 수 있는데, 어떤 객체들이 사용되는지 대략적으로 살펴본다. useuse std::error::Error as StdError;use std::fmt;use std::io::Read;use std::os::windows::process::CommandExt; // creation flaguse std::process::{self, Command, Stdio, ExitStatus};use std::env;use std::path::Path; 호출 결과 구조체struct ProcessResult { stdout: Vec, stderr: Vec, exit_status: ExitStatus,} 에러처리..
[RUST] https 를 통해 파일 다운로드 간단 샘플 Cargo.toml사용할 모듈 정보를 입력한다.tokio: 파일, asyncreqwest : httpmain을 async로 동작시키려면 tokio feature중 "rt" or "rt-multi-thread", "macros" 필요https 사용을 위해 reqwest feature 중 "rustls-tls" or "native-tls" 필요[package]name = "sample"version = "0.1.0"edition = "2021"[features]default = [][dependencies]tokio = { version = "1", features = [ "fs", "rt-multi-thread", "macros"] }reqwest = { version = "0.12", features =..
[RUST] 다른 언어와 다른 부분, 특징 정리 중.... 러스트를 전체적으로 살펴보다가 좀 특이한 것들만 정리.일단 대략 파악만 하고... 좀더 세부적으로 살펴봐야 할 내용들이 많음. 엔트리포인트크레이트 루트 바이너리 : src/main.rs 라이브러리 : src/lib.rs 모듈 선언루트와 같은 파일에 있는 경우 모듈 정의mod module {}별도 파일로 모듈 정의src/module.rsorsrc/module/mod.rs별도 파일로 모듈을 구성한 경우 크레이트 루트에 모듈 정의mod module;서브모듈 선언 : 모듈안에 선언된 모듈 서브모듈을 가진 모듈도 모듈 폴더 아래에 위치해야 함.// 모듈src/module/mod.rs// 서브모듈src/module/submodule.rs or src/module/submodule/mod.rs코드참조직접참조 : cr..
[ffmpeg] 오디오, 비디오 코덱 변환 avi를 mp4 로 변경ffmpeg -i input.avi -c:v copy -c:a copy outpu.mp4 avi 파일(mpeg4, mp3) 을 mp4(mp4v, mp4a) 로 변경ffmpeg -i input.avi -c:v copy -c:a aac output.mp4 avi 를 mov로 변경ffmpeg -i input.avi -c:v libx264 -c:a aac output.mov mov를 gif로 변경ffmpeg -i input.mov -ss 0 -t 5 -loop 0 -filter_complex "fps=10, scale=1024:-1[s], [s]split[a][b]; [a]palettegen[palette]; [b][palette]paletteuse" output.gif wmv를  mp4..
[RUST] cargo 기본 사용법 프로젝트 생성새 폴더에 프로젝트 생성 및 초기화cargo new project_namecd project_name 기존 폴더에 프로젝트만 초기화cargo init 생성시 인자--bin : 바이너리 형태 배포, main.rs 생성됨--lib : 라이브러리 형태 배포, lib.rs 생성됨 패키지 설정패키지 설정을 위한 Manifest는 Cargo.toml 파일이며, 해당 파일을 직접 수정한다.패키지[package]name = "패키지명"version = "0.0.1"authors = ["author1", "author2"]edition = "2024"description = "설명"license = "라이센스"repository = "git"homepage = "homepage"categories = ["c..
[tauri] 테스트용 앱 기본 구성 간단한 용도로 나름 UI를 갖춘 앱 만들때 가끔 사용하기 위해 기본적인 프로젝트 설정 정리웹은 만질일이 없다보니 할때마다 기억이.... 앱 템플릿npm create tauri-app@latestfrontend : TypeScript / JavaScriptpackage manager : npmUI template : ReactUI flavor : TypeScriptnpm install tailwindcssInstall Tailwind CSS with Create React App - Tailwind CSSnpm install -D tailwindcss postcss autoprefixernpx tailwindcss init -p tailwind.config.js 수정module.exports = { ..
리액트 주요 요소 JSXHTML 과 비슷한 형식으로 스크립트 작성 가능기존 HTML 형식과 비슷하지만 속성값등은 카멜 케이스 형식으로 사용해야 함변수, 객체 등 참조하는 경우 { } 사용  CSSimport MyCSS from './My.css';function App() { return ( . . );}export default App;  컴포넌트JSX내의 태그를 커스텀하게 생성function, class 가능const HelloWorld = function() { return HelloWorld}export default HelloWorld;jsx 에서 와 같이 사용 component props컴포넌트에 전달할 읽기전용 속성const defau..
[tauri] 개발환경 윈도우즈빌드 툴 설치 : Visual Studio 를 설치하거나 아래에서 빌드 툴 설치Microsoft C++ Build Tools - Visual Studio WebView2 : 윈도우 11에는 포함되어 있으며, 윈도우 10은 아래에서 에버그린 부트스트래퍼 다운로드해 설치https://developer.microsoft.com/en-us/microsoft-edge/webview2 rustInstall Rust - Rust Programming Language (rust-lang.org)curl 사용curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh winget 사용winget install --id Runstlang.Rustup wsl 에서 ..