본문 바로가기

스프링4

🙊 Fixture Monkey 도입 🙊 Fixture Monkey 도입 이유객체 생성객체가 가지고 있는 데이터 항목이 많아 객체 생성 비용이 크다.비즈니스 요구사항이 변경될 때 객체를 변경하고 테스트를 수정해야 할 수 있다.엣지 케이스 발견엣지 케이스를 직접 찾아야 하고 동일한 테스트를 여러번 작성해야한다🤔 Fixture Monkey가 뭔디https://naver.github.io/fixture-monkey/v1-0-0/Fixture Monkey는 테스트를 위한 객체 생성을 자동화해주는 Jqwik 기반 PBT 라이브러리입니다.🤔 Property-based Testing (PBT)는 뭘까?Property-based Testing은 테스트 케이스를 일일이 작성하는 대신, 프로그램이 랜덤 속성(property)을 만들어주고 테스트하는 방식.. 2024. 12. 19.
[쿼리문 개선] 댓글/대댓글 조회 dto로 받기 && 반복 루프로 인한 추가 쿼리 호출 문제 해결 기존코드PostCommentGetService@Service@RequiredArgsConstructorpublic class PostCommentGetService { private final PostCommentRepositoryCustom postCommentRepositoryCustom; @Transactional public List getPostComment(long postId) { List postCommentList = postCommentRepositoryCustom.findByPostId(postId); List responseList = new ArrayList(); Map responseHashMap = new HashMap();.. 2024. 12. 18.
Redis 클라이언트 lettuce에 대해서 Redis 클라이언트 3가지Jedis쓰레드 세이프하지 않아 잘 쓰이지 않는다.Lettuce비동기 및 동기식 API를 제공하는 Redis 클라이언트로, Netty 기반으로 구현되어 높은 성능을 자랑합니다.Redis Cluster와 Sentinel을 기본적으로 지원하며, 스레드 세이프한 구조로 멀티스레드 환경에서도 안정적입니다.비동기/리액티브 프로그래밍을 위한 API를 제공하므로, 높은 처리량을 필요로 하는 애플리케이션에 적합합니다.Redisson고급 기능을 제공하는 Redis 클라이언트로, Redis를 분산 데이터 구조로 활용할 수 있게 도와줍니다.분산 락, 분산 맵, 분산 큐와 같은 기능을 기본적으로 제공하며, 이러한 구조를 사용해 분산 애플리케이션을 개발하는 데 유용합니다.즉, 분산환경에서 자원 동기화.. 2024. 9. 12.
Id로 연관관계 짓기(엔티티로 연관관계x) @Data @Entity @NoArgsConstructor public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Member(Long id) { this.id = id; } public Member(String name) { this.name = name; } } @Data @Entity @NoArgsConstructor public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne @JoinColumn(name = ".. 2024. 4. 9.