대화 찾기
모든 대화
UUPS 업그레이드 V1에서 V2로: deviceCount는 0인데 devices 매핑은 멀쩡하고 registrationFee는 37이에요
로컬 hardhat 노드에서 FleetRegistry 프록시를 업그레이드했어요. V1에는 디바이스가 37개 등록돼 있었어요. scripts/upgrade.js로 V2 구현체를 배포하고 프록시에서 upgradeToAndCall…
using 선언 리팩터링은 Dispose를 Publish() 뒤로 미룬다
문법은 짧아지고 수명은 길어져요. C#의 using 선언은 변수가 선언된 스코프가 끝날 때 해제해요. 리팩터링이 단순 정리처럼 보일 때는 이 스코프를 놓치기 쉬워요. 메서드 본문에 바로 놓인 using 블록에서 input을…
ON CONFLICT DO NOTHING과 재시도된 작업
유니크 키 충돌마다 "이미 접수됨"으로 답하면 서로 다른 세 상황이 가려져요. 서버 두 대, 요청 식별자를 키로 둔 PostgreSQL 테이블 하나. 클라이언트가 시간 초과로 재시도하는데, 페이로드가 바뀌었을 수도 있고 첫…
해시 패턴에 region을 넣었는데 case/in이 eu-west restock을 통과시켜요
원단 가게용 작은 재고 동기화 스크립트를 관리하고 있어요. 이벤트를 읽어서 SKU별로 누적 합계를 유지해요. 가게는 자기 리전인 us-east만 신경 쓰고, 이 값은 config/shop.yml에서 와요. 그래서 restoc…
asyncio.gather 3.9에서 task 하나가 실패해도 다른 하나는 계속 돌면서 파일을 써요
클라이언트 서버가 3.9에 묶여 있어서 TaskGroup을 못 쓰고, 이름 붙인 태스크 두 개에 gather를 썼어요. 문서에서 하나가 예외를 던지면 나머지는 취소된다고 읽었는데, 맞죠? 오늘 pier-9의 measureme…
unsafe는 호출 지점이 아니라 extern 블록에 붙는다
Rust 2024는 맨 extern 블록 대신 unsafe extern "C" { ... }를 요구한다. 최근 몇 년 사이 이 언어가 한 작은 문법 변경 가운데 가장 정직하다. 외부 함수를 선언하는 것은 언제나 시그니처에 대…
NOT IN 서브쿼리가 에러 없이 0행을 반환해요, 호스트 5개를 예상했는데요
작은 SQLite 파일로 패치 상태를 계속 관리하고 있고, sqlite3 :memory: < main.sql로 실행해요. 2026-10-01 이전에 마지막으로 패치됐고 활성 유지보수 hold가 없는 호스트를 찾고 싶어요. 활…
설정 언어를 바꾼다고 드리프트가 고쳐지지는 않는다
HCL을 범용 언어로 바꾸자는 얘기는 보통 반복문과 함수로 시작하고, 드리프트가 불만으로 따라붙는다. 드리프트는 언어 문제가 아니다. 실제 리소스가 파일 모르게 바뀌는 것이다. 손으로 키운 디스크 같은 것이고, 같은 목표 상…
age>=18=>allow와 Racket 리더
규칙 작성자들은 age>=18=>allow처럼 공백도 괄호도 없이 쓰고 싶어 해요. Racket 기본 리더는 이걸 심볼 하나로 넘길 수 있어서, 매크로가 철자를 쪼개 읽는 꼴이 돼요. 커스텀 리더라면 토큰 경계를 직접 그을…
parse()에서 ImportFailure를 만드는데 Main에는 안 와요 (exit 2 대신 exit 3이 나와요)
안녕하세요, 지금 이직 사이에 있어서 100줄짜리 프로그램에 헷갈릴 시간은 넘치게 많아요. ledger-import는 세미콜론 CSV를 읽어서 정리된 행을 staging 파일에 써요. 파일 전체가 파싱되지 않으면 stagin…
label(Integer)를 더하면 다시 빌드할 때 label(null)이 깨진다
겉으로 보기엔 작은 변경이에요. 지금 라이브러리에 label(String value)가 있고, 다음 릴리스는 이걸 그대로 두면서 label(Integer value)를 추가해요. 이미 컴파일된 호출 코드는 괜찮아요. 클래스…
한 글자 제한, UTF-16 길이일까 문자소 개수일까
레이블 필드의 text.length <= 1을 에디터 제안이 그래핌 개수 검사로 바꿔 놨어요. 버그 수정일까요, 요구 사항 변경일까요? A, é, 🇰🇷의 UTF-16 길이는 1, 2, 4예요. 여기서 é는 e 다음에 U+…
스트리밍 디코더: 청크 크기가 작을 때만 뒤쪽 레코드에 엉뚱한 필드가 섞이고, 유효한 바이트에서 "malformed at offset N"이 나요
안녕하세요, 클라이언트의 요청 로그 포맷(count 바이트 하나, 그다음 그 개수만큼의 key/value 쌍, 각 쌍은 길이 바이트 하나와 바이트들)을 읽는 작은 디코더를 Rust로 짜고 있어요. 바이트는 소켓에서 제멋대로…
카탈로그를 다시 읽으면 무엇이 남습니까?
슬라이스는 주소와 길이일 뿐입니다. 둘 중 어느 것도 뒤에 있는 할당을 살려 두지 않고, Zig 레퍼런스도 포인터의 유효성과 수명은 프로그래머가 책임진다고 분명히 적고 있습니다. 함수가 슬라이스를 반환한다고 저장 공간의 수명…
hostprobe: 큐 cap은 8, 워커는 4개인데 요청 100개가 전부 202를 반환하고 goroutine이 ~100까지 올라가요
cron이랑 스크립트 몇 개가 /probe?host=NAME으로 POST하는 작은 내부 서비스 hostprobe를 만들고 있어요. 워커 4개, 큐 8, probe는 일단 20초 sleep이에요 (ssh 체크는 나중에 넣을 거…