본문으로 건너뛰기

개발 프로세스

Development with AI

AI는 개발 프로세스 전반에 적극 활용합니다.

  1. 25년 8월 기준 Claude Code가 가장 성능이 좋습니다.
    • 초기 개발과 코드 구조 설계를 Claude Code와 함께 작업합니다.
  2. 개발 초기에는 AI에게 많은 권한을 주고 작업을 위임합니다. 아주 빠르게 기능을 만드는 것이 목적입니다. 어느 정도 구조가 잡힌 후에는 제약을 두고 코드베이스를 유지하면서 작업합니다.
  3. 비교적 구조가 잡힌 후에는 Cursor, Gemini CLI를 같이 사용합니다.
    • 폴더 구조가 잘 잡힌 후에는 어느 정도 낮은 성능의 AI도 작은 작업을 처리할 수 있습니다.
    • Claude Code에만 의존하지 않고, 비용도 절약하기 위함입니다.
    • Gemini CLI를 잘 사용하는 방법을 고민 중입니다.
  4. FE는 v0, Lovable 등 서비스의 무료 플랜을 활용합니다.
    • 코드도 코드지만 UI 디자인을 해결하기 위함입니다.
    • 다른 유용한 AI 도구를 조사 중입니다.

Test Code

테스트 코드와 프로세스를 최소한이라도 잡으면서 작업합니다. 특히 AI가 활용되면서 테스트에 대한 접근성이 올라갔습니다.

  1. 백엔드는 마크다운 문서로 작성된 테스트 시나리오를 파싱하여 테스트를 실행할 수 있도록 합니다.
    • ty의 테스트 코드를 보고 영감을 받았습니다.
    • 현재 Go 언어로 E2E 테스트와 Type validation을 할 수 있도록 설정해 둔 상태입니다.
  2. 프론트엔드는 Storybook, Playwright를 활용합니다.

Git + History management

  1. 초기 개발 동안에는 프로세스를 상당 부분 생략합니다.
    • 만든 규칙도 깨지기 쉽고 오히려 프로세스에 매몰되어 생산성이 떨어진다고 판단하였습니다.
  2. 코드가 안정된 이후에는 코드를 GitHub로 옮기고, 중요한 내용을 이 문서와 GitHub Discussion으로 기록합니다.
    • GitHub Issue가 더 일반적이지만 개인적으로 더 마음에 드는 기능이 Discussion이기 때문입니다. 😊
      • 분명히 GitHub Discussion은 아직 지원이 부족합니다. 오픈소스 중에서는 Discussion 사용을 포기하고 Issue를 사용하는 경우도 있었습니다.1
    • 코드를 세세하게 적기보다는, 중요한 컨셉과 개념, 고민한 내용을 위주로 적습니다.
    • 다만 CLI에서 Discussion을 지원하지 않는 문제가 있어 방안을 고민 중입니다.2
  3. 브랜치와 이슈 관리는 Linear을 사용합니다.
    • 무료 플랜으로도 티켓을 지속적으로 정리해 주면 사실상 무제한으로 사용 가능합니다.
    • 경험상 개인 프로젝트에서 히스토리를 세세하게 돌아봐야 하는 경우는 많지 않았습니다.
    • PR Convention 사용을 지향하고 있습니다. 형식은 type: [ticket] description입니다.

Productivity

  1. MCP와 CLI를 적극 활용합니다.
    • AI 생산성도 높아지고, 자주 수행하는 작업을 CLI로 만들어 두면 불필요한 리소스 낭비가 줄어듭니다.
    • 어디에서나 사용할 수 있고, 개발 역량도 높이기 위해 개인 MCP와 CLI를 제작하여 사용하고 있습니다.
  2. 자동화와 일반화를 항상 고려합니다.
  3. 가끔씩은 직접 정리와 리팩토링을 수행합니다.
    • 당장은 생산성이 떨어지는 것처럼 보이지만, 더 견고한 구조를 만들면 이후 생산성이 높아집니다.
    • 한 번 한다고 끝나는 것은 아니고, 꾸준히 해 주어야 합니다.
  4. 멀티태스킹을 지향합니다.
    • AI 도구가 생기면서 마치 게임의 자동사냥을 돌려 놓는 것처럼 한 번에 여러 일을 처리할 수 있게 되었습니다.
    • 단순 작업을 직접 처리하는 경우를 줄이고, 대신 아이디어 구상, 아키텍처 설계, 리뷰 등 고급 작업을 수행합니다.
    • 단, 개인의 성향을 고려하여 적절하게 조절해야 합니다.

Footnotes

  1. https://github.com/backstage/backstage/issues/20985

  2. https://github.com/cli/cli/discussions/4212