개발 프로세스: Git, 리뷰, 테스트, CI/CD, 기술 부채
Git, PR, 코드 리뷰, 테스트, CI/CD, 기술 부채를 AI가 만든 코드를 계속 바꾸고 안전하게 배포하기 위한 협업 습관으로 설명합니다.
소프트웨어는 단순한 코드가 아닙니다. 계속 바뀌는 코드입니다.
그래서 개발 프로세스가 중요합니다.
AI가 코드를 더 빨리 써준다면 프로세스는 덜 중요해지는 것이 아니라 더 중요해집니다. 리뷰, 테스트, 배포 규율 없이 빨라진 코드는 더 빠른 혼란을 만들 뿐입니다.
Git: 협업의 공용어
Git은 팀이 변경사항을 추적하는 표준 방식입니다.
기본 흐름은 이렇습니다.
메인 코드와 분리된 곳에서 작업합니다.
의미 있는 저장 지점을 남깁니다.
다른 사람에게 변경사항 리뷰를 요청합니다.
위험, 명확성, 테스트, 설계를 논의합니다.
작업을 main 브랜치에 합칩니다.
혼자 만드는 사람에게도 이 흐름은 유용합니다. 브랜치는 안전한 실험 공간이고, 커밋은 되돌아갈 저장 지점이며, 풀 리퀘스트(PR)는 배포 전에 스스로 리뷰하는 장소가 됩니다.
코드 리뷰: 평가가 아니라 안전장치
코드 리뷰는 내 실력을 공개적으로 평가받는 자리가 아닙니다.
코드를 더 안전하게 만드는 구조화된 방법입니다.
좋은 리뷰는 이런 질문을 합니다.
- 의도가 분명한가?
- 예외 상황을 다뤘는가?
- 비밀값이 보호되는가?
- 사용자 데이터가 안전한가?
- 위험한 부분에 테스트가 있는가?
- 대안보다 단순한가?
- 3개월 뒤 다른 사람이 이해할 수 있는가?
테스트 피라미드
테스트는 안전망입니다. 모양이 중요합니다.
여기서 Unit은 단위 테스트, Integration은 통합 테스트, E2E(End-to-End)는 사용자가 실제로 밟는 흐름을 끝까지 확인하는 테스트입니다.
| 층 | 검사하는 것 | 양 | 이유 |
|---|---|---|---|
| Unit | 함수 하나 또는 작은 모듈 | 많이 | 빠르고 싸다 |
| Integration | 여러 조각이 함께 작동 | 적당히 | 연결 문제를 잡는다 |
| E2E | 실제 사용자 흐름 | 소수 | 느리지만 현실적이다 |
AI가 만든 코드는 테스트를 덜 해도 되는 것이 아니라 더 해야 합니다. 겉으로는 확신 있게 보이지만 예외 상황을 숨길 수 있습니다.
CI/CD: 자동 컨베이어 벨트
CI/CD는 빌드, 테스트, 배포를 둘러싼 자동화입니다.
**CI(Continuous Integration, 지속적 통합)**는 이 변경이 나머지 코드와 안전하게 합쳐지는지 확인합니다.
**CD(Continuous Delivery/Deployment, 지속적 전달/배포)**는 이 변경을 안정적으로 배포할 수 있는지 확인합니다.
초보자 버전:
- GitHub에 코드를 푸시합니다.
- 린트와 테스트를 실행합니다.
- 앱을 빌드합니다.
- 미리보기 배포를 만듭니다.
- 미리보기 배포를 확인합니다.
- 병합합니다.
- 프로덕션에 배포합니다.
이 흐름은 배포를 큰 사건이 아니라 반복 가능한 과정으로 만듭니다.
기술 부채: 소프트웨어의 신용카드
기술 부채는 지금 빨리 가기 위해 나중으로 미룬 일입니다.
모든 부채가 나쁜 것은 아닙니다. 때로는 속도가 중요합니다. 문제는 부채가 없다고 스스로 속이는 것입니다.
지름길이라는 사실을 알고 기록하며 언제 갚을지 정합니다.
설계가 나중에 문제가 될 줄 몰랐던 경우입니다.
보안, 데이터 무결성, 결제, 사용자 신뢰가 위험한 경우입니다.
첫 번째는 관리할 수 있습니다. 두 번째는 주의가 필요합니다. 세 번째는 미루면 안 됩니다.
혼자 만드는 사람이 바로 적용할 것
- 첫날부터 Git을 씁니다.
- 작고 의미 있는 커밋을 남깁니다.
main브랜치는 항상 작동하게 유지합니다.- 미리보기 배포를 사용합니다.
- 공개 배포 전 린트와 빌드를 실행합니다.
- 돈, 로그인, 권한, 데이터 삭제 주변에는 테스트를 둡니다.
- 기술 부채 목록을 보이는 곳에 둡니다.
AI에게 이렇게 물어보세요
이 변경사항을 풀 리퀘스트(PR)처럼 리뷰해줘. 불명확한 코드, 누락된 테스트, 보안 위험, 데이터 손실 위험, 기술 부채를 찾아줘. 가장 중요한 5개를 우선순위대로 정리해줘.
자주 묻는 질문
혼자 작업할 때도 Git이 필요한가요?
Git은 변경 이력을 남기고, 실수를 되돌리고, 브랜치에서 안전하게 실험할 수 있게 해줍니다. 나중에 협업하거나 배포할 때도 훨씬 쉬워집니다.
풀 리퀘스트(PR)란 무엇인가요?
풀 리퀘스트는 변경사항을 제안하고, 논의하고, 검사를 실행한 뒤 main 브랜치에 병합하기 전에 리뷰하는 과정입니다.
CI/CD란 무엇인가요?
CI/CD는 코드를 빌드하고, 테스트하고, 배포하는 과정을 자동화하는 것입니다. 배포를 수동적이고 위험한 사건에서 반복 가능한 과정으로 바꿉니다.
기술 부채란 무엇인가요?
기술 부채는 지금 빨리 가기 위해 나중으로 미룬 작업입니다. 의식적인 부채는 관리할 수 있지만, 보안·결제·데이터 무결성·사용자 신뢰와 관련된 위험한 부채는 미루면 안 됩니다.
어떤 테스트를 먼저 작성해야 하나요?
돈, 로그인, 권한, 데이터 삭제 같이 운영에서 깨지면 큰 일이 되는 위험한 동작 주변부터 테스트를 시작하세요.
핵심 정리
개발 프로세스는 소프트웨어를 계속 바꿀 수 있게 만드는 방법입니다.
도구가 코드를 더 잘 만들수록, 그 코드를 안전하고 리뷰 가능하고 테스트 가능하고 배포 가능하게 유지하는 습관이 더 중요해집니다.
