인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hgh1472님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Redis 테스트

작성

·

77

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 강사님 안녕하세요! 강의를 수강하고 프로젝트에 테스트 코드를 작성하며 적용해보고 있습니다.

프로젝트에서 Redis로 저장되는 객체가 있는데, 이를 테스트하기 위해 찾아보니 embedded Redis를 사용하거나 테스트 컨테이너를 사용한다고 합니다.

'Redis에서 단순한 저장/조회/수정 로직만 존재하는데, 그냥 테스트하지말고 냅둘까?' 유혹이 생기더라구요.

이처럼 만약 테스트를 위해 추가적으로 설정이 필요한 경우, 어느정도 선까지 테스트를 진행하는게 맞을지 고민이 됩니다.

시간적으로 가능한 선 내에서는 무조건 다 하는게 맞는걸까요?

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, hgh1472 님!

Redis에 단순한 CRUD 작업만 하는 경우, 강의에서 말씀드린 것처럼 Redis를 외부 시스템으로 보고 mocking하는 전략을 취할 수 있을 것 같아요.
Redis에 요청하는 모든 작업이 성공했다, 혹은 실패했다를 가정하고 테스트를 작성한다면 큰 비용 없이 비즈니스 로직에 대한 테스트를 진행할 수 있을 거예요.

도움이 되셨기를 바랍니다.
감사합니다. 🙂

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. hgh1472님 질문에 대한 답변을 드리겠습니다.

Redis와 같은 외부 시스템과의 통합 테스트를 어떻게 진행할지 고민하는 것은 매우 중요한 부분입니다. 특히, 프로젝트의 규모와 팀원이 얼마나 테스트에 집중하고, 테스트 환경을 얼마나 구축할 수 있는지에 따라 테스트 전략이 달라질 수 있습니다.

Redis 테스트 관련 옵션:

  1. Embedded Redis:

    • 테스트 환경에서 Redis 의존성을 줄이기 위해 Java 기반 임베디드 Redis 서버를 사용하여 테스트를 작성할 수 있습니다. 이 방법은 빠르고 환경을 간편하게 설정할 수 있기 때문에 초기 개발 단계에서 유용합니다.
    • eugenp/tutorials - EmbeddedRedis 에서 더 많은 예시를 찾아보실 수 있습니다.
  2. 테스트 컨테이너(Testcontainers):

    • Docker 컨테이너 기반의 실제 Redis 인스턴스를 사용할 수 있습니다. 이는 실제 환경과 유사하게 사용할 수 있기 때문에, 환경 간의 차이를 줄일 수 있다는 장점이 있습니다.
    • Redis 관련 설정을 자동으로 관리할 수 있으며, 테스트 결과의 신뢰성을 높일 수 있습니다.
  3. 테스트하지 않기:

    • 만약 시간이 부족하거나 리소스가 제한적이라면 작은 모듈 단위로, 핵심 로직만 검증하고 외부 시스템에 대한 상세한 테스트는 나중에 미룰 수도 있습니다.

테스트 범위 결정:

  • 핵심 로직: Redis에 대하여 실제로 데이터가 잘 저장되고 조회되는지를 테스트하는 것이 주요한 목적이라면, 최소한의 CRUD 방식에 대한 테스트는 필수적입니다.
  • 비용과 효율성: 시간이 허락하는 선에서 핵심 워크플로우와 버그 발생 가능성을 높은 영역에 집중하여 테스트를 진행하는 것이 효과적입니다.
  • 트레이드오프 고려: 모든 부분을 다 테스트하려고 하면 시간이 많이 소요되므로, 실제로 중요하고 자주 변경될 수 있는 점에 대한 테스트에 우선순위를 두세요.

일반적으로 테스트 전략은 프로젝트의 요구사항과 중요도에 따라 조율되어야 합니다. 테스트가 지나치게 과도하면 개발 속도가 느려질 수 있지만, 너무 적으면 이후의 버그를 발견하고 수정하는 데 더 많은 비용이 발생할 수 있습니다.

추가로 더 궁금한 점 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hgh1472님의 프로필 이미지

작성한 질문수

질문하기