글자 크기

latebloomerhost

바둑 AI를 만들며 배운 것: “덜 가본 길에 가산점을 주는” 알고리즘

늦깎이연구소 | 바둑 AI 개발기 #2 시작은 단순한 호기심이었다 카타고(KataGo). 알파고 이후, 개인도 만들 수 있는 오픈소스 바둑 AI의 이름이다. 나는 개발자가 아니다. 하지만 궁금했다. “AI는 어떻게 ‘생각’하는 걸까?” 그래서 직접 만들어보기로 했다. 9×9 미니 바둑판으로 시작하는 AI. Claude라는 AI의 도움을 받아서. 291줄의 코드, 그 안에 담긴 철학 프로젝트의 심장부는 mcts.py라는 파일이다. MCTS — 몬테카를로 계속 읽기 →

바둑 AI를 만들며 배운 것: “덜 가본 길에 가산점을 주는” 알고리즘 더 읽기"

불편함에서 시작한 바둑 AI

나는 바둑을 좋아한다. 이기고 지는 걸 떠나서, 그 19×19의 정사각형 안에서 생각이 부딪히는 느낌을 좋아한다. 그런데 요즘 바둑 AI를 쓰다 보면 광고가 붙어 있고, 기능이 막혀 있고, 분석은 유료로 전환된다. 하루에 한 번쯤은 이런 생각이 들었다. “그냥 내가 하나 만들면 안 되나?” 거창한 이유는 없었다. 연구도 아니고, 창업도 아니고, 그냥 쓰기가 불편했기 때문이다. 취미가 프로젝트가 계속 읽기 →

불편함에서 시작한 바둑 AI 더 읽기"

둘째의 유치

둘째의 유치 전쟁, 아직 끝나지 않았다

둘째의 유치가 또 흔들린다. 앞니 옆에 있는 이빨. 손가락으로 살짝 건드리면 앞뒤로 출렁거린다. 거의 빠질 것 같은데 아직 안 빠진다. 이게 며칠째다. “아빠, 이거 뽑아줘.” 근데 막상 손 대려고 하면 도망간다. 무섭다고. 아프다고. 그러다 또 와서 “뽑아줘” 한다. 무한 반복. 첫째 때는 안 그랬다. 걔는 좀 담담했다. 유치 빠지면 “어 빠졌네” 하고 끝. 피 나도 계속 읽기 →

둘째의 유치 전쟁, 아직 끝나지 않았다 더 읽기"

보이게 만드는 건, 결국 디테일이었다

요즘 나는 ‘죠비엣(Choviet)’ iOS 앱을 만들면서 한 가지를 자주 느낀다. 기능이 되는 것과 제품처럼 느껴지는 것 사이에는, 생각보다 깊은 강이 하나 흐른다는 것. Turbo Native를 붙이는 작업은 딱 그 강을 건너는 일이었다. 처음엔 “웹을 앱으로 싸기만 하면 되겠지” 같은 순진한 마음이었다가, 막상 해보니 이건 ‘포장’이 아니라 경계면(네이티브 ↔ 웹)을 조각하는 일이었다. 그리고 그 강을 건너는 계속 읽기 →

보이게 만드는 건, 결국 디테일이었다 더 읽기"

태백산 정상 가족 사진

태백산 꼭대기에서 연을 날리다

아이들에게 겨울 태백산을 보여주고 싶었다. 만 7살, 5살. 아직 어리다고 할 수도 있지만, 나는 오히려 지금이라고 생각했다. 대자연 앞에 서 보는 경험은 빠를수록 좋다. 머리가 아니라 몸이 기억하는 것들이 있거든. 눈썰매도 타고, 용연동굴도 구경하고, 마지막으로 태백산에 올랐다. 2시간이면 올라갈 길을 6시간 걸려서 올라갔다. 아이들 발이 작으니까. 눈길이 미끄러우니까. 쉬고, 눈 만지고, 또 쉬고. 근데 말이야, 계속 읽기 →

태백산 꼭대기에서 연을 날리다 더 읽기"

화이트데이 포토블록 1

해골이 책을 읽는 이유: 디자인을 찾는 늦깎이의 사유

테무에서 티셔츠를 봤다. “MILANO ITALIA” 글씨 하나 박힌 티셔츠가 1만 3천 개나 팔렸다. 9천 원짜리. 나도 DTF 프린터가 있으니까 저 정도는 만들 수 있지 않을까. 그런데 문제가 하나 있었다. 나는 디자인을 못 한다. 손이 아니라 머리로 포토샵도, 일러스트레이터도 손에 익지 않는다. 48세에 아빠가 됐고, 50세에 사업을 시작했다. 코딩은 배웠지만 그림은 그려본 적이 없다. 그래서 AI한테 계속 읽기 →

해골이 책을 읽는 이유: 디자인을 찾는 늦깎이의 사유 더 읽기"

조비엣 빌드로그 9주차: 문법을 지키면, 길이 열린다.

8주차에 우리가 한 건 “길”을 만든 거였지. 탭은 탭대로, 모달은 모달대로, 로그인은 replace로— 네이티브가 길을 잃지 않게. 근데 길이 있어도, 표지판 문법이 틀리면 네이티브는 조용히 못 본 척 해버린다. (진짜 무섭다. 에러도 안 내고 “그냥 무시”함.) 그래서 9주차는 한 줄로 요약돼: PathConfiguration의 문법을 ‘정식’으로 바로잡아서, 네이티브가 믿고 따라오게 만들었다. 1) PR #45 (B.6) — “혼종 계속 읽기 →

조비엣 빌드로그 9주차: 문법을 지키면, 길이 열린다. 더 읽기"

조비엣 빌드로그 8주차: 웹이 흔들리면, 네이티브는 무너진다.

이번 주는 기능을 더 얹는 주가 아니었다. 오히려 반대였다. 흔들리는 걸 고정했다. Turbo Native를 붙이려면, 앱은 먼저 한 가지를 약속해야 한다. “이 화면은 탭으로 간다.” “이 화면은 모달로 뜬다.” “이 화면은 로그인처럼 갈아끼운다(replace).” 이 약속이 없으면, 네이티브 쉘은 길을 잃는다. 8주차는 그 약속을 코드로 박아 넣은 주였다. 1) PR #42 — “모달은 사용자가 닫는 게 계속 읽기 →

조비엣 빌드로그 8주차: 웹이 흔들리면, 네이티브는 무너진다. 더 읽기"

조비엣 빌드로그 7주차: 신뢰는 기능이 아니다. 표정이다.

우리가 5~6주차에 한 일은, 사실 하나였다. 앱이 길을 잃지 않게 만들기. 탭은 탭답게, 모달은 모달답게, 로그인은 replace답게. 이제 조비엣은 “앱처럼 보이는 웹” 단계는 넘어섰다. 그래도 아직 한 가지가 남아 있다. 사용자가 거래 직전에 드는 질문. “이 사람… 믿어도 돼?” “이 거래… 안전해?” 7주차는 이 질문에 답하는 주다. 코드로 답하는 게 아니라, UX의 표정으로. 1) 7주차 계속 읽기 →

조비엣 빌드로그 7주차: 신뢰는 기능이 아니다. 표정이다. 더 읽기"