과제 할당 -> 과제 분석 -> 개발 -> 테스트(리뷰) -> QA 및 버그 수정 -> 배포 -> 유지보수
과제 할당
사업부, 마케팅 개발팀 등에서 개발 과제를 할당한다.
과제 분석
제공할 성능과 사용할 기술을 검토하고, 예상되는 문제가 있다면 해결 방법도 면밀히 분석하고 정리해야 한다.
개발
기능을 개발하고 버그를 수정한다. 개발한 코드는 깃허브 등의 프로그램을 사용해 동료의 리뷰를 받고 리뷰에 대한 내용을 반영하여 코드의 완성도를 높인다.
테스트
코드가 제대로 동작하는지 테스트 해야한다. 앞서 언급한 과제 분석 -> 개발 -> 테스트를 반복하며 프로그램의 완성도를 높여 간다. 단순히 실행 여부의 문제가 아니라 로직상의 문제, 성능 한계, 코드의 가독성 등을 검토 하면서 테스트를 진행한다.
조직이나 개발자에 따라 단위 테스트를 작성하는 경우도 있다. 때로는 개발용 코드보다 테스트를 먼저 작성하는 테스트 주도 개발 기법을 사용하기도 한다.
- 단위 테스트
하나의 모듈(하나의 기능 or 메소드)을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트.
- TDD (Test Driven Development)
반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
QA quality assurance
QA란 모든 소프트웨어 엔지니어링 프로세스, 개발, 작업 활동 등의 항목을 검수하며 조직 내 품질 규격, 소위 소프트웨어 요구사항 명세를 준수하도록 하는 과정이다.
개발과 테스트가 마무리 되었다면 보통 QA팀에게 QA를 신청한다. 하지만 QA 팀이 없는 경우라면 개발 조직에서 담당하게 된다.
배포와 유지보수
QA가 완료되면 서버에 배포를 진행한다. 때에 따라서 여러 과제를 한번에 병합해서 배포하거나, 새로운 기능이 추가될 때마다 배포한다. 애플리케이션을 쉽게 안전하게 배포하고 문제 발생시 쉽게 이전 버전으로 롤백할 수 있도록 준비해야한다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽