[항해99 | TIL] ⚓️23-11-03 TODAY I LEARNED

whitehighdragon·2023년 11월 3일
post-thumbnail

실전 프로젝트 진행사항

  • sse 연결시 timeout되면 log 남는 부분 ExceptionHandler 수정
  • 11월 4일 고객 피드백 시작

CS 기술면접

CI/CD에 대해서 설명해주세요.

Continuous Integration 및 Continuous Delivery 또는 Continuous Deployment의 약자이다.
소프트웨어 개발 및 배포 프로세스를 자동화하고 개선하기 위한 방법론이다.
CI(지속적 통합) : 개발자들이 코드 변경 사항을 공유 저장소에 병합할 때마다 자동으로 코드를 빌드하고 테스트하는 프로세스르 말한다.
CD(지속적 제공) : 지속적으로 테스트되고 검증된 코드가 프로덕션 환경으로 안정적으로 배포될 수 있는 프로세스를 말합니다.
CI/CD를 도입하면 개발자들은 코드 변경에 대한 빠른 피드백을 받을 수 있고, 소프트웨어 배포 주기를 단축하여 신속하게 안정적인 업데이트를 사용자에게 제공할 수 있습니다. 이를 통해 소프트웨어의 품질을 향상시키고, 개발 및 배포 프로세스의 효율성을 증대시킬 수 있다.

TDD에 대해서 설명해주세요.

TDD는 Test-Driven Devlopment의 약자로 소프트웨어 개발 방법론 중 하나이다.
테스트 작성: 개발자는 실제 코드를 작성하기 전에 해당 코드의 기능을 테스트하는 테스트 케이스를 작성합니다. 이 단계에서는 아직 기능이 없는 상태이므로 테스트는 실패합니다.
실패하는 테스트 통과: 테스트가 실패하는 것은 당연합니다. 그리고 이제 실패하는 테스트를 통과시킬 정도의 기능을 갖춘 코드를 작성합니다.
코드 리팩터링: 작성한 코드는 테스트를 통과할 때까지 수정하고 리팩터링합니다. 이때, 코드의 구조를 개선하거나 중복을 제거하여 코드를 더 깔끔하고 유지보수가 쉽도록 만듭니다.
장점
더 안정적이고 견고한 코드: 테스트 케이스를 통해 기능이 예상대로 작동하는지 확인하기 때문에 안정적인 코드를 작성하는 데 도움이 됩니다.
디버깅 시간 단축: 초기에 작성된 테스트 케이스를 기반으로 오류를 발견하고 수정하기 때문에 디버깅 시간이 단축됩니다.
설계 개선: TDD는 코드의 작은 단위로부터 시작하므로, 더 좋은 설계를 유도하고, 모듈화 및 유연성을 증진시킬 수 있습니다.

0개의 댓글