Skip to content

NinjaYoung98/your-connection

Repository files navigation

🙋‍♂your-connection

Java, Spring으로 개발하는 SNS 프로젝트

Your Connection 프로젝트는 RESTful 원칙에 기반하여 설계되었고,
사용자 간의 상호작용을 최적화하기 위한 다양한 SNS 기능을 구현하고 있습니다.

🎯 프로젝트 기간

2023.08.23 ~ 2023.10.06


🔧 사용 기술 스택

  • Java 17
  • Spring boot 2.7
  • MySQL 8
  • Spring Data JPA
  • Spring Security
  • Redis
  • AWS S3

🚀 프로젝트 중점사항 요약

[성능 향상 및 서비스 안정성]

  • 로그인 실패 횟수 트래킹시 조건부 카운트에 대한 동시성 이슈를
    Redis, Lua script를 활용하여 해결
  • 무분별한 api 호출을 방지하기 위해 1시간 안에 10번 이상의 rate limit 발생 시
    지정된 메신저로 알림 발송하는 시스템 구축
  • 조회 작업시 N+1 문제로 인한 성능 저하를 Fetch join, Batch size등 상황에 적절한 방식으로 해결

[사용자 경험 향상]

  • 코드의 복잡성이 증가하는 다중 파일 업로드 기능을 전략 패턴을 활용해, 최소한의 비용으로 구현
  • 관리자를 통한 신고 조치 서비스를 제공하여 컨텐츠 및 서비스 품질 높이기

[보안 및 인증]

  • 로그인 실패 횟수 트래킹 및 일정 횟수 초과시 추가 인증 요구
  • 이메일 인증 및 OAuth2를 활용한 로그인 인증 서비스 구현

[데이터 관리]

  • User 변경 사항 관리 및 추적을 통한 유저 정보 데이터 관리

[SNS 기능]

  • 게시물, 댓글, 좋아요,팔로우등 SNS 서비스 기능 구현
  • 컨텐츠 번역 기능 구현

📌 Project Posting

📌 프로젝트 기능 명세


🚀 프로젝트 공통 사항

docs (template)

Code Style

📑 깃 브랜치 전략

스크린샷 2023-08-30 054216

  • 현재 프로젝트 규모를 고려하여 상대적으로 가벼운 GitHub-flow 정책을 도입하였습니다.

  • 요구사항에 대한 깃 이슈 번호를 할당받고 그에 맞는 feature 브랜치를 생성합니다.

  • GitHub에서 제공하는 칸반보드와 UI 도구인 Git Kraken으로 깃 이슈번호와 브랜치를 관리해 주었습니다.

    [Git Kraken]
    스크린샷 2023-08-30 045044

    [project board]

    스크린샷 2023-08-30 045225

  • [Project Board 바로가기]


🚀 Project ERD


🚀 API Endpoint

About

Java, Spring으로 개발하는 SNS 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published