Project8 [커뮤니티 #18] Redis를 이용해서 포인트 랭킹 구현하기 (Sorted Set = ZSet) 아직 배우는 단계라서 정확하지 않을 수 있습니다! 피드백 해주시면 참고하겠습니다 :) 추후에 구글링 및 더 많은 공부를 더 진행한 후 깨끗히 리팩토링 진행하도록 하겠습니다. https://github.com/sosow0212 sosow0212 - Overview sosow0212 has 70 repositories available. Follow their code on GitHub. github.com 오늘은 Redis를 이용해서 포인트 랭킹을 구현했습니다. Redis를 단순 저장의 목적으로 사용한 것 같아서 마음에 쏙 들지는 않지만 일단 공부한다고 생각하고 진행해보았습니다. 먼저 랭킹 기획 방향은 이렇게 생각했습니다. 1. 처음에 회원가입을 한다면, Point 도메인을 만들고 MySQL 데.. 2023. 1. 18. [커뮤니티 #17] 기본 키 타입, 네이밍 리팩토링 작업 안녕하세요. 신년의 첫 포스팅이네요! 다들 새해 복 많이 받으세요. 오늘도 커뮤니티 프로젝트 리팩토링에 대한 내용을 다룹니다. 레거시 프로젝트를 리팩토링 하는 것이 이렇게 힘든 일인줄 몰랐습니다 ㅠㅠ 이번 경험을 바탕으로 앞으로는 "처음부터 꼼꼼한 설계와 클린코드를 이용해서 프로젝트를 제작해야겠다."라고 생각했습니다. 오늘은 세 가지 작업을 했습니다. 도메인 기본 키 타입 리팩토링 작업 User 도메인 리네이밍 README.md 가독성 좋게 수정하기 1. 도메인 기본 키 타입 리팩토링 작업 현재 레거시 프로젝트의 도메인 기본 키 타입은 전부 int형으로 만들었습니다. 사실 int형으로 모두 기본 키 처리를 해도 상관은 없겠지만, 만약 프로젝트의 규모가 커지고 트래픽과 데이터가 많아진다면 데이터베이스에 수.. 2023. 1. 1. [커뮤니티 #16] 도메인 단위 테스트를 만들어보자 기존 커뮤니티 프로젝트에는 Service, Controller 레이어의 테스트밖에 없었습니다. 레거시 프로젝트를 리팩토링 작업을 하면서 기존 Service 레이어에서 사용한 Setter, Getter 조합을 도메인 메서드로 바꾸면서 테스트 할 것들이 생겼습니다. Getter와 Setter의 사용이 최대한 제한되어 있는 상태에서 도메인 테스트 코드 작성을 진행해보겠습니다. 양이 너무 많다보니 예시로 하나만 업로드 하겠습니다. 오늘 예시로 사용될 도메인은 Message 도메인입니다. 먼저 도메인 코드를 확인해보겠습니다. @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Message extends Entity.. 2022. 12. 26. [커뮤니티 #15] 클린코드 리팩토링 (Admin API) / 도메인 메서드를 사용하는 이유 이제 어느정도 1차 클린코드 리팩토링 작업이 끝이나고 있습니다. 오늘은 Admin API 리팩토링을 진행하였습니다. 이 API에는 유저 관리와, 게시글 관리, 정지 관리를 담당합니다. 기존 리팩토링 전 Service 코드를 확인해보겠습니다. @RequiredArgsConstructor @Service public class AdminService { private final UserRepository userRepository; private final BoardRepository boardRepository; private final UserReportRepository userReportRepository; private final BoardReportRepository boardReportR.. 2022. 12. 26. 이전 1 2 다음