5. 백엔드 개발자의 업무
- 백엔드 개발자의 주된 업무 : 서버 측 애플리케이션을 개발하는 일
개발하면서 서버에 대한 지식, 프로그래밍 지식, 만든 프로그램을 배포하고 안전하게 서비스할 수 있게 하는 지식 활용
<백엔드 개발자의 업무 진행 순서>
1) 과제 할당
모든 일은 주어진 과제를 할당하며 시작
사업부, 마케팅, 개발팀 등에서 개발 과제를 할당
2) 과제 분석
ex. 어떤 소셜 서비스 - '친구 초대 이벤트를 만들어주세요' 과제 주어짐
'친구' : ?
'초대' : ?
'이벤트' : ?
- 어떤 조건 필요, 초대를 한 친구와 초대된 친구에서 보상을 어떻게 줄지, 이벤트 위해서 어떤 데이터들을 저장하는지...
=>결정 필요
- 제공할 성능, 사용할 기술 검토
- 문제 있다면 해결방법도 면밀하게 분석하고 정리
- 오늘날의 서비스는 복잡, 작은 기능에서 발생하는 문제 하나가 서비스 전체의 문제로 이어질 수 있음
-> 중요한 과정!
3) 개발
- 기능 개발
- 버그 수정
- 개발한 코드는 깃허브(git hub) 등 프로그램 사용 -> 동료의 리뷰 받고, 리뷰에 대한 내용 반영
=> 코드의 완성도 높임
4) 테스트
- 코드가 제대로 동작하는지 테스트
{ 2)과제분석 -> 3)개발 -> 4) 테스트 } 반복
=> 프로그램의 완성도 높여감
- 테스트는 단순히 실행 잘 되는지만 보지 않음
- 로직상 문제는 없는지 / 성능 한계는 어느 정도인지 / 만든 코드가 읽기 편한지 / 내가 만든 클래스, 메서드, 함수를 다른 사람이 간편하게 사용할 수 있는지 등을 검토하면서 테스트
- 조직이나 개발자에 따라 단위테스트 작성하는 경우도 있음
- 개발용 코드보다 테스트를 먼저 작성하는 " 테스트 주도 개발 기법 ( Test-Driven Development, TDD )" 사용하기도 함
5) QA (Quality Assurance)
- 개발, 테스트 어느 정도 마무리 됐다면 -> 애플리케이션의 품질을 높이기 위해 QA신청
- QA팀 없는 회사라면 개발 조직에서 담당
6) 배포
- 서버에 배포 진행
- 여러 과제 한 번에 병향해서 배포 or 새로운 기능이 추가될 때마다 배포
- 애플리케이션을 쉽고 안전하게 배포
- 문제 발생 시 쉽게 이전 버전으로 돌리는 작업 할 수 있게 준비해야함
<배포 방법>
- 롤링 배포 : 특정 개수의 서버들을 돌아가며 배포
- 블루 그린 배포 : 똑같은 서버 인스턴스를 띄우고 로드밸런서 설정을 바꿔버림
- 카나리 배포 : 전체 서버의 특정 비율만큼 배포해보고 문제없는 경우 점점 배포를 늘려감
7) 유지보수
CI / CD (Continuous Integration / Continuous Delivery & Continuous Deployment)
7.1) CI( Continuous Integration )
- 지속가능한 통합
- 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 저장소에 통합되는 것
- 저장소에 코드가 반영되는 것
7.2) CD ( Continuous Delivery & Continuous Deployment) )
- 지속적인 배포
- 실제 프로덕션 환경까지 변경된 코드가 반영되는 것
6. 백엔드 프로그래밍 언어
<TIOBE 인덱스 (2023.4 기준 ) - 언어의 인기순위 지수>
* ✨ : 백엔드에서 많이 사요하는 언어
1) Python ✨
- 데이터 분야에서 많이 사용
- 서버 개발에도 많이 사용
- 대표적인 프레임워크 : 플라스크(Flask), 장고(Django), FastAPI
2) C
3) Java ✨
- Spring, Spring Boot 라는 매우 강력한 프레임워크를 기반으로 많은 곳에서 서버 개발에 사용
- 대표적인 프레임워크 : Spring, Spring Boot
4) C++ ✨
- 성능이 중요한 게임 서버 개발에 많이 사용
5) C# ✨
- 국내보다는 미국에서 많이 사용
- 닷넷 프레임워크가 매우 강력
- 마이크로소프트 계열의 소프트웨어와 호환성 좋은 편
- 개발자들이 자주 찾는 사이트 중 하나인 스택오버플로(Stack Over Flow)가 C# 기반으로 만들어짐
6) 비주얼 베이직
7) Javascript ✨
- 프론트엔브에서뿐 아니라 백엔드에서도 많이 사용
- 대표적인 프레임워크 : 익스프레스(Express), NestJS
7. 자바 애너테이션(Java annotation)
- 자바 애너테이션(Java annotation) : 자바(Java)로 작성한 코드에 추가하는 표식
- 보통 @ rlgh tkdyd
- JDK 1.5 버전부터 사용 가능
- 애너테이션은 다양한 목적으로 사용, 보통 메타 데이터로 사용하는 경우가 가장 많음
ex. Override : 선언된 메서드가 오버라이드 되었음
Deprecated : 더 이상 사용되지 않음
SupperessWarnings : 컴파일 경고를 무시함
ex. @Override : 메서드를 재정의함
public class A extends B {
@Override // 선언된 메서드가 오버라이드 되었음을 나타내는 애너테이션
public void print(){
System.out.println("Hello, World!");
}
}
메서드를 재정의하면 부모 클래스의 메서드를 자식 클래스에서 다시 구현함
@Override 애너테이션 붙임으로써 다시 구현한 메서드임을 명시적으로 나타낼 수 있음
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 4. 예제1) @RestController, @GetMapping 으로 컨트롤러 만들기 + Spring Boot 동작원리 이해해보기 (0) | 2024.08.19 |
---|---|
[Spring Boot] 3. 스프링(Spring)과 스프링부트(Spring Boot) (0) | 2024.08.19 |
[Spring Boot] 2.4.개념 - 라이브러리(library)와 프레임워크(framework) (0) | 2024.08.19 |
[Spring Boot] 2.3. 개념 - ip와 port (0) | 2024.08.19 |
[Spring Boot] 2.2. 개념- 데이터베이스(Database) (0) | 2024.08.19 |