logo
Nostrss
Published on

[Project] 나만의 Alphago 만들기

Authors

LLM을 이용해서 만들고 싶은 프로젝트가 생겼다. 그리고 회사에서 그동안 Vue를 사용했었는데, 오랜만에 React도 사용해서 프로젝트를 해볼려고 생각중이다.

내가 생각한 프로젝트는 인간 VS LLM 또는 LLM VS LLM 대결이다.

그리고 그 첫번째 종목으로 바둑을 생각해봤다.

그렇다면 내가 평소에 쓰던 ChatGpt, Claude, Gemini 등과 바둑을 두면 이길 수 있을까?

ChatGptClaude가 바둑을 두면 누가 이길까?

그렇다 LLM과 바둑을 두는 사이트를 만드는 것이 이번 나의 개인 프로젝트 목표이다.

프로젝트 진행 순서

1. 사람 VS 사람

사람이 두는 바둑을 구현하자.

LLM을 바로 연동하지 말고 일단 바둑 그 자체를 구현하자.

단, 나중에는 사람이 아니라 LLM이 바둑을 둘 수 있도록 고려하면서 만들어 보자.

2. 사람 VS LLM

이제 LLM을 연동하자.

일단은 LLM 1개만을 연동하자. 사람 VS LLM 의 대결이 가능하도록 만들어보자.

3. LLM VS LLM

이제는 LLM 2개를 연동하자. LLM VS LLM 의 대결이 가능하도록 만들어보자.

4. 선택가능한 LLM의 개수를 늘려보자.

먼저 이번 프로젝트에 사용할 Skill을 정해보자.

이번 프로젝트의 기술적인 목표

TDD

  • 테스트 코드를 작성해가면서 개발을 하자
  • 배포 시 테스트 코드를 실행하고 테스트를 통과하면 배포가 가능하도록 만들자.

모노레포의 공유라이브러리를 활용하자.

  • 현재 나는 Turbo 레포를 사용하고 있는데, 이 레포를 사용하면 공유 라이브러리를 사용할 수 있다.
  • 컴포넌트, util등은 공유 라이브러리에 작성하고 프로젝트에서 사용할 수 있도록 만들자.

기술 스택 선택하기.

필수 스택

  • Typescript
  • Next.js : React를 사용해도 되지만, LLM을 연동할때 api 키가 많아 질것 같다. 그래서 실제 LLM과 api 통신은 Next의 api 라우트에서 처리해야 해서 선택했다.
  • TailwindCSS : Next.js에 기본으로 포함되어 있어서 선택했다.

선택 스택

  • Tanstack Query
  • Zustand
  • Zod
  • Shadcn UI
  • jest

만들다 보면 더 추가가 되겠지만 일단 생각나는 것은 이정도이다.

LLM 선택하기

  • Gemini
  • OpenAI
  • Claude
  • Grok
  • Llama : api가 있는지 확인이 필요할 것 같다.

더 알아봐야 할 내용

  • 바둑 규칙을 내가 잘 모른다. npm 패키지가 있으면 좋을텐데 서치를 해봐야 할 것 같다.
  • Testing 라이브러리 중 어떤 것을 사용할지 고민이 필요할 것 같다.