21. CI/CD에 대해서 설명해주세요.
CICD는 어플리케이션의 지속적인 통합, 지속적 서비스 제공, 지속적인 배포를 도와줍니다.
CI (지속적 통합)
소스 코드 변경이 이루어질 때마다 자동으로 빌드 및 테스트를 수행하여 코드 변경 사항이 메인 코드베이스와 통합되는지 확인합니다.
CD(지속적 제공/ 지속적 배포)
CI 단계를 통과한 코드는 자동으로 테스트 및 빌드 된 후 배포된니다.
자동화된 테스트 및 배포 과정을 통해 안정적으로 소프트웨어를 지속적으로 제공할 수 있습니다.
- 자동화된 프로세스: 빌드, 테스트, 배포 등의 프로세스가 자동으로 이루어져 빠르고 안정적인 개발 및 배포가 가능합니다.
- 빠른 피드백: 코드 변경이 빌드 및 테스트를 거쳐 바로 피드백을 받을 수 있어 개발자들은 빠르게 오류를 수정하고 품질을 향상시킬 수 있습니다.
- 신뢰성과 안정성: 지속적인 배포를 통해 코드의 품질을 유지하고, 안정적인 환경에서 사용자에게 서비스를 제공할 수 있습니다.
- 효율적인 협업: 팀 전체가 동일한 코드베이스에서 작업하고 통합하므로 효율적인 협업이 가능합니다.
새로운 코드 통합 시 테스트 단계에서부터 배포까지 지속적인 자동화와 지속적인 모니터링을 제공해 어플리케이션을 더욱 짧은 주기로 고객에게 제공하도록 도와줍니다. 소프트웨어 개발의 속도, 안정성, 신뢰성을 증진하기 위해 사용합니다.
22. TDD에 대해서 설명해주세요.
- Test Driven Development
- TDD는 테스트 주도 개발로, 테스트케이스를 먼저 작성한 이후, 리팩토링으로 실제 코드를 개발하는 개발 방법입니다..
- 장점으로는 작업과 동시에 테스트를 진행하기 때문에 실시간으로 오류를 파악할 수 있습니다.
- 개발주기가 짧아 고객의 요구사항을 빠르게 수용하고, 진행상황 파악이 쉬워집니다.
- JUnit과 같은 자동화 도구를 이용한 TDD테스트케으스를 단위 테스트로 사용이 가능합니다.
- 개발자가 기대하는 앱의 동작에 관한 문서를 테스트하여 제공해줌
- 단점
- 기존 개발 프로세스에서 테스트케이스 설계가 추가되므로 생산 비용 증가
- 테스트의 방향성, 프로젝트 성격에 따른 테스트 프레임워크 선택 등 추가로 고려할 부분이 증가
'CICD' 카테고리의 다른 글
[TIL] 240423 AWS - EC2, RDS를 활용하여 배포하기 (2) | 2024.04.23 |
---|---|
[TIL] 240413 Github Actions로 CICD 공부 (0) | 2024.04.13 |
[TIL] 240411 CI/CD, Docker Image, Docker Container (0) | 2024.04.11 |
[TIL] 230119 자동 배포, 수동배포 (0) | 2024.01.19 |
[TIl] 231227 CI/CD 개념 (0) | 2023.12.27 |