분류 전체보기
-
[rust] tokio 비동기 동시 처리 기본 예시 코드Rust 2024. 11. 24. 18:06
tokio를 통한 async 작업을 동시 실행. dotnet의 Task.WaitAll() 과 유사입력받은 초(sec)만큼 시간이 출력되는 작업 print_now를 각각 f1, f2 작업을 만들어 동시 실행 처리. tokio::join으로 들어온 작업 중 가장 늦게 끝난 작업 기준으로 종료 [main.rs]use tokio;use time::{OffsetDateTime}; // 포맷팅된 시간 글자를 표기하기위한 라이브러리#[tokio::main]async fn main() { let f1 = print_now(1, 5); let f2 = print_now(2, 10); tokio::join!(f1, f2); // f1, f2}// 1초당 현재시간(UTC) 표기async fn print_no..
-
[rust] tokio, bb8, tokio_postgres DB 연결 예시 코드Rust 2024. 11. 24. 17:11
tokio 와 bb8을 이용한 postgres db 연결 기본 예시 코드 [main.rs]use bb8;use bb8::Pool;use bb8_postgres::PostgresConnectionManager;use tokio_postgres::NoTls;#[tokio::main]async fn main() { println!("Hello, world!"); let manager = PostgresConnectionManager::new_from_stringlike("postgresql://{계정}:{암호}@localhost:5432/{db명}", NoTls).unwrap(); let pool = Pool::builder().build(manager).await.unwrap()..
-
[VMWare] VMWare Fusion 에서 Windows 설치시 네트워크 이슈 해결ETC 2024. 11. 23. 13:47
VMWare Fusion 에서 Windows 11 설치 과정에서 네트워크 연결 여부를 확인하는 단계가 있는데, 해당 단계를 건너뛸 수 없어 설치를 못하는 경우아래 단계에서 드라이버 이슈로 진행이 안될 수 있다. 이 경우 Shift + F10 키를 눌러 cmd 창을 연 뒤 `OOBE\BYPASSNRO`를 입력 후 엔터를 눌러 설치과정을 재수행하면 된다. 재수행한 단계에선 인터넷에 연결되어 있지 않음 메뉴가 표기된다. 해당 버튼을 눌러 다음 단계를 수행할 수 있다. 설치완료 후 인터넷을 사용할 수 없을 때앞서 단계에서 드라이버 이슈로 Windows 11을 설치에 어려움을 겪은 사람들이 이어서 겪을 수 있는 문제이다. 이 경우 VMWare Tools을 설치하면 해결 될 수 있다. Mac OS 상단에 있는 F..
-
[rust] 규칙에 맞는 프로젝트 템플릿을 통해 새로운 rust 프로젝트 생성을 돕는 cargo-generateRust 2024. 11. 10. 10:31
cargo new 명령을 통한 프로젝트 생성은 실행프로그램을 생성하는 --bin 과 라이브러리 생성인 --lib 두가지이다. 그 후 webapi 이든 ui 프로그램이든 생성하고자 하는 프로그램 유형에 따라 crate 를 일일히 추가해줘야 한다.매번 생성하는게 귀찮다면 cargo-generate 를 설치해 보는 것을 추천한다.cargo binstall cargo-generate설치 후 아래와 같이 사용하면 된다. 아래 예시는 rust + axum + utoipa 조합으로 webapi 개발을 위해 직접 생성한 webapi 브랜치이다.cargo generate --git https://github.com/ddochea0314/template-axum-webapi생성하면 입력한 프로젝트명에 따라 README.m..
-
[rust] axum 과 utoipa 로 swagger를 지원하는 web api 구현 예제Rust 2024. 9. 18. 14:18
Axum은 Rust 언어를 위한 웹 애플리케이션 프레임워크로 사실상 표준 비동기 프로그래밍 라이브러리로 받아들여지는 Tokio를 만든 Tokio-rs 에서 개발하였다. Rust 생태계의 대표 웹 프레임워크인 Rocket 과 Actix 에 비해 비교적 최근에 릴리즈 되었다. 그래서인지 utoipa 를 통한 swagger 적용이 원할하지 않았다. 몇 시간의 삽질 끝에 예제가 될만한 구현작업을 완료할 수 있었다. 아래 리포지토리는 axum에서 swagger ui 가 동작할 수 있도록 예시형식으로 구현한 브랜치이다. ddochea0314/template-axum-webapi (github.com) GitHub - ddochea0314/template-axum-webapiContribute to ddochea0..
-
[golang] WebAssembly 빌드시 expected magic word 00 61 73 6dETC 2024. 8. 23. 22:29
go 공식 웹 어셈블리 wiki 문서(https://go.dev/wiki/WebAssembly)에서 실행시 magic word 00 61 73 6d 가 나올 경우,windows 파워쉘 환경에서 하고 있다면 GOOS, GOARCH 변수설정을 잘못한 것일 가능성이 있다.$ GOOS=js GOARCH=wasm go build -o main.wasm 위 명령어를 아래와 같이 수행.$env:GOOS="js"$env:GOARCH="wasm"go build -o main.wasm main.go
-
[css] animation 재생을 다시 실행할 수 있도록 처리ETC 2024. 8. 11. 18:58
css animation을 특정 이벤트가 발생할 때마다 재생시키고 싶을 때 아래와 같이 작성하는 케이스가 있다. play 위 예제에서 버튼을 누르면 100px * 100px의 빨간색 박스가 아래로 이동했다가 원위치될것이다. 그런데 처음 버튼을 눌렀을 땐 정상동작하는데, 두번째부터는 정상동작하지 않는다. 이 경우 아래와 같이 소스를 수정하면 된다. play 이유는 html 태그의 구조나 다시 랜더링할 속성 변경이 없어서 브라우저의 리플로우(reflow) 및 리페인트(repaint)가 일어나지 않아서인데, offsetWidth과 같이 읽기만해도 리플로우(reflow)를 유발시키는 속성을 호출하여 이를 해결할 수 있다. What forces layout/reflow. ..
-
[winget] 소스를 열 때 실패했습니다. 문제가 계속되면 'source reset' 명령을 사용해 보십시오. 발생시 확인사항ETC 2024. 7. 31. 22:31
PC를 새로 세팅하고 winget 으로 필요한 프로그램을 설치할 때 아래와 같은 메시지가 발생했다. 소스를 열 때 실패했습니다. 문제가 계속되면 'source reset' 명령을 사용해 보십시오.Failed when opening source(s); try the 'source reset' command if the problem persists.An unexpected error occurred while executing the command:0x8a15000f : Data required by the source is missingAdministrator 에서 source reset 을 수행해봐도, source update를 수행해봐도 해결되지 않았다.그나마 github에서 검색한 아래 방법을 사용..