분류 전체보기 (750) 썸네일형 리스트형 Rust, tauri 개발 환경 설정 [1. 개요] Rust 로 gui 애플리케이션이 만들필요가 있을 때, 유용함. 공식 사이트에 소개된 tauri 장점 https://tauri.app/ 다중 플랫폼 배포를 위한 최적화되어 있고, 안전하며, 프론트엔드 독립적인 앱을 구축가능. 운영체제의 기본 웹 렌더러를 사용하여 Tauri 앱의 크기는 600KB보다 작아질 수 있습니다. Rust로 구축 가능 [2. 개발 환경 설정] Windows 를 기반으로 정리 rust 는 이미 설치되었다고 가정. cargo install create-tauri-app --locked # cargo-create-tauri-app.exe 가 Rust 가 설치된 곳에 위치하게 된다. # os 에 맞는 prerequisites 를 설치 # https://tauri.app/v1.. Rust. 프로젝트 구조 [1. 개요] Rust 로 application 작성 시, 규모가 커질 경우 당연하게도 소스 코드를 모듈 별로 분리할 필요가 있다. 여기서는 소스코드로 분리하는 방법을 정리한다. [2. 개념] cargo 를 이용하여 두가지 형태의 프로젝트를 생성 할 수 있다. executable library executable 형태에서는 main.rs 가 진입점이고, library 형태에서는 lib.rs 가 진입점이다. main.rs 를 기준으로 같은 디렉터리에 있는 소스코드의 경우, 파일 이름명이 바로 module 이 된다. main.rs 를 기준으로 하위 디렉터리에 있는 소스코드 중 mod.rs 는 해당 디렉터리의 상위 모듈이 되고, 그 디렉터리내 소스코드의 파일명이 하위 모듈이 된다. main.rs 에서는 키워드.. Window, C++, 예외처리 [1. 개요] 윈도우 환경에서 C++ 애플리케이션 작성 시, 예외처리 방법을 정리한다. try ~ catch __try ~ __except (SEH) Unhandled Exception Filter [2. try ~ catch] 표준 C++ 에서 제공하는 예외 처리 방법 throw 키워드를 이용해 명시적으로 발생시킨 예외를 제어한다. catch 에서 예외를 전부 제어할 수 없는 경우, 비정상 종료가 발생한다. [3. __try ~ __except] 윈도우 에서 제공하는 예외 처리 방법 # 리눅스에서는 사용 불가 (?) SEH (=Structured Error Handling) 이라고 부른다. [4. Unhandled Exception Filter] [5. GetExceptionCode() ] 발생한 ex.. Rust. 알고리즘 문제 풀이 기본 코드 구조 [1. 개요] 알고리즘 문제 풀이 시, Rust 로 작성 하는 경우, 기본 골격이 되는 코드 구조 정리 [2. 예시-01] 한줄의 입력에서 세개의 숫자를 읽고 그 숫자들의 합을 출력하는 문제 [3. 예시-02] 2줄에서 2개의 숫자를 읽고, 그 합을 출력 [3. 예시-03] EOF 를 만날 때 까지, 입력 스트림으로 부터 데이터 읽어들이고 출력 C++ 멀티 스레딩 - 메모리 모델 [1. 원자계] std::atomic_flag clear() => flag 값을 false 로 test_and_set() => flag 값을 true 로, 읽기와 쓰기 연산이 하나의 원자계 연산으로 수행 된다. 최초 생성 시, ATOMIC_FLAG_INIT 상수를 이용해 false 로 초기화 해야 한다. 잠김 없는 유일한 원자계 더 높은 수준의 스레드 추상화를 위한 빌딩 블록 std::atomic_flag 를 이용한 spinlock 구현 std::atomic Docker. 기타 설정 [1. 개요] [2. non-root 계정에서 도커 명령어 실행] # usermod -aG docker "user_이름" 계정 추가. useradd, adduser [1. 개요] 리눅스 서버에 신규 계정 발급 시 자주 사용하는 명령어 조합 정리 [2. 명령어] 사용자 계정을 추가하는 명령어는 아래와 같이 두가지가 있다. adduser useradd 두 명령어의 차이점은 아래와 같다. adduser 계정 생성 시 별도 옵션 없이, 홈 디렉토리를 포함한 사용자 관련 설정을 자동생성한다. useradd adduser 처럼 동작하려면 별도의 옵션을 추가로 기입해야 한다. 여기서는 useradd 사용법을 정리한다. [3. 옵션] 옵션 설명 기타 -d, --home 로그인 시 사용 할 홈 디렉터리 경로, 해당 경로에 폴더가 없어도 만들지 않는다. -m, --create-home 사용자 홈 디렉터리가 없는 경우 생성한다. -M 사용자 홈 디렉터리를 만들지 않는다. -r, --s.. Jenkins. 업데이트 유의 사항 [1. 개요] 젠킨스 버전 업데이트 시 발생했던 문제점과 이 과정에서 경험했던 내용을 정리하도록 한다. [2. 윈도우 서버에서 발생했던 문제] 사례 1) 젠킨스 버전을 업데이트 하기 위해 jenkins.war 가 존재하는 디렉터리에서 war 파일만 최신 버전으로 교체했을 때 발생했던 문제 홈 화면에서 보이던 pipeline view 등이 갑자기 안보이는 문제 war 롤백 후 재실행해도 일부 플러그인이 정상적으로 동작하지 않는 문제 아마, 새롭게 풀린 war 가 기존 war 를 덮어씌워서 발생한 것으로 보임(?) 해결 1) 젠킨스를 재설치 하되, 기존에 젠킨스의 설정파일 등이 있는 디렉터리와 겹치지 않는 위치에 재설치 # 크게 세가지 유형의 디렉터리가 존재 # 1) jenkins.war 가 있는 디렉터리 .. Jenkins. 유용한 플러그인 [1. 개요] jenkins 설치 후 사용 시 유용한 플러그인 혹은 내가 필요해서 한번이라도 사용했던 플러그인 리스트 정리 [2. 기본 플러그인] Jenkins 설치 시, 설치를 권장하는 플러그인 목록 [3. 플러그인 목록] Delivery pipeline Gerrit ~~~ MSBuild ~~ Rust. 변수 [1. 기본 개념] Rust 에서 변수는 let 으로 선언하고, 기본적으로 불변성을 갖는다. 그러나 필요에 따라 mut 를 추가하여 가변성을 갖게 할 수 있다. 상수는 변수와 달리 아래와 같은 차이가 있다. mut 사용이 허용되지 않는다. 따라서 불변성 그 자체이다. let 대신 const 를 사용한다. Shadowing 이전에 선언한 변수와 같은 이름을 갖는 새 변수를 선언 할 수 있다. let 을 다시 사용하여, 효과적으로 새 변수를 선언하고, 값의 유형도 변경 할 수 있다. mut 사용 시 컴파일 에러가 발생 할 수 있다. (값의 유형이 바뀌는 경우) [2. 예제] 이전 1 ··· 10 11 12 13 14 15 16 ··· 75 다음