Rustacean & Pythonista
안녕하세요!
저는 서울대 출신으로 외국계 SW회사에 재직중인 백엔드 개발자입니다. 어려운 취업 시장에서 여러분께 작은 도움이 되고 싶습니다.
🪄 이런 내용을 많이 궁금해하세요:
- 파이썬/러스트 백엔드 개발자가 되고싶어요. 괜찮을까요?
- 파이썬/러스트로 어떤 분야에 취업할 수 있나요?
- 외국계 회사에 취업하려면 어떤 역량이 중요한가요?
🔥저의 자세한 이력은 아래 이력서를 확인하세요.
✨ 멘토링 신청 시 간단한 사전 질문이 제공됩니다. 멘토링 전까지 준비해주시면 좀더 유익한 대화를 나눌 수 있습니다 👍
# 🙏
> 외부 강의, 레슨 등으로 선택해주신 시간에 진행이 어려울 수 있습니다. 아래 링크에서 시간 "확인"만 하시고 (예약X) 인프런에서 원하는 시간대 선택해주시면 좋습니다!
강의
수강평
- 세상에서 제일 쉬운 러스트 프로그래밍
- 세상에서 제일 쉬운 러스트 프로그래밍
게시글
팀프로젝트
슈퍼패스트 함께 도전하실 클라이언트/아트/기획 구합니다!
- 0
- 0
- 98
질문&답변
메모리 안전성에 대한 질문
하나의 메모리 주소에 대해서 단 하나의 접근자만 접근을 허용한다는 의미입니다. 예를 들어 하나의 값에 대해 여러 개의 포인터를 실제로 가지고 있더라도, 해당 메모리 주소에 접근하고 값을 읽고 수정하는 과정을 모두 atomic 하게 처리합니다. 물론 이는 어디까지나 safe 러스트의 이야기이고, unsafe 러스트로 들어가면 직접 메모리 주소에 접근하는 C 스타일 포인터처럼 사용도 가능합니다. 결론적으로 러스트에서 제공하는 문법과 도구들만 사용한다면 항상 원자적 연산이 보장된다고 이해하셔도 좋을 것 같습니다.
- 0
- 1
- 37
질문&답변
러스트로 파이썬 패키지 만들기 실습을 해보면 에러가 발생합니다
안녕하세요, pyo3가 버전이 올라가면서 생긴 문제입니다. 먼저 lib.rs는 다음과 같이 수정하세요. use pyo3::prelude::*; fn _run(n: u64) -> u64 { match n { 0 => 0, 1 => 1, _ => _run(n - 1) + _run(n - 2), } } #[pyfunction] fn run(n: u64) -> PyResult { Ok(_run(n)) } /// A Python module implemented in Rust. #[pymodule] fn fibonacci(_py: Python, m: &Bound) -> PyResult { m.add_function(wrap_pyfunction!(run, m)?)?; Ok(()) }그리고 Cargo.toml 은 다음과 같습니다(피처만 추가하셔도 됩니다)[package] name = "fibonacci" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] name = "fibonacci" crate-type = ["cdylib"] [dependencies.pyo3] version = "0.23.3" features = ["extension-module"]이제 패키지가 잘 빌드되고 파이썬에서도 함수 호출이 정상적으로 기능합니다. Python 3.12.6 (main, Sep 15 2024, 11:07:06) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import fibonacci >>> fibonacci.run(3) 2 >>> fibonacci.run(3000)
- 1
- 1
- 124