Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[테스트 데이터 생성기] CH 03. CLIP 13. 로직 구현: 개인 스키마 정보를 원하는 유형으로 출력하기 #89

Merged
merged 6 commits into from
Aug 7, 2024

Conversation

djkeh
Copy link
Owner

@djkeh djkeh commented Aug 7, 2024

이 작업은 #29 에 이어 가짜 데이터 생성 로직을 구현하고 전체 서비스에 연결한다.
다양한 중요 기술들이 소개되었으므로 각 핵심은 아래를 참고:

  • 테스트 기법, 전략패턴 응용: ef5f087
  • 스프링 캐시 사용: 608a482

This closes #30

djkeh added 6 commits August 8, 2024 04:28
문자열 가짜 데이터를 발생시킬 때 참고할 데이터를
`data.sql`에 세팅.
데이터는 현진건의 단편소설 운수 좋은 날을 사용.
이 소설은 저작권 만료로 이용에 문제가 없다고 함.
각 데이터의 길이가 약간 길기 때문에,
문자열 컬럼의 기본 크기(255)를 넘어갈 수 있으므로
`length`옵션을 조절해 줌.

새 테스트 데이터 추가로 전체 사이즈가 커졌으므로
기존 jpa test 내용을 업데이트 함.
`MockDataRepository`에 새로운 쿼리를 추가했는데,
데이터 유형별 테스트 데이터 조회는
앞으로 필요한 기능이므로 추가해도 문제 없음.
처음 설계할 땐 뭔가 패턴을 이용한
랜덤 문자열 생성을 상상하며 넣었지만
현재 구현에서 필요없는 요소가 되어
스펙 아웃하고 삭제하기로 함.
설계 �구성은 #29 파일 출력기 컨텍스트의 패턴과 동일.
시간 관계상 구현체는 기본이 되는 문자열 생성기
하나만 강의 중에 작성함.
문자열 생성기가 의도에 맞는 문자열을 생성하는지 보는
다양한 테스트들을 작성.
이것으로 가짜 데이터 생성부터 파일 출력기를 거쳐
서비스 로직 -> 컨트롤러까지 기본 기능이 모두 구현 및
연결됨.
부트에서 제공하는 Spring Cache Abstraction을 이용해
간단하게 애노테이션 방식으로 캐시를 적용.
캐시는 `ConcurrentMap`으로
애플리케이션이 동작하는 동안 내부 메모리에 구현됨.
인테그레이션 테스트를 동작시키면 쿼리 발생이
1개로 줄어드는 것을 관찰 가능.
@djkeh djkeh added the enhancement New feature or request label Aug 7, 2024
@djkeh djkeh self-assigned this Aug 7, 2024
@djkeh djkeh merged commit 32a2320 into main Aug 7, 2024
@djkeh djkeh deleted the feature/30-mock-data-generator branch August 7, 2024 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant