본문 바로가기

학습 기록/스프링 부트3 백엔드 개발자 되기[자바편]

[01장.5] 백엔드 개발자의 업무

개발자 업무 순서
1) 과제 할당
2) 과제 분석
3) 개발
4) 테스트(리뷰)
5) QA 및 버그 수정
6) 배포
7) 유지보수

1) 과제 할당

: 사업부, 마케팅, 개발팀 등에서 개발 과제를 할당하며, 개발자는 그 과제를 분석하기 시작함

 

 

2) 과제 분석

: 주어진 과제가 무엇을 의미하고, 어떤 조건이 필요한지, 해당 조건들을 수행하기 위해 어떤 데이터를 저장해야 하는지를 결정

: 제공할 성능과 사용할 기술을 검토하고, 문제가 있을 경우 해결 방법도 분석 및 정리

 

* 요즘의 서비스는 복잡하기 때문에 작은 기능에서의 문제가 서비스 전체의 문제로 이어질 수 있기에 중요한 과정 중 하나

 


3) 개발

: 기능을 개발하고 버그를 수정함

: 개발 코드는 깃허브 등의 프로그램을 사용해 동료의 리뷰를 받고 리뷰에 대한 내용을 반영해 코드의 완성도를 높임

 


4) 테스트(리뷰)

: 단순히 실행이 잘 되는지만 보는 것이 아닌, 로직상의 문제는 없는지, 성능 한계는 어느 정도인지, 만든 코드가 읽기 편한지, 내가 만든 클래스/메서드/함수를 다른 사람이 간편하게 사용할 수 있는지 검토하면서 테스트 진행

: 때로는 개발용 코드보다 테스트를 먼저 작성하는 테스트 주도 개발 기법을 사용하기도 함

 


5) QA 및 버그 수정

: 애플리케이션 품질을 높이기 위해 QA(Quality Assurance)를 신청하며, QA 팀이 없는 회사는 개발 조직에서 담당

 


6) 배포 ~ 7) 유지보수

: 여러 과제를 한 번에 병합해서 배포하거나 새로운 기능이 추가될 때마다 배포 진행

: 애플리케이션을 쉽고 안전하게 배포하고, 문제 발생시 쉽게 이전 버전으로 돌리는 작업을 할 수 있게 준비

 

* 배포 방법

- 롤링 배포 : 특정 개수의 서버들을 돌아가며 배포

- 블루 그린 배포 : 똑같은 서버 인스턴슬ㄹ 띄우고 로드밸런서 설정을 바꾸는 배포

- 카나리 배포 : 전체 서버의 특정 비율만큼 배포해보고 문제없는 경우 점점 배포를 늘려나가는 배포

 

 

* 테스트, 배포, 모니터링까지 무한 반복이기 때문에 이 과정을 자동화 할 수 있는데 이를 CI(Continuous Integration)/CD(Continuous Deployment)라고 함

- CI(Continuous Integration)
: 지속적인 통합 이라는 뜻으로 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 저장소에 통합되는 것
- CD(Continuous Deployment)
: 지속적인 배포로 실제 프로덕션 환경까지 변경된 코드가 반영되는 것