All Projects → f-lab-edu → sns-agora

f-lab-edu / sns-agora

Licence: other
[넥슨 & 랜딧 합격 / 초봉 4,500 이상] 소셜 네트워크 서비스 AGORA입니다.

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects
Dockerfile
14818 projects

Labels

Projects that are alternatives of or similar to sns-agora

star-dabang
[번개장터 / 스트리미 입사] 스타벅스 어플을 모티브로 한 카페 서비스
Stars: ✭ 14 (-50%)
Mutual labels:  fitz
PyMuPDF-Optional-Material
Help file downloads, early ZIP binaries, wheels for retired Python 2.7, 3.5.
Stars: ✭ 14 (-50%)
Mutual labels:  fitz
pdf-viewer
A Pure Python PDFViewer, which provides functionalities same as other famous PDFViewers.
Stars: ✭ 58 (+107.14%)
Mutual labels:  fitz
online-marketplace
쿠팡을 클론한 e-commerce 대용량 서버
Stars: ✭ 44 (+57.14%)
Mutual labels:  fitz

🎬 AGORA

📌 개요

    ✔️ Instagram, Facebook 과 같이 평소 사용하던 SNS를 직접 제작하여보기
    ✔️ 실행만 되는 서비스가 아닌 대규모 트래픽을 처리할 수 있는 성능적으로 우수한 서비스 제작하기
    ✔️ 프로젝트 진행에 따라 ReadMe 업데이트 예정입니다.
    ✔️ Jenkins 주소 : http://27.96.135.12:8080/
    ✔️ 보다 자세한 내용을 알고 싶으시다면 Wiki를 참고해주시길 바랍니다.
         Wiki : https://github.com/f-lab-edu/sns-agora/wiki

📌 사용 기술 및 개발환경

framework build tool mybatis lettuce mysql java intellij checkstyle Build Status image OS

📌 프로젝트 중점사항

    ✔️ 확장성 있는 시스템을 구현하고자 노력했습니다.
    ✔️ 쿼리 튜닝을 통해 Full-Table Scan이 발생하는 상황을 줄이고자 노력했습니다.
    ✔️ Batch 작업을 통해 잦은 Connection과 RTT를 줄이고자 노력했습니다.
    ✔️ 캐싱을 적용하여 메모리 기반 작업의 비율을 높혀 성능을 개선하고자 노력했습니다.
    ✔️ nGrinder를 활용하여 성능테스트를 진행하고 성능 개선에 참고했습니다.
    ✔️ pinpoint(APM)를 활용하여 성능 모니터링을 하고, 성능 개선에 참고했습니다.
    ✔️ Junit 프레임워크를 활용하여 코드 신뢰성을 높이고자 단위테스트를 작성했습니다.
    ✔️ CI/CD를 적용하고 자동화된 빌드와 배포를 통해 개발의 생산성을 높히기 위해 노력했습니다.

📌 주요 기능

     1. 피드 기능
     2. 파일 기능
     3. 인증 및 인가 기능
     4. 친구 기능
     5. 좋아요 기능
     6. 댓글 기능
     7. 피드 추천 기능(현재는 등록된 최신 피드들을 추천합니다. 추후 추천 알고리즘을 공부해보고 확장할 예정입니다.)
     8. 푸시 메시지 기능

📌 AGORA 구성도

Sublime's custom image

📌 브랜치 관리 전략

     ✔️ AGORA는 Git-Flow 를 이용하여 브랜치를 관리하였습니다.

Sublime's custom image

    ✔️ master : 배포시 사용할 브랜치. 초기 시행착오에 의하여 몇몇 기능이 merge 되어 있으나, 원래 사용 용도는 완벽히 배포가 가능한 상태에만 merge가 되어야만 합니다.
    ✔️ develop : 다음 버전을 개발하는 브랜치, 완전히 배포가 가능하다고 생각되면 master 브랜치에 merge 합니다.
    ✔️ feature : 기능을 개발하는 브랜치
    ✔️ release : 배포를 준비할 때 사용할 브랜치
    ✔️ hotfix : 배포 후에 발생한 버그를 수정 하는 브랜치

참고 사이트

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].