[Tech] CDN & 테스트
[Tech] CDN & 테스트
CDN
- Content Delivery Network, 컨텐츠 전송 네트워크
- 분산되어 있는 여러 서버에 컨텐츠를 캐싱하여,
사용자와 가까운 곳에서 빠르게 전송하는 시스템
CDN의 탄생 배경
- 스트리밍 서비스가 발달하면서, 인터넷 대역폭의 주 컨텐츠가
비디오가 되었음. - 따라서,
비디오와 같이 큰 용량의 컨텐츠를 전송시 네트워크가 혼잡해질 우려가 생김. - 이를 위해, 물리적으로 가까운 서버에서 컨텐츠를 받을 수 있도록한 서비스가 대두됨.
CDN의 동작 방식
사용자가 특정 컨텐츠를 요청함.
사용자와 물리적으로 가까운 CDN 서버 선택
요청한 컨텐츠가 엣지 서버에 있는지 확인
캐시 히트 / 캐시 미스
이후 동일한 요청이 오면, 빠르게 제공함.
CDN의 장점
- 로딩 속도 향상
- 서버 부하 감소
- 대역폭 비용 절감
- 보안 강화
테스트
개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인(Validation)하고,
소프트웨어가 기능을 정확히 수행하는지 검증(Verification)하는 절차테스트로 애플리케이션에 잠재되어 있는 결함을 찾아낸다.
테스트 예시
- 디자인 안에 맞게 퍼블리싱 → 브라우저에서 렌더링 된 모습 확인
- 데이터베이스에 데이터를 삽입하는 API → 호출 후, 데이터베이스 값을 검증
- 새로운 기능 추가 → 기능을 추가하고 기존 모듈의 실행 결과 확인
- 개발 환경에서 만들어진 애플리케이션 → 실제 배포 후, 문제가 없는지 확인
단위 테스트, Unit Test
- 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트 단위로 테스트
- 인터페이스, 외부적 I/O, 자료 구조, 오류 처리 경로, 경계 조건 등을 검사
- 작성 비용이 적고, 실행 속도가 빠름
- 발견할 수 있는 오류
- 알고리즘 오류에 따른 예상치 못한 결과
- 탈출 조건이 없는 반복문 사용
- 틀린 계산 수식의 결과
사용 도구: Jest, Mocha, Jasmine 등…
- 단위 테스트 방법
- 구조 기반 테스트: 프로그램 내부 구조 및 복잡도 검증의 화이트박스 테스트
- 명세 기반 테스트: 목적 및 실행 코드 기반의 블랙박스 테스트
통합 테스트, Integration Test
- 단위 테스트가 끝난 모듈을 통합하는 과정에서의 테스트
- 모듈 간 or 통합된 컴포넌트 간의 상호작용 오류를 검사
사용 도구: React Testing Library, Vue Test Utils 등…
- 통합 테스트 방법
- 하향식 통합 테스트: 상위 모듈에서 하위 모듈 방향으로 통합하여 테스트
주요 모듈의 종속 모듈들은스텁으로 대체하며 테스트 - 상향식 통합 테스트: 하위 모듈에서 상위 모듈 방향으로 통합하여 테스트
데이터 입출력을 확인하기 위해 더미 모듈인드라이버를 작성함
- 하향식 통합 테스트: 상위 모듈에서 하위 모듈 방향으로 통합하여 테스트
E2E 테스트, End-to-End Test
- 실제 사용자가 사용하는 것과 같이 전체 시스템을 테스트
- API 서버, 데이터베이스 등을 모두 사용하여 통합된 시스템을 검사
- E2E 테스트 예시
- 회원가입부터 상품 구매 까지의 전체 플로우를 브라우저에서 실행하여 검증
사용 도구: Cypress, Playwright, Selenium 등..
✨ 출처
prepare_frontend_interview
컴퓨터네트워킹(8판), J. F. Kurose, K. W. Ross
정보처리기사 필기 시나공, 길벗
This post is licensed under CC BY 4.0 by the author.