본문 바로가기

etc/실전프로젝트(21. 12. ~ 22. 1.)46

[실전/성능개선] 조회 성능 개선하기 성능 개선 우리 밈글밈글 사이트는 목록 조회의 기능이 많았다. 그렇기 때문에 성능을 개선해야 한다면 조회의 성능이어야 한다고 생각했고, 이를 위한 많은 고민을 했다. 목록 조회에는 많은 관계가 들어간다. 1. 작성자 정보 2. 조회수 정보 3. 좋아요 개수 정보 4. 댓글 개수 정보 5. 좋아요 여부 정보 6. 댓글 목록 정보 ... 기존의 Spring Data JPA를 이용한 방식은 쿼리의 자유로운 호출이 어렵기 때문에 목록 조회에서 관계 엔티티의 데이터를 불러오기 위한 N+1 문제를 회피하기 어려웠다. 이는 특히 관계가 많은 게시글 목록 조회에서 치명적인 성능 저하를 일으켰다. 이 문제를 해결하기 위한 방법은 단순했다. 바로 관계 데이터를 위한 컬럼을 만들고 이 데이터를 update 함으로써 관리를 .. 2022. 2. 1.
[실전/YoutubeDataAPI] 유튜브 검색결과 신뢰도 높이기 Levenshtein Distance Algorithm 유튜브 영상을 검색해 관련성 있는 영상을 가져오는 기능을 구현하던 중 문제가 발생했다. 유튜브 영상의 검색결과가 생각보다 그렇게 관련성이 높은 결과가 잘 나오지 않는다는 점이었다. 키워드와 거의 정확히 관련이 있는 영상만 가져와야 하는 상황이었기 때문에 이것은 꽤나 심각한 문제였다. 그래서 대책을 강구하기 시작했다. 그렇게 생각하던 중, 제목이 유사한 영상을 채택한다면 일반적으로 꽤나 높은 신뢰도의 영상을 서치할 수 있게 될 것이라고 생각했다. 그래서 찾은 것이 문자열의 유사도를 구하는 알고리즘이었다. 내가 채택한 알고리즘은 레벤슈타인 거리 알고리즘(Levenshtein distance algorithm) 이었다. 이 알고리즘은 문장의 유사도를 0~.. 2022. 2. 1.
[실전/Redis] 오픈 사전 페이지 동시 수정 제한 동시 수정 제한 우리가 만들었던 밈글밈글 사이트는 오픈사전 형식이었기 때문에 최초 작성자가 아니라고 해도 누구나 편집을 할 수 있게 되어 있다. 이 말은, 다른 사람들이 하나의 용어사전 글을 동시에 수정할 수 있다는 것이다. 이는 수정을 일찍 마친 사람의 데이터가 손쉽게 소실될 수 있음을 의미하기 때문에 이런 부분들을 제한할 수 있어야 했다. 당시 나왔던 대안은 두 가지가 있었다. 1. 동시에 수정이 불가능하도록 하자! 2. 용어 사전 페이지의 편집 기능을 다른 뜻 추가 기능처럼 만들어서 아래에 붙이도록 하자! 개인적으로 2.의 적용안이 좋다고 생각했지만, 이미 페이지 개발은 2.와 다른 형식으로 완료된 상태였기 때문에, 이를 적용하기 위해선 추가적인 프론트엔드의 작업 수요가 발생하는 상황이었다. 안그래.. 2022. 1. 31.
[실전/Redis] 알람 기능의 변화가 있을 때만 DB에서 가져오기 기능 향상 전략 프로젝트도 끝났겠다, 여기에 사용된 내 고민들을 여기에 풀어보면서 실전프로젝트 카테고리를 마무리 해보려고 한다. 우리 페이지는 알람을 받는데 웹소켓을 사용하지 않았다. 페이지를 이동할 때마다 알람 정보를 요청하는 식으로 작동한 것이다. 이것은 변화량이 적은 알람 기능에 있어서 비효율적인 동작이다. 그렇기 때문에 이 부분에 대한 개선이 필요했다. 지금부터 적을 부분은 당장 적용한 부분(백엔드 단일)과 이후에 더욱 강화하여 적용할 수 있는 부분(프론트엔드와 협업)들이다. 1. 지금은 너무 비효율적이다 현재의 방식은 페이지를 이동할 때마다 백엔드에 알람 정보를 요청, 사용자의 알람 테이블에서 알람 정보를 모두 가져오는 식으로 되어있다. 이는 자주 바뀌지 않는 내용인데도 주기적으로 DB에 요청하.. 2022. 1. 31.
항해99 4기 1/29(토) TIL 오늘 한 일 놀았다! 그동안 쌓인 피로를 확실하게 해소하고 리프레시한 뒤 이력서를 쓰기위해 제대로 놀았다. 아이좋아 2022. 1. 30.
항해99 4기 1/28(금) TIL 오늘 한 일 1. 최종발표 오늘 배운 것 1. 후기는 별도로 작성했다. 항해99 1/28(금) 발표 - 실전프로젝트 최종 발표 밈글밈글 https://memegle.xyz 우리 밈글밈글 프로젝트는 신조어와 밈을 작성할 수 있는 오픈백과 사전이다. 각종 밈 퀴즈도 풀어볼 수 있다. 뭘 했는지 소개하는게 좋을 것 같아서 미리 해본다. 실전 dazbee.tistory.com 2022. 1. 30.