본문 바로가기

Programming216

Rust 의 type : Some 에 대해.. Rust 언어에서 Some은 Option 열거형의 한 가지 값으로, 값이 있음을 나타냅니다. Option 열거형은 Rust에서 값이 있을 수도 있고 없을 수도 있는 값을 나타낼 때 사용됩니다. Some 값은 다른 값으로 래핑됩니다. 예를 들어, Some(5)는 5라는 값이 있음을 나타내며, Some("hello")는 문자열 "hello"가 있음을 나타냅니다. Some은 보통 패턴 매칭과 함께 사용됩니다. 예를 들어, 다음은 Option 열거형에서 Some 값을 추출하는 방법입니다: let x: Option = Some(5); match x { Some(n) => println!("The value of x is {}", n), None => println!("x is not set"), } 위 코드는 x.. 2023. 3. 10.
maturin, PyO3 - Rust 를 Python 에서 사용하자 Maturin 은 Rust 기반 Python 패키지를 구축하고 게시하는 도구이다 PyO3는 Python에서 rust코드를 실행할 수 있고, 반대로 rust에서 python 코드를 실행할 수 있게 도와주는 crate이다 // python 가상환경 활성화하고, 가상환경에 maturin 설치 $ pip install maturin $ mkdir temp & cd temp // rust project 시작, 위에서 만든 temp로 이름이 지정된다. $ maturin init -b pyo3 // 아래 파일들이 생성된다. rust 파일은 src/lib.rs // Cargo.toml, pyproject.toml 의 name을 변경하면 패키지 명을 변경할 수 있다 $ ls Cargo.toml pyproject.toml.. 2023. 3. 9.
Rust 시작하기 책읽고, 공부하기 보다 먼저, rust 설치 / 환경셋팅하기 $ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh // 프로젝트 폴더 만들기 $ mkdir temp & cd temp // 초기화 $ cargo init & ls // cargo 환경 활성화 $ . ~/.cargo/env // 프로젝트 생성 $ cargo new rust_test // 빌드 $ cargo build // 릴리즈 모드로 빌드 $ cargo build --release // 실행 $ cargo run // 포멧터 $ cargo fmt // docs html 문서화 - 브라우저 open $ cargo doc --open 2023. 3. 8.
try except를 깔끔하게 사용하기 - suppress 간혹 아래처럼 예외발생 후 로그나 다른 처리없이 pass를 사용하는 경우가 생긴다. 아래처럼 사용해도 상관없지만, 파이썬은 suppress를 사용하면 깔끔하게 된다. try: code... except Exception: pass from contextlib import suppress with suppress(Exception): code... 2023. 1. 31.
git push 전에 할일 - PR 시 conflict PR 후 conflict 가 나면 웹상에서 확인/수정하기가 쉽지 않다, 로컬에서 미리하는 방법 정리한다 전체 fetch 받기 origin/develop 으로 rebase 하기 - conflict 발생 : 로컬에서 충돌을 해결하고 git push 그러면 PR하고 머지 시 충돌이 발생하지 않는다. 어디에서 충돌을 해결하느냐의 문제이긴 한데, 나는 로컬에서 해결이 IDE로 보면서 훨 편해서, 이렇게 하고 있다. > git fetch -a && git rebase origin/develop && git push --set-upstream 2023. 1. 25.
AWS 슬랙 알림이란? AWS 솔루션들의 변경사항을 슬랙알림으로 받고 싶다. 로그인, codecommit 커밋, deploy, PR, s3, guardduty, waf 에 대한 알림추가하는 방법을 알려준다 AWS의 각 이벤트마다 슬랙으로 알림을 보내고 싶다면, 크게 2가지만 하면 된다. EventBridge 등록하기 & lambda 함수 만들기, 추가적으로 SNS등록을 해야할 수도 있다 EventBridge 룰 생성 GuardDuty -> CloudWatch Events -> EventBridge -> SNS -> Lambda EventBridge > rule > event pattern guard duty { "source": ["aws.guardduty"], "detail-type": ["GuardDuty Finding"].. 2023. 1. 19.