일상적인 개발 워크플로우에서 AI 활용하기

AI는 엔지니어링적 판단을 대체하지 않습니다. 대신, 막혔을 때 해결책을 찾기까지 걸리는 시간을 단축해 줍니다.

AI에게 단순히 "코드를 더 좋게 만들어줘"라고 요청하는 것을 멈추세요. 대신 다음 다섯 가지 실질적인 방법을 사용해 보세요.

1. 성능 병목 지점 찾기

AI를 사용하여 감사(audit)를 위한 체크리스트를 만드세요. 다음과 같은 구체적인 측정 항목을 요청하세요:

  • 데이터베이스 호출 횟수
  • 네트워크 워터폴(waterfalls)
  • 번들 크기
  • RUM 및 서버 타이밍
  • Lighthouse 점수

2. 예상치 못한 테스트 케이스 생성하기

AI에게 함수 시그니처나 명세(spec)를 제공하세요. 그리고 다음을 요청하세요:

  • 경계값 케이스(Boundary cases)
  • 이상한 입력값
  • 레이스 컨디션(Race conditions)
  • 속성 기반 테스트(Property-based testing) 아이디어 이러한 제안들을 실제 테스트로 변환하여 신뢰성을 높이세요.

3. 제약 조건을 활용한 리팩터링

모호한 프롬프트는 좋지 않은 코드를 만듭니다. 구체적인 지침을 사용하세요:

  • "동작을 변경하지 않으면서 순환 복잡도(cyclomatic complexity)를 줄여줘."
  • "순수 함수를 추출하고 부작용(side effects)을 명시적으로 만들어줘."
  • "공개 API는 유지하되 네이밍을 개선해줘." 제약 조건은 결과물을 검토하기 더 쉽게 만듭니다.

4. 문맥에 특화된 설명 요청하기

프로젝트의 세부 정보를 제공하면 AI를 통해 더 빠르게 배울 수 있습니다. 다음과 같이 질문해 보세요:

  • "왜 StrictMode에서 이 React 렌더링이 두 번 발생하나요?"
  • "이 SQL 쿼리 실행 계획을 바탕으로 할 때, 지연의 원인이 무엇인가요?"
  • "이 특정 코드베이스에서 이 유효성 검사를 어디에 두어야 할까요?"

5. 검증 루프 준수하기

AI는 종종 매우 확신에 찬 어조로 잘못된 세부 정보를 생성합니다. 다음 규칙을 따르세요:

  • 컴파일이 된다면, 테스트하세요.
  • 보안과 관련된 내용이라면, 두 번 검토하세요.
  • 사실을 언급한다면, 출처를 확인하세요.

더 나은 결과를 위해 다음 프롬프트 템플릿을 사용하세요:

  • Goal: 달성하고자 하는 것.
  • Context: 사용 중인 언어와 프레임워크.
  • Input: 코드, 로그 또는 에러.
  • Output format: 불렛 포인트, 단계별 설명 또는 diff.
  • Constraints: 성능, 가독성 또는 새로운 의존성 추가 금지.

예시: Goal: API 지연 시간 단축. Context: Node.js 및 Postgres. Input: 엔드포인트 코드 및 쿼리. Output: 5가지 개선 사항 목록. Constraints: 이번 스프린트 내에 스키마 변경 금지.

여러분은 일상 업무에서 AI를 어떻게 활용하시나요?

Source: https://dev.to/imkrunal/using-ai-in-your-daily-dev-workflow-without-the-hype-57b1

Optional learning community: https://t.me/GyaanSetuAi