리팩토링 후 코틀린 마이그레이션 진행하는 방향이 좋다.
성공한 경우에는 resultCode
를 200으로 단일 처리하는 것이 좋다.
(실제로 현업에서도 201, 204 등 따로 처리하는 것이 거의 의미가 없다.)
서버의 개수가 늘어나면 Stomp와 SSE에 변화가 필요하다. 중간에 처리하는 외부 브로커를 추가해야 한다.
→ 외부 브로커를 통해 메시지를 중앙에서 관리하면, 여러 서버가 동시에 클라이언트와 통신할 수 있으며, 데이터의 일관성을 유지할 수 있다.
채팅의 경우, 처음부터 Stomp로 시작하기보다는 WebSocket으로 먼저 실습해보는 것이 좋다.
주제 | 구현 방식 | 도입한 기술 | 효과 |
---|---|---|---|
팔로우 - 팔로잉 기능 | Redis를 사용하여 팔로우/팔로잉 관계를 캐싱하고, Redis 장애 시 DB에서 데이터를 복구하는 스케줄러 구현 | Redis, 스케줄러 | 데이터 일관성 유지, 장애 발생 시 빠른 복구 가능 |
도서 검색 | n-gram 인덱스를 사용하여 제목과 설명을 인덱싱하고, 두 글자 키워드로 검색 속도 향상 | n-gram 인덱스 | 검색 속도 및 정확도 향상 |
채팅/알람 기능 | SSE를 구현하여 실시간 알림을 제공하고, Postman으로 테스트하여 기능 확인 | SSE, Postman | 실시간 데이터 전송, 사용자 경험 개선 |
첨부파일 처리 | 에디터에서 임시 이미지를 업로드하고, 최종 업로드 시 해당 이미지를 파일로 교체하는 방식 구현 | 이미지 처리 기술 | 사용자 편의성 증대, 이미지 관리 효율성 향상 |
페이지네이션 처리 | 최근 게시글 위주로 3개월 이내의 게시글만 표시하거나 오래된 게시글을 삭제하여 페이지네이션 최적화 | 데이터베이스 관리 | 페이지네이션 개수 감소, 사용자 경험 개선 |
휴대폰 인증 | 사용자가 번호를 입력하면 CoolSMS를 통해 인증번호를 발송하는 기능 구현 | CoolSMS API | 인증 과정 간소화, 사용자 신뢰도 향상 |
사용자가 작성한 글을 삭제한 경우, DB에 남겨놓는게 더 좋다.
→ 정책에 따라 DB에 남겨놓지 않을수도 있는데 탈퇴 시 완전 삭제를 진행시키는 방향이 더 좋을 것 같다.
소셜 로그인 계정 통합 및 관리자 대시보드 기능이 잘 구현되어 있으며, 실제 서비스에서도 기본적으로 해당 기능들이 구현된 경우가 많다.
→ 다만, 이메일 인증의 경우 개인정보 보호 방침 때문에 강사님은 이메일과 같은 개인정보를 최대한 받지 않는 방식을 선호하지만 해당 프로젝트는 토이 프로젝트이므로, 해당 내용은 참고하기
아래와 같이 요청하신 내용을 표에 추가하였습니다.
고도화 방법 | 설명 |
---|---|
성능 개선 수치화 및 마이그레이션 감소 수치화 | 성능 개선 및 마이그레이션으로 인한 감소 사항을 수치화하면 신뢰도 향상. ✅PPT에 수치가 많을수록 좋다 |
AOP를 활용한 로그 저장 | AOP를 활용하여 Error 로그 및 Info 로그 저장. logback 설정으로 날짜별, 크기 초과 시 압축 및 일정 기간 후 삭제. |
깃허브 액션 CI 활용 | develop 브랜치에 올라오는 PR에 대해 병합 전 자동 빌드 및 테스트 진행. (빌드 시 gradle.test 진행하므로 별도의 test진행할 필요X) |
문의사항 게시판에서 채팅으로 변경 | 문의사항을 게시판에서 채팅으로 변경. 이미지 첨부, 이미지 저장, 드래그 앤 드랍 기능 추가. |
Docker Compose 활용 | 운영 및 개발 서버의 시간 감축을 위해 Docker Compose 활용. |
Swagger API 도입 | API 문서화를 위해 Swagger API 도입. |
Redis 캐시 활용 | API로 내용을 가져올 때 Redis 캐시 사용하여 성능 개선 비교. |
AI 도입 | chatGPT 가격 정보 고려해야 함. 무료 사용을 원한다면 구글 AI 사용 추천, SKT 통신사를 이용한다면 Perplexity 사용 추천 |
cf) 코틀린으로 마이그레이션 시 라인 수 변화 : 스프링 부트로 혜택을 보고 있기 때문에 코틀린으로 마이그레이션 시 30~40% 감소는 어렵고, 5%~10%가 이상적임
→ 만약, 스프링부트로 게임 개발을 한다면 코틀린으로 마이그레이션 시 코드라인 수가 많이 감소한다는 걸 체감할 수 있을 것이다.
→ 줄어든 라인수에 집착하기 보다는 코드가 코틀린스러운지를 파악하는게 더 좋을듯!