Skip to content

dongmin1009/linkit-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔗 Linkit - 팀빌딩 매칭 플랫폼

Spring Boot Java MySQL MongoDB Redis

📌 프로젝트 소개

Linkit은 사이드 프로젝트 진행이나 협업 경험을 쌓기 위한 대학생, 사업을 영위하기 위한 예비·초기 창업가들이 겪는 가장 큰 어려움인 팀빌딩 문제를 해결하기 위해 시작한 프로젝트입니다. 현재 실서비스로 운영 중이며, 다양한 직군의 사람들이 자신의 역량을 소개하고 프로젝트에 적합한 팀원을 찾을 수 있도록 지원하고 있습니다.

🎯 핵심 가치

  • 효율적인 팀 매칭: 기술 스택과 관심 분야를 기반으로 한 스마트 매칭
  • 실시간 소통: WebSocket 기반 실시간 채팅으로 즉각적인 커뮤니케이션
  • 신뢰할 수 있는 프로필: 포트폴리오, 경력, 수상 이력 등 검증 가능한 정보 제공

🚀 주요 기능

1. 프로필 관리 시스템

  • 상세 프로필: 기술 스택, 포트폴리오, 경력사항, 학력, 자격증, 대외활동 등 체계적인 이력 관리
  • 미니 프로필: 핵심 정보만을 담은 간략한 프로필 제공
  • 프로필 로그: 프로젝트 진행 상황이나 성과를 기록하는 블로그 형태의 기능
  • 방문자 추적: 프로필 조회 이력 및 방문자 통계

2. 팀 빌딩 & 관리

  • 팀 생성 및 관리: 팀 정보, 히스토리, 멤버 관리
  • 팀 멤버 모집: 모집 공고 작성, 지원자 관리, 팀원 초대 시스템
  • 팀 프로덕트: 팀에서 진행한 프로젝트 성과물 관리
  • 팀 로그: 팀 활동 및 프로젝트 진행 상황 기록

3. 실시간 채팅 시스템

  • STOMP 프로토콜: Spring WebSocket과 STOMP를 활용한 실시간 메시징
  • 채팅방 관리: 팀원 간 실시간 소통을 위한 채팅방
  • 메시지 히스토리: MongoDB를 활용한 채팅 메시지 영구 저장
  • 읽지 않은 메시지 알림: Spring Batch를 활용한 배치 처리

4. 매칭 & 검색

  • 동적 검색: QueryDSL을 활용한 복잡한 검색 조건 처리
  • 커서 기반 페이지네이션: 대용량 데이터에 최적화된 페이징 처리
  • 통합 검색: 프로필, 팀, 공고, 로그 전체를 아우르는 검색 기능
  • 스크랩 기능: 관심 프로필, 팀, 공고 저장

5. 알림 & 커뮤니케이션

  • 이메일 발송: 비동기 처리를 통한 팀 초대, 지원 알림 등
  • 실시간 알림: 채팅 메시지, 댓글, 스크랩 등의 실시간 알림
  • 방문 알림: 프로필 방문자 알림

🛠 기술 스택

Backend Core

  • Framework: Spring Boot 3.2.4
  • Language: Java 17
  • Build Tool: Gradle 8.7

Database & Persistence

  • RDB: MySQL 8.0 (메인 데이터베이스)
  • NoSQL: MongoDB (채팅 메시지 저장)
  • Cache: Redis (세션 관리 및 캐싱), Caffeine (로컬 캐싱)
  • ORM: Spring Data JPA, Hibernate
  • Query: QueryDSL 5.0.0 (동적 쿼리)
  • Migration: Flyway (DB 스키마 버전 관리)

Real-time & Messaging

  • WebSocket: Spring WebSocket + STOMP 프로토콜
  • Message Broker: SimpleBroker (In-memory)
  • Batch: Spring Batch (읽지 않은 메시지 알림)

Infrastructure & DevOps

  • Cloud: AWS (EC2, RDS, S3)
  • CI/CD: GitHub Actions
  • Container: Docker
  • Monitoring: Spring Actuator, p6spy (쿼리 로깅)

Development & Quality

  • Testing: JUnit 5, Mockito, Testcontainers, REST Assured
  • Documentation: Spring REST Docs, SpringDoc OpenAPI
  • Code Quality: Spotless (코드 포맷팅), JaCoCo (테스트 커버리지)
  • Performance: datasource-decorator (쿼리 성능 모니터링)

📁 프로젝트 구조

src/main/java/liaison/linkit/
├── auth/                 # 인증/인가 (커스텀 어노테이션 기반)
├── chat/                 # 실시간 채팅
│   ├── config/          # WebSocket 설정
│   ├── presentation/    # 채팅 컨트롤러
│   ├── service/         # 채팅 비즈니스 로직
│   └── scheduler/       # 배치 스케줄러
├── common/              # 공통 유틸리티
├── file/                # 파일 업로드 (S3 연동)
├── global/              # 전역 설정
│   ├── config/         # Spring 설정 (STOMP, S3, Async 등)
│   ├── exception/      # 전역 예외 처리
│   ├── response/       # 공통 응답 형식
│   └── util/           # 유틸리티 클래스
├── image/               # 이미지 처리
├── login/               # 로그인/로그아웃
├── mail/                # 이메일 발송 (비동기)
├── matching/            # 팀-개인 매칭
├── member/              # 회원 관리
├── notification/        # 알림 서비스
├── profile/             # 프로필 관리
│   ├── presentation/    # 프로필 관련 컨트롤러들
│   ├── business/        # 비즈니스 로직
│   ├── domain/          # 도메인 엔티티
│   └── infrastructure/  # 레포지토리
├── report/              # 신고 기능
├── scrap/               # 스크랩 기능
├── search/              # 통합 검색
├── team/                # 팀 관리
└── visit/               # 방문 기록

About

✨ 팀빌딩 서비스, 링킷

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages