웹 기반 문서 편집기 제작 시작
프로젝트
- React와 Express를 이용하여 프로젝트를 할 것
- 이 개발보다는 실제 사용을 염두에 둔 서비스를 개발 및 통합 (빌드, 테스트, 배포)하는 과정을 자동화 파이프라인으로 구축할 것이다.
- CI/CD 파이프라인 구축 기법은 중점이 x
- 개발환경과 프로덕션 환경의 차이를 염두에 둔 프로그래밍
- 풀 사이클 경험
- 테스트 자동화 및 배포 프로세스에 무게
백엔드
- Express.js
- mariaDB
프론트엔드
- React.js
프로덕션
- AWS, Kubernetes, Minikube
- Jenkins, Terraform, Selemium
최종 배포 환경은 AWS위 ec2인스턴스에 minikube를 이용해 구성한 작은 원격 클러스터이나 개발단계에서 테스트를 위해서 테스트용 클러스터 - docker desktop으로 구성한 single-node cluster를 이용한다.
배포 환경은 이미 되어있다고 가정하고 실습 진행
AWS활용 - EC2 인스턴스 하나에 minikube로 구성한 k8s cluster
데이터베이스 - 위와 같은 인스턴스에 설치 및 스키마 생성
CI/CD
젠킨스 - 로컬 클러스터에 설치 및 운용되는 것으로 가정
셀레니움
프로젝트 명세
소프트웨어 요구사항 명세서
구조 설계서
- 백 : api
- 프론트: 컴포넌트 구조 및 계층 구조 명세
상세 설계서
- 백: 생략
- 프론트 - 각 컴포넌트 기능 명세 및 와이어 프레임
dev => dev docker => test (local k8s) => stage(aws) | prod(aws)
= > 뒤로 갈수록 테스트 자동화가 중요해지며 손으로 할 일은 줄어들지만 시간은 더 많이 소요된다.
dev
- 코드 개발
- 단위테스트
- FE/BE 개별 테스트
- 수동 사용자 테스트
dev docker
- BE부터 dockrize
- docker compose
- 빌드된 코드 이용
- 컨테이너 테스트
test (local k8s)
- kubectl + yaml
- 클러스터 운용 테스트
stage (aws)
- acceptance test
- 테스트 종료 후 파괴
prod (aws)
- smoke test
- 서비스 제공
테스트
단위테스트
모듈 단위를 독립적으로 테스트할 수 있도록 mock이용
통합테스트
FE + BE + DB 사이의 통합이 올바른지 테스트하는 방법을 세우고 적용한다.
인수테스트
셀레니움을 이용하여 E2E테스트를 적용할 것이다.
스모크테스트
배포 상태가 올바른지만 검사
구조 설계서
- 백 : api
- 프론트: 컴포넌트 구조 및 계층 구조 명세
상세 설계서
- 백: 생략
- 프론트 - 각 컴포넌트 기능 명세 및 와이어 프레임
dev => dev docker => test (local k8s) => stage(aws) | prod(aws)
= > 뒤로 갈수록 테스트 자동화가 중요해지며 손으로 할 일은 줄어들지만 시간은 더 많이 소요된다.
dev
- 코드 개발
- 단위테스트
- FE/BE 개별 테스트
- 수동 사용자 테스트
dev docker
- BE부터 dockrize
- docker compose
- 빌드된 코드 이용
- 컨테이너 테스트
test (local k8s)
- kubectl + yaml
- 클러스터 운용 테스트
stage (aws)
- acceptance test
- 테스트 종료 후 파괴
prod (aws)
- smoke test
- 서비스 제공