4 min read

Development Process + TMI

Table of Contents

제가 추구하는 개발 프로세스와 개인 성향을 정리해 둔 문서입니다.

Development Process

AI Tools

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

  1. 25년 12월 기준 Claude Code를 주력으로 사용하고 있습니다.
    • 전반적인 작업을 모두 맡아서 처리하고 있습니다.
    • Subagent, Custom command 등은 잘 활용하지는 않고, 가능하면 Skill을 활용하거나 Raw prompt로 끝내는 방향으로 잡고 있습니다.
  2. Google의 Antigravity를 IDE 겸 보조 AI 도구로 활용하고 있습니다.
    • 프론트엔드 개발과 Planning, 브라우저를 통한 자동화에 강점이 있습니다.
    • 무료로 사용할 수 있는 것도 매력적입니다.
  3. FE 프로토타입에는 v0, Lovable 등 서비스의 무료 플랜을 활용합니다.
    • 코드도 코드지만 UI 디자인을 해결하기 위함입니다.

Development Process

  1. 개발 초기에는 기능 구현에 집중합니다.
    • AI에게 최대한 많은 권한을 주고 작업을 위임합니다. 개인의 부하도 줄이고, 아직까지는 AI의 코드를 통제할 개인 능력이 충분하다고 판단하였습니다.
    • 프로세스도 상당 부분 생략합니다. 규칙을 만들어도 깨지기 쉽고 오히려 프로세스에 매몰되어 생산성이 떨어진다고 판단하였습니다.
  2. 기능 구현이 끝나거나, 코드가 과도하게 복잡해지면 손수 리팩토링을 수행하는 편입니다.
    • 아직까지는 사람이 코드를 보아야 하는 경우도 많고, 고통스럽지만 해 두면 이후 생산성이 높아집니다.
    • 이후 AI에게도 코드베이스 구조를 유지하며 작업하거나, 다른 서비스도 기존 프로젝트를 참고하여 구현 또는 리팩토링을 하도록 유도합니다.
  3. 1번과 2번을 반복하며 코드가 안정화되면 코드를 GitHub로 옮기고, 통상적인 개발 프로세스를 적용합니다.
  4. 중요한 내용은 문서와 GitHub Discussion으로 기록합니다.
    • GitHub Issue가 더 일반적이지만 개인적으로 더 마음에 드는 기능이 Discussion이기 때문입니다. 😊
      • 하지만 GitHub Discussion에 대한 지원이 부족한 것은 사실이고, 오픈소스 중에서는 Discussion 사용을 포기하는 경우도 있었습니다.1
      • 다만 CLI에서 Discussion을 지원하지 않는 문제가 있어 방안을 고민 중입니다.2
  5. 브랜치와 이슈 관리는 Linear을 사용합니다.
    • 무료 플랜으로도 티켓을 지속적으로 정리해 주면 사실상 무제한으로 사용 가능합니다.
    • 경험상 개인 프로젝트에서 히스토리를 세세하게 돌아봐야 하는 경우는 많지 않았습니다.
    • PR Convention 사용을 지향하고 있습니다. 형식은 type: [ticket] description입니다.

Test Code

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

  1. 백엔드는 마크다운 문서로 작성된 테스트 시나리오를 파싱하여 테스트를 실행할 수 있도록 합니다.
    • ty의 테스트 코드를 보고 영감을 받았습니다.
    • 현재 Go 언어로 E2E 테스트와 Type validation을 할 수 있도록 설정해 둔 상태입니다.
  2. 프론트엔드는 Playwright를 활용한 E2E 테스트를 계획 중입니다.
    • Antigravity의 등장으로 테스트에 대한 압박이 줄어들었다고 생각합니다.

Productivity

  1. 코드를 세세하게 적기보다는, 중요한 컨셉과 개념, 고민한 내용을 위주로 기록합니다.
    • 갈수록 고민과 경험, 전체 프로젝트의 흐름과 아키텍처를 짜는 능력이 더 중요해질 것이라 생각합니다.
  2. 자동화와 일반화를 항상 고려합니다.
  3. 멀티태스킹을 지향합니다.
    • AI 도구가 생기면서 마치 게임의 자동사냥을 돌려 놓는 것처럼 한 번에 여러 일을 처리할 수 있게 되었습니다.
    • 단순 작업을 직접 처리하는 경우를 줄이고, 대신 아이디어 구상, 아키텍처 설계, 리뷰 등 고급 작업을 수행합니다.
    • 단, 개인의 성향을 고려하여 적절하게 조절해야 합니다.

Other information

ccusage로 Claude Code 사용량을 확인할 수 있습니다.
MAX Plan에서 한도가 걸릴 일이 흔하지는 않기는 합니다.

Personal TMI

개인적인 성향과 상황입니다. 참고만 해 주세요!

  1. 과거 기록 중 필요하지 않은 건 지우고, Commit 내역도 주기적으로 Squash + Force Push를 하는 편입니다. 당연히 협업할 때는 이렇게 하지 않습니다 😅
  2. 어떤 작업을 할 때 최대한 표준과 참고 자료를 찾되, 조금씩 변형을 가하는 편입니다.
    처음부터 100% 저에게 맞는 것은 거의 없었습니다.
  3. 바퀴를 다시 발명하지 않는 편입니다. 직접 구현하기보다는 도구나 라이브러리가 있다면 가급적 그것을 사용합니다.
  4. 저는 다른 용도로 Windows 컴퓨터도 많이 사용하고 이를 개발에 활용할 때도 있습니다.
    따라서 PowerShell 스크립트를 짜는 등 Windows와 Mac에서 모두 개발이 가능하도록 환경을 구성합니다.

Footnotes

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

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