본문 바로가기

whole view378

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.
CTO & Tech leader 조그마한 글로벌 스타트업에서 CTO 역을 하고 있다. CTO지만 테크리더도 하고, 개발도 하고, 보안도 하고, 데브옵스도 하고, 데이터도 하고 있다. 스타트업이니까 ^^ 내가 생각하는 각 직책의 업에 대해 정리해 보았다, 간단히 정의하면 CTO는 "사업과 기술을 고려해서 결정을 내리는 역할"이고, 테크리더는 "기술적으로 고민하고 팀과 같이하며 제품의 품질을 보장하는 개발자"이다 CTO 란? 관리자 업무만 한다면 CTO가 아니다, 부서장, 연구소장 등이 맞는 직책일 것이다. CTO라면 기본적으로, Tech 커리어에서 벗어나지 않고 꾸준히 개발자로 성장해왔어야 하고, 아키텍트 업무도 꾸준히 해서 최고의 아키텍트가 되어 있어야한다. 전략을 결정하고, 비지니스에 기술적인 자신의 관점을 제시해야한다. 무엇을 구축.. 2023. 1. 27.
스타트업의 스톡옵션 이란? 스톡옵션 : 주식의 시장가와 상관없이 정해진 수량의 주식을 특정 가격에 살 수 있는 권리를 주는 방식 Strike Price (계약 가격) 자기 지분만큼의 주식을 구입할 수 있는 가격, 옵션이 발행된 시점의 주가와 연관됨 Vesting Period (행사 기간) 실제 그 옵션을 행사할 수 있을 때까지의 시간 Expiration Period (만료 기간) 보통 10~20년 정도로 이 기간이 지나면 그 옵션을 못 쓰게 된다 스톡옵션 부여 & 행사 스톡옵션 부여 신주인수나 주식매수를 선택할 수 있는 ‘권리’를 부여한다는 의미, 계약을 체결하고, 계약서를 작성해야 효력이 발생함 스톡옵션 행사 신주를 인수하거나 회사의 주식을 매수한다는 의미, 행사한 스톡옵션의 수만큼 스톡옵션은 소멸하고, 그 만큼 주주로서의 권리.. 2023. 1. 26.
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.