Skip to content
/ issuehub Public

Mouon 개인공부 플젝 : 개발자들이 쉽게 오픈소스를 접하고 공부할 수 있는 기회를 제공합니다.

Notifications You must be signed in to change notification settings

Mouon/issuehub

Repository files navigation

Issurhub

Stack

아키택처

스크린샷 2024-05-05 오후 5 18 35

소개

Everysource는 오픈소스 프로젝트의 이슈를 쉽고 빠르게 찾을 수 있는 웹사이트입니다. 이 사이트는 엘라스틱 서치를 주 검색 엔진으로 활용하며, 자바 스프링 부트 프레임워크 위에서 JPA를 사용하여 개발되었습니다. 이 프로젝트는 깃허브의 공개 레포지토리에서 이슈와 README 파일을 자동으로 가져와 사용자에게 제공합니다. 또한 errorhub라는 카테고리를 누르면 사용자들끼리 에러와 그 해결책을 공유할 수 있는 커뮤니티가 제공됩니다. 작성은 MarkDown형식으로 작설 할 수 있으며, errorhub의 검색엔진역시 엘라스틱 서치를 통해 빠르게 검색이 가능합니다. 사용자가 간단한 로그인을 하면 사용자의 활동을 바탕으로 관심있을만한 이슈를 추천해줍니다. 이는 추천로직 개선 작업중에 있습니다. 또한 레디스를 이용한 캐싱을 통해 상세보기와 검색등의 응답을 최적화하여 불필요한 DBMS로의 접근을 최소화합니다. 엘라스틱서치의 쿼리문 개선 데이터 베이스와 관련 컨트롤러와 서비스계층의 개선작업 중입니다...

실행 화면

초기화면스크린샷 2024-05-01 오후 11 15 01 리드미 상세보기스크린샷 2024-04-25 오후 8 22 32 이슈 상세보기스크린샷 2024-04-25 오후 8 22 46 에러 커뮤니티인 "errorHub"스크린샷 2024-04-29 오후 3 24 34 "errorHub"자세히 보기스크린샷 2024-04-29 오후 3 24 48 "errorHub" 글 작성 (마크다운 문법으로 작성 가능)스크린샷 2024-04-29 오후 3 28 33 사람들이 가장 관심있어하는 이슈를 보여주는 🔥IssueTop10🔥스크린샷 2024-05-01 오후 4 40 03 사람용자의 활동을 바탕으로 이슈를 추천해주는 🐵Recommend20🐵스크린샷 2024-05-05 오후 3 25 55

로컬 실행 주의점

엘라스틱서치 서버 실행: 엘라스틱서치가 로컬 머신에 설치되어 있고, 서비스가 시작되어 있는지 확인하세요. 레디스 서버 실행: 레디스를 로컬에 설치하고 실행하세요

기능

이슈 검색: 깃허브의 오픈소스 프로젝트 이슈를 실시간으로 검색합니다.
자동 업데이트: 스케줄러를 통해 정기적으로 최신 이슈 정보를 업데이트합니다.
README 조회: 각 프로젝트의 README 파일을 자동으로 가져와 보여줍니다.
멀티 리포지토리 지원: 다양한 깃허브 리포지토리를 지원합니다.
캐싱 지원: 레디스를 이용해 캐싱을 구현하여 데이터 베이스로의 접근을 최소화하여 서버의 부담을 줄입니다.

캐싱 전략

Read Through와 Write Through 조합 사용자가 자주 조회하지만 내용의 변화가 적은 이슈상세나 리드미 상세에 대해서 캐싱을 하도록 하였습니다. 캐싱만료 주기는 10분 리드미와 이슈 업데이트 주기는 6시간 이슈 리스트는 캐싱하기에는 대용량이기 떄문에 메모리에 캐싱하는 것은 위험하고 부적절하다고 판단하였습니다.

About

Mouon 개인공부 플젝 : 개발자들이 쉽게 오픈소스를 접하고 공부할 수 있는 기회를 제공합니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published