rewritten in 2023.12.14 좋아요 1위의 언어, 안전한 거 말고 다른 건? Rust 진짜 좋아요. 정말 좋습니다. 스택오버플로우에서 5년 연속으로 가장 사랑받는 언어 1위가 되기도 하고, 업계 도입률과 순위도 점차 올라가고 있습니다. 아직은 살짝은 이르지만요. 저는 매번 Rust가 좋다고 얘기하고 싶어합니다. 하지만 많은 글들이 "메모리 안전성"에 중점을 두고 설명하고 있습니다. 하지만 그게 전부는 아닙니다. 그래서 저는 다른 부분에 우선 초점을 맞춰서 설명하고 싶었습니다. C++에서 할만한 실수들이 방지된다 Rust를 사용하면 C++에서 할만한 실수들의 많은 수를 미연에 방지할 수 있습니다. 그건 당연한 겁니다. 입 아플 정도로 많은 곳에서 설명하고 있죠. 저는 굳이 설명하지 않겠습니다..
연동 방법 CMake C++ 프로젝트와 Rust를 연동하는 방법은 몇 가지가 있음 바인딩 코드 자동 생성 관점에서... C -> Rust 바인딩 코드 자동생성: bindgen C C -> Rust + bindgen 로 래핑하는 걸 짰었는데 실패했었고, 그 이유는 install 타겟이 없어서였던걸로. (위 글 읽어보니 install 타겟은 의존성 있는 라이브러리를 다 설치한다고. 없으니까 당연히 링크 에러 나지...) null 포인터 is_null (제일 이해하기 쉬운 방법) libc++ 어쩌죠? println!("cargo:rustc-link-lib=static=stdc++"); dylib도 되고(이게 일반적) 나이틀리에는 minimize 하는 것도 있댔는데 찾아보긴 번거롭네요. cmake 빌드결과는 어..
longhorn: 저장공간 추상화. storageClass를 oci-bv 로 했다가 노드별로 블록 볼륨이 생기는 대참사를 겪지 않을 수 있습니다. 프리티어는 전부 해서 200기가로 제한되어있으니까요. 그냥 longhorn을 설치하면 시스템 볼륨을 사용하게 됩니다. 그건 싫으니까, 노드풀의 노드에 자동으로 별도의 블록 볼륨을 넣어주고 싶죠. 블록 볼륨은 자동으로 삭제되지 않으니까 데이터 보존 면에서도 혹시나 모를 사태를 방지할수도 있구요. 물론 가이드에서 언급하는 longhorn 은 리전간 백업을 목적으로 하는 것 같지만 전 그런 건 아무래도 상관없구요... 춘천이 불바다나면 내 데이터는 어차피 끝장이야~ 공식 가이드가 있는데, 어딘가 나사가 빠진 부분이 있습니다. https://docs.oracle.co..
k3s 내장 traefik 사용 설정 변경이 번거로워서 따로 설치합니다. k3s 내장 ServiceLB 는 사용하지 않습니다. MetalLB L2 모드로 대체합니다. k3s 내장 etcd 로 클러스터를 만듭니다. odroid 기기들과 x86 홈서버 (그냥 PC) 를 사용합니다. 저장공간은 OpenEBS + cStor 를 사용합니다. mayastor를 쓰고싶었으나, CPU 사용률이 아직 높은 문제가 있다네요. Odroid 기기에는 Armbian 설치 사유: 공식 우분투 이미지는 커널 버전이 옛날이라 k3s 설치가 안 됨 (cgroups v2 요구, Odroid N2의 공식 우분투 이미지는 4.x 대임) petitboot 로 더 최신버전 우분투를 깐다는 얘기도 있음 (1 petitboot?) (2-1, 2-..
이 글에 낚여서 씀 https://docs.spring.io/spring-boot/docs/2.7.9/reference/html/getting-started.html#getting-started 2. System Requirements Spring Boot 2.7.9 requires Java 8 and is compatible up to and including Java 19. Spring Framework 5.3.25 or above is also required. Explicit build support is provided for the following build tools: 부트 2.7 스프링 8 지원하자나요 ㅠㅠ 댓글까지 막아놓고 이게 뭔 낚시래... 다만 H2 는 문제가 있음. 2.7 릴리즈..
iced 프레임워크의 예시 중 이벤트를 메시지로 매핑하는 부분을 따라하고 있었음 패러미터는 함수를 받는데, 예시 코드에서는 enum variant 를 익명함수가 들어갈 곳에 그냥 넣어놨음 -> 이 시점에서 "뭐지" 그러고 🤯 가 됨 작업하던 코드. InputRegex(String) 은 분명 그냥 enum variant 인데, 함수가 들어가야 할 곳에 들어감. 알고보니 tuple struct 는 동명의 함수도 정의된다더라 (삐빅 정상이었습니다) reddit.com/r/rust/comments/firk1r/tuple_structs_are_functions/ https://stackoverflow.com/questions/58736827/is-it-possible-to-pass-a-tuple-struct-co..
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=254607285 남은 1장과 2장을 마저 해치웠습니다. 서점 갔다가 홀린듯이 사버린 책 중 하나인데, 뭔가를 만들어보려면 어느 지점에서 꼭 막히더란 말이죠. 그런 상황에서 도움이 될 것 같다고 생각했습니다. 각설하고. 2장 - 사용자를 위한 API 디자인하기 1장의 주요 내용은 API 디자인이 왜 중요한지이고, 2장에서는 그걸 어떻게 하는지의 개요를 보여줍니다. 1장에서 그지같은 디자인의 (그냥 봐서는 뭐 하는 물건인지도 알 수 없는) 범용 원격 드론 조종장치로 예시를 들고, 2장은 보다 쉬운 전자레인지로 예시를 듭니다. 예시가 중요한 건 아니고 거기에 담긴 게 중요한데... 2장 목차부터 정리하죠. 2.1 일상..
def make_greeter(): def nice_to_meet(someone): print(f'hello, {someone}!') greeter_list = [] for name in ['길동', '둘리', '또치']: greeter_list.append( lambda: nice_to_meet(name) ) return greeter_list my_greeters = make_greeter() for greeter_fn in my_greeters: greeter_fn() # 결과: # hello, 또치! # hello, 또치! # hello, 또치! 나 이 스코핑 싫어 약간의 설명: 제 기억이 맞다면 python 은 제어문에 관계 없이 함수 단위로 스코프를 지정할 겁니다. for 문이어도 예외가 없고..
- Total
- Today
- Yesterday
- mvu
- ArchLinuxARM
- rust-lang
- 왜 생각이 안 났지
- Sass
- kotlin당했다
- c++
- gitea
- OStatus
- 토이프로젝트
- C++ FAQ
- K8s
- 오라클 클라우드 인프라
- upbit
- scss
- javascript
- Godot Engine
- ActivityPub
- pdf.js
- Oracle Cloud Infrastructure
- 쿠버네티스
- vuex
- C#
- 시스어드민
- 업비트
- pleroma
- 개발기록
- exercism
- 마스토돈
- 오라클 클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |