일상적인 개발 워크플로우에서 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
