본문 바로가기

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.