글자 크기

빌드

창업과 자동화 기록 – 아이디어에서 실험, 실패, 수정까지

바둑 좌표계의 미로: SGF, GTP, 그리고 화면 좌표

“Q16에 두세요.” 바둑을 배우면 자연스럽게 익히는 좌표 표기법이다. 가로는 A부터 T까지(I 제외), 세로는 1부터 19까지. 오른쪽 위 귀가 Q16이다. 근데 코드로 바둑판을 다루기 시작하면 — 지옥이 열린다. SGF 파일에는 “pd”라고 적혀 있다. KataGo는 “Q16″을 말한다. 화면에 그리려면 픽셀 좌표가 필요하다. 그리고 이 셋은 전부 다른 규칙을 따른다. 세 가지 좌표계 1. SGF 좌표 SGF(Smart Game 계속 읽기 →

바둑 좌표계의 미로: SGF, GTP, 그리고 화면 좌표 더 읽기"

2패스 분석의 비밀: 빠른 훑기와 정밀 분석

200수짜리 기보를 분석한다.KataGo에게 모든 수를 깊이 분석하라고 시키면 — 10분이 걸린다. 사용자는 기다리지 않는다. 그렇다고 얕게 분석하면? 사활을 틀린다. 죽은 돌을 산 걸로 보고, 80집 차이 나는 바둑을 “백 유리”라고 말한다. 깊이와 속도. 둘 다 포기할 수 없었다.그래서 2패스 분석을 만들었다. 문제: 모든 수가 중요하진 않다 200수 중에 정말 중요한 수는 몇 개나 될까. 대부분의 계속 읽기 →

2패스 분석의 비밀: 빠른 훑기와 정밀 분석 더 읽기"

놓아보기 기능 개발기: AI 추천수를 직접 둬보다

KataGo가 “여기가 좋다”고 말한다.A, B, C 세 가지 추천수가 바둑판 위에 뜬다. 근데 — 왜 좋은지 모르겠다. 승률이 올라간다고? 그래서? 그 다음엔 뭘 두는 건데? AI 추천수를 ‘보는’ 것과 ‘이해하는’ 것 사이에는 간극이 있다. 그 간극을 메우려면 직접 둬봐야 한다. 추천수에 돌을 놓고, 그 뒤로 어떤 변화가 펼쳐지는지 따라가 봐야 한다. 그래서 “놓아보기” 기능을 만들었다. 계속 읽기 →

놓아보기 기능 개발기: AI 추천수를 직접 둬보다 더 읽기"

AI를 만들다 코치를 만들게 된 이유

바둑 AI 프로젝트를 시작한 지 반년이 지났다.그 사이 블로그에 글을 열 개 썼다. MCTS 알고리즘을 설명했고, 자가학습의 한계를 기록했고, KataGo를 연동했고, Streamlit과 씨름했다. 어느새 “늦깎이 바둑코치”라는 앱이 실제로 돌아가고 있다. 이쯤에서 한 번 돌아보려 한다.어떻게 여기까지 왔는지. 그리고 무엇을 배웠는지. 처음엔 AI를 만들고 싶었다 AlphaGo가 이세돌을 이긴 뒤로 바둑을 배우기 시작한 늦깎이다. AI가 바둑을 정복했다는데, 계속 읽기 →

AI를 만들다 코치를 만들게 된 이유 더 읽기"

화이트데이 포토블록 1

화이트데이 선물로 만들어 본 포토블록

화이트데이가 다가오면 늘 비슷한 풍경이 펼쳐진다. 초콜릿 사탕 꽃다발 인형 예쁘긴 하지만, 조금은 익숙한 선물들이다. 그래서 이번에는 조금 다른 걸 만들어 보고 싶었다. “기억을 남기는 선물.” 그 생각으로 작은 블록 하나를 만들어 봤다. 포토블록을 만들게 된 이유 나는 가끔 이런 생각을 한다. 사진은 많은데정작 눈에 보이는 곳에 있는 사진은 거의 없다. 대부분의 사진은 휴대폰 속에 계속 읽기 →

화이트데이 선물로 만들어 본 포토블록 더 읽기"

늦깎이 바둑코치, 실전 테스트 리포트

MVP를 만들고 나면 뿌듯함이 찾아온다. “드디어 돌아간다!” 하지만 진짜 테스트는 그 다음이다. 직접 둔 기보를 올려보는 순간, 개발할 때는 보이지 않던 것들이 쏟아져 나온다. 오로바둑이랑 왜 다르게 생겼지? 첫 번째 위화감은 바둑판 방향이었다. 나는 오로바둑에서 주로 바둑을 둔다. 그런데 KaiGo Coach에서 내 기보를 열면 판이 180도 돌아가 있었다. 백을 잡았을 때 “백 시점”으로 보여주려고 회전시킨 계속 읽기 →

늦깎이 바둑코치, 실전 테스트 리포트 더 읽기"

수순 복기 기능을 만들며 겪은 Streamlit의 함정들

단순한 요구사항 300수짜리 기보가 있다. 1수부터 300수까지 넘겨보고 싶다. 필요한 건 세 가지. 슬라이더 (드래그로 이동) 버튼 (◀ ▶ 하나씩 이동) 키보드 단축키 (방향키로 이동) 간단해 보였다. Streamlit이면 금방 만들겠지. move = st.slider(“수순”, 0, 300, value=0) 슬라이더 완성. 5분 걸렸다. 그리고 지옥이 시작됐다. 첫 번째 함정: 버튼이 슬라이더를 못 바꾼다 “다음 수” 버튼을 만들었다. if 계속 읽기 →

수순 복기 기능을 만들며 겪은 Streamlit의 함정들 더 읽기"

AI 추천수를 바둑판에 그리기까지

텍스트의 한계 KataGo 연동에 성공하고 나서, 추천수를 이렇게 보여줬다. 💡 AI 추천수: A. Q16 (승률 54.2%) B. D16 (승률 53.8%) C. R14 (승률 53.1%) 틀린 건 아니다. 정보는 다 있다. 그런데 바둑을 아는 사람은 알 것이다. Q16이 어디인지 머릿속으로 변환해야 한다는 걸. “Q니까… I를 빼면… 16번째 줄이니까…” 이건 복기가 아니라 수학 문제다. 바둑판 위에 직접 계속 읽기 →

AI 추천수를 바둑판에 그리기까지 더 읽기"

드디어 진짜 AI가 붙었다: KataGo 연동기

목업의 한계 첫 번째 버전을 만들 때, 나는 가짜 데이터를 썼다. 승률 변화? 랜덤. 전환점 감지? 하드코딩. AI 추천수? 없음. “일단 돌아가는 것”이 목표였으니까. MVP라는 이름으로 스스로를 납득시켰다. 하지만 내 바둑을 분석한다면서 AI가 진짜로 보지 않는다는 건, 코치 앱이라는 이름이 무색한 일이었다. KataGo를 선택한 이유 바둑 AI 하면 AlphaGo가 떠오르지만, 일반인이 쓸 수 있는 건 계속 읽기 →

드디어 진짜 AI가 붙었다: KataGo 연동기 더 읽기"

늦깎이 바둑코치, 벽을 만났다

MVP가 나왔다. URL도 생겼다. 내 기보를 올리면 분석 화면이 뜬다. 그런데 직접 써보니 문제가 보였다. 첫 번째 벽 20년치 기보를 꺼낼 수가 없다. 나는 20년 동안 오로바둑에서만 바둑을 뒀다. 태블릿으로, 모바일로, 수천 판을 뒀다. 그런데 이 앱은 기보 내보내기를 지원하지 않는다. SGF 파일로 추출하는 버튼도 없다. 웹사이트에서 다운로드하는 기능도 없다. 클라우드 동기화도 없다. 20년치 데이터가 계속 읽기 →

늦깎이 바둑코치, 벽을 만났다 더 읽기"