슈크림 붕어빵 2024. 3. 27. 10:22

프로젝트

  • 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
  • 서비스 제공