10월 29일 PT 기준으로 해외 AI 소식과 개발자 논의 열 가지를 골랐다. 새 발표뿐 아니라 최근 다시 논의된 연구와 제작 사례를 포함했다. 공개 가중치와 실제 이용 가능 범위, 발표자의 성능 주장과 독립적으로 확인한 사실을 구분해 읽는다. 절대 발표일을 확인하지 못한 ...
MQTT 수신 확인 뒤에도 남는 업무 처리의 책임
메시지를 보냈고 수신 확인도 받았다면 일이 끝났다고 생각하기 쉽다. 하지만 통신 상대가 메시지를 받았다는 말과 우리 프로그램이 그 내용을 업무에 반영했다는 말은 다르다. MQTT의 전달 품질을 읽을 때에도 이 둘을 구분해야 한다. 프로토콜의 보장을 데이터베이스의 처리 보장으로 넓혀 읽지 않는 ...
연습용 서버에 첫 이용자가 생겼을 때 적어 둘 운영 메모
혼자 쓰던 작은 서버에 다른 사람이 접속하기 시작하면 같은 프로그램도 다르게 느껴진다. 잠깐 고쳐 볼 수 있었던 설정이 누군가의 접속을 끊을 수 있기 때문이다. 규모가 작다고 운영의 질문까지 사라지는 것은 아니다. 나는 이 전환을 거창한 인프라 구축보다 짧은 운영 메모에서 ...
회원 이름 20자, 무엇을 한 글자로 셀 것인가
입력창에 이름을 스무 자까지 쓸 수 있다고 적었다고 하자. 사용자는 보이는 글자를 세겠지만 프로그램은 다른 단위를 셀 수 있다. 이모지 하나를 넣자 남은 글자 수가 둘 줄어든다면 누구의 계산이 틀린 걸까. 검증 라이브러리를 고르기 전에 제품이 말하는 “한 글자”부터 정해야 ...
오래된 파일을 열기 전에, 실행과 보존을 나누어 생각하기
오래전에 만든 파일을 발견하면 먼저 열 수 있는 프로그램부터 찾게 된다. 익숙한 창이 다시 뜨면 자료도 되살아난 듯한 느낌이 들 것이다. 하지만 프로그램을 실행하는 일과 원래 자료를 보존하는 일은 다르다. 나는 복구를 시작하기 전에 어떤 파일을 그대로 남기고 무엇을 확인할지부터 ...
좋았던 프로그램을 떠올릴 때, 잃어버리지 않을 작업부터
새 프로그램이 복잡하게 느껴지면 예전 도구가 더 나았던 것 같기도 하다. 메뉴가 단순했고 설명 없이도 쓸 수 있었다는 기억이다. 하지만 편리함에 대한 기억과 작업을 얼마나 안전하게 남길 수 있었는지는 별개의 질문이다. 나는 도구를 비교할 때 기능 수 옆에 “중간에 멈추면 ...
AI가 쓴 코드를 이해하는 연습, 고장 난 지점을 좁혀 보기
AI가 코드를 길게 만들어 주면 읽어야 할 문서도 함께 늘어난다. 모든 줄을 혼자 다시 작성할 필요는 없을 것이다. 그렇다고 실행 결과가 이상할 때 어디를 봐야 하는지도 모르면 판단을 통째로 맡기게 된다. 나는 “코드를 이해했다”는 말을 작은 진단 문제로 바꿔 보는 ...
장비 안의 문자열 하나로 무엇까지 알 수 있을까
오래된 장비를 살펴보다 익숙한 파일 이름이나 운영체제 이름을 발견하면 퍼즐이 풀린 듯한 기분이 들 수 있다. 하지만 이름이 남아 있다는 것과 실제로 그 기능이 실행된다는 것은 다르다. 기술 조사를 읽을 때 나는 발견한 사실과 그 사실에서 추정한 내용을 같은 문장에 ...
지도에서 커 보이는 나라, 먼저 분모를 읽어야 하는 이유
어떤 지도는 익숙한 대륙을 낯선 크기로 보여 준다. 땅의 면적 대신 인터넷 주소 수를 기준으로 나라의 크기를 바꾸면 그렇다. 눈에 잘 들어오는 시각화일수록 첫인상이 강하다. 그래서 나는 크게 보인다는 감상을 적기 전에, 그 크기가 무엇을 나눈 결과인지부터 확인하고 싶다. 주제를 ...
로컬 데이터 테스트를 통과해도 권한 검사는 남는다
데이터 작업을 고칠 때마다 원격 환경을 기다려야 한다면 작은 수정도 무거워진다. 로컬에서 쿼리와 파일 처리를 확인할 수 있는 도구가 반가운 이유다. 다만 로컬에서 결과가 맞았다는 말에 “실제 배포에서도 안전하게 동작한다”는 의미까지 담으면 곤란하다. 결과를 계산하는 능력과 누가 그 계산을 해도 ...
