Skip to content
@sidefit12

SideFit

나에게 맞는 사이드 프로젝트와 팀원을 연결하는 플랫폼
  • Korea, South
README HERO SHOWCASE

SideFit

나와 잘 맞는 프로젝트를 발견하다

관심 토픽, 기술 스택과 희망 역할을 기반으로 사용자에게 적합한 사이드 프로젝트와 팀원을 연결하는 웹 플랫폼입니다.



프로젝트 개요

구분 내용
프로젝트명 SideFit
프로젝트 기간 2026.07 ~ 진행 중
프로젝트 형태 AI 추천 기반 사이드 프로젝트 매칭 웹 서비스
주요 사용자 개발자, 기획자, 디자이너, 사이드 프로젝트 리더
핵심 가치 탐색 비용 감소, 모집 정보 구조화, 적합도 기반 연결, 추천 근거의 투명성
핵심 목표 프로젝트 탐색부터 지원과 팀 구성까지의 과정을 하나의 서비스에서 관리할 수 있는 환경 구축

프로젝트 배경

개발자, 기획자와 디자이너는 새로운 기술을 실제 서비스에 적용하거나 협업 경험과 포트폴리오를 만들기 위해 사이드 프로젝트에 참여합니다.

하지만 현재 사이드 프로젝트 모집 정보는 개발 커뮤니티, 오픈 채팅방, SNS와 게시판 등에 분산되어 있으며 대부분 자유로운 형식으로 작성됩니다.

참여 희망자는 프로젝트의 주제, 기술 스택, 모집 역할, 예상 기간과 진행 방식을 확인하기 위해 여러 게시글을 반복해서 살펴봐야 합니다. 동일하거나 유사한 분야라도 서로 다른 표현을 사용하면 단순 키워드 검색에서 누락될 수 있습니다.

모집자 역시 지원자의 기술 경험, 관심 분야, 희망 역할과 참여 조건을 개별적으로 확인해야 합니다. 충분한 정보가 공유되지 않은 상태에서 팀이 구성되면 기대한 역할과 실제 업무가 다르거나 프로젝트의 목표가 맞지 않아 중도 이탈로 이어질 수 있습니다.

SideFit은 사용자 프로필과 모집 정보를 구조화하고, 조건 일치도와 설명의 의미적 유사성을 함께 분석하여 프로젝트와 참여자 사이의 탐색 및 조율 비용을 줄이고자 합니다.


SideFit이 해결하려는 문제

분산된 프로젝트 모집 정보

사이드 프로젝트 모집 글이 여러 커뮤니티와 채널에 흩어져 있어 사용자가 자신에게 적합한 프로젝트를 발견하기 어렵습니다.

SideFit은 프로젝트 모집과 탐색, 지원 및 팀 구성 과정을 하나의 웹 서비스에서 관리할 수 있도록 구성합니다.

비교하기 어려운 자유 형식의 모집 글

모집 글마다 작성 형식과 표현이 달라 프로젝트의 기술 스택, 역할, 기간과 진행 조건을 한눈에 비교하기 어렵습니다.

SideFit은 토픽, 기술 스택, 모집 역할, 역할별 인원, 진행 방식과 모집 상태를 구조화된 데이터로 관리합니다.

반복적인 프로젝트 탐색

참여 희망자는 자신의 관심 분야와 기술 역량에 맞는 프로젝트를 찾기 위해 다수의 모집 글을 직접 확인해야 합니다.

SideFit은 사용자 프로필과 모집 글의 적합도를 계산하여 관련성이 높은 프로젝트를 우선적으로 제공합니다.

모집자와 지원자 사이의 정보 불일치

프로젝트에 참여한 뒤 희망 역할, 기술 수준이나 진행 방식이 예상과 다르다는 사실을 확인하면 팀 구성 이후 이탈이 발생할 수 있습니다.

SideFit은 지원 전에 프로젝트 조건과 사용자 정보를 명확하게 확인할 수 있도록 하여 역할과 참여 조건의 불일치를 줄입니다.

설명하기 어려운 추천 결과

추천 점수만 제공하면 사용자는 어떤 이유로 프로젝트가 추천되었는지 판단하기 어렵습니다.

SideFit은 일치한 관심 토픽, 기술 스택, 희망 역할과 진행 조건을 추천 근거로 함께 제공합니다.


서비스 이용 흐름

flowchart LR
    User[사용자] --> Profile[프로필 등록]
    Leader[프로젝트 리더] --> Project[모집 글 등록]

    Profile --> Platform[SideFit 플랫폼]
    Project --> Platform

    Platform --> Search[검색 및 조건 필터링]
    Platform --> Recommend[적합도 기반 추천]
    Platform --> Application[프로젝트 지원 관리]

    Search --> Detail[프로젝트 상세 확인]
    Recommend --> Detail

    Detail --> Apply[프로젝트 지원]
    Apply --> Application

    Application --> Review[지원자 검토]
    Review --> Decision{승인 또는 거절}

    Decision -->|승인| Team[팀원 확정]
    Decision -->|거절| History[지원 결과 기록]

    Team --> User
    History --> User
Loading

사용자는 관심 토픽, 기술 스택과 희망 역할을 프로필에 등록하고 검색 또는 추천을 통해 프로젝트를 탐색합니다.

프로젝트 리더는 모집 조건을 구조화하여 등록하고, 프로젝트에 지원한 사용자를 확인한 뒤 승인 또는 거절할 수 있습니다.


서비스 구성

사용자 프로필

사용자의 관심 토픽, 보유 및 학습 중인 기술 스택, 희망 역할과 선호하는 프로젝트 진행 방식을 관리합니다.

자기소개와 포트폴리오를 함께 등록하여 프로젝트 리더가 지원자의 경험과 참여 목적을 확인할 수 있도록 합니다.

프로젝트 모집

프로젝트 주제와 소개뿐 아니라 토픽, 사용 기술, 모집 역할, 역할별 인원, 진행 기간, 진행 방식과 모집 마감일을 구조화하여 관리합니다.

프로젝트 상태를 모집 중, 모집 완료, 진행 중과 완료 등의 단계로 구분하여 현재 상태를 명확하게 제공합니다.

프로젝트 탐색

키워드뿐 아니라 토픽, 기술 스택, 역할, 진행 방식과 모집 상태를 조합하여 프로젝트를 검색할 수 있도록 합니다.

목록 조회에는 페이지네이션을 적용하고 프로젝트별 핵심 조건을 비교할 수 있도록 제공합니다.

지원 및 팀 구성

사용자는 프로젝트에 지원하거나 지원을 취소할 수 있으며, 프로젝트 리더는 지원자를 승인하거나 거절할 수 있습니다.

중복 지원과 마감된 프로젝트에 대한 지원을 방지하고, 승인된 지원자는 프로젝트 팀원으로 관리합니다.

맞춤형 추천

사용자의 관심 토픽, 기술 스택, 희망 역할과 진행 조건을 프로젝트 정보와 비교하여 적합도를 계산합니다.

구조화된 조건의 일치도와 프로젝트 설명의 의미적 유사도를 결합하고, 추천 결과와 함께 구체적인 추천 이유를 제공합니다.


Repository Guide

SideFit은 서비스 구현과 설계 산출물의 책임을 분리하기 위해 여러 저장소로 운영됩니다.

저장소 담당 영역 설명
sidefit12-backend Backend Platform 인증, 사용자, 프로필, 프로젝트 모집, 지원, 팀 구성과 추천 API를 관리합니다.
sidefit12-data-modeling Data Modeling 서비스의 개념·논리·물리 데이터 모델과 PostgreSQL DDL, 데이터 사전 및 검증 문서를 관리합니다.
.github Organization Profile SideFit 조직 소개와 공통 GitHub 협업 설정을 관리합니다.

Vue 기반 웹 클라이언트는 UI/UX 설계와 핵심 백엔드 API가 확정된 이후 별도의 저장소로 분리할 예정입니다.

각 저장소의 구체적인 구현 기능, 내부 구조와 실행 방법은 해당 저장소의 README에서 확인할 수 있습니다.


시스템 책임 분리

flowchart TB
    Client[Vue Web Client<br/>프로젝트 탐색·지원·관리]
    API[FastAPI Application<br/>REST API·인증·권한 검증]

    Auth[회원·인증]
    Profile[프로필·온보딩]
    Project[프로젝트 모집]
    Application[지원·팀 구성]
    Bookmark[관심 목록]
    Recommendation[추천 모듈]

    Database[(PostgreSQL)]
    Vector[(pgvector)]
    Embedding[Sentence Transformers]

    Client -->|HTTPS REST API| API

    API --> Auth
    API --> Profile
    API --> Project
    API --> Application
    API --> Bookmark
    API --> Recommendation

    Auth --> Database
    Profile --> Database
    Project --> Database
    Application --> Database
    Bookmark --> Database

    Recommendation --> Database
    Recommendation --> Vector
    Recommendation --> Embedding
Loading

초기 서비스는 운영 복잡도를 줄이기 위해 하나의 FastAPI 애플리케이션과 PostgreSQL을 사용하는 모듈형 모놀리스 구조로 개발합니다.

각 도메인은 router-service-repository 계층으로 책임을 분리하고 공통 설정, 데이터베이스 세션, 인증과 예외 처리는 core 영역에서 관리합니다.


주요 기능

기능 영역 주요 기능
회원 및 인증 이메일 회원가입·로그인, 이메일 인증, JWT 인증, 로그아웃, 회원 탈퇴
프로필 관리 관심 토픽, 보유·학습 기술, 희망 역할, 자기소개, 포트폴리오와 선호 조건 등록
모집 글 관리 모집 글 작성·조회·수정·삭제, 역할별 모집 인원, 마감일과 프로젝트 상태 관리
검색 및 필터 키워드 검색, 토픽·기술·역할·진행 방식·모집 상태 조합 필터, 페이지네이션
프로젝트 지원 지원·취소, 모집자의 승인·거절, 중복 지원 방지와 지원 상태 관리
팀원 관리 승인된 지원자의 팀원 확정, 합류·탈퇴·퇴출과 관련 이력 관리
AI 추천 사용자 맞춤 프로젝트 추천, 유사 프로젝트 추천, 추천 점수와 추천 이유 제공
관심 목록 관심 프로젝트 저장·해제와 저장 목록 조회
마이페이지 작성한 모집 글, 지원한 프로젝트, 받은 지원과 상태별 활동 이력 조회
운영 관리 사용자·프로젝트 신고, 신고 처리, 제재와 기준 데이터 관리

맞춤형 추천 흐름

flowchart TD
    UserProfile[사용자 프로필<br/>관심 토픽·기술 스택·희망 역할]
    Projects[모집 중인 프로젝트]

    UserProfile --> Candidate[추천 후보 생성]
    Projects --> Candidate

    Candidate --> Filter[작성·지원한 프로젝트 제외]
    Filter --> Rule[구조화 조건 점수 계산]
    Filter --> Semantic[설명 의미 유사도 계산]

    Rule --> Normalize[점수 정규화]
    Semantic --> Normalize

    Normalize --> Hybrid[하이브리드 추천 점수]
    Hybrid --> Reason[추천 이유 생성]
    Reason --> Result[추천 결과 반환]
Loading

구조화 조건 점수

희망 역할, 관심 토픽, 보유 기술과 선호 진행 방식의 일치도를 기준으로 점수를 계산합니다.

계산 규칙이 명확하여 데이터가 적은 초기 서비스에서도 추천 결과를 재현할 수 있고, 일치한 항목을 추천 이유로 제공할 수 있습니다.

의미적 유사도 점수

사용자의 관심 정보와 프로젝트 제목, 소개 및 토픽을 문장 임베딩으로 변환하고 코사인 유사도를 계산합니다.

이를 통해 표현은 다르지만 의미가 유사한 프로젝트도 추천 후보에 포함할 수 있습니다.

하이브리드 추천

구조화된 조건 점수와 의미적 유사도 점수를 정규화하여 하나의 추천 점수로 결합합니다.

추천 기능은 사용자의 참여 여부를 대신 결정하지 않고, 사용자가 먼저 확인할 프로젝트 후보를 좁혀 주는 탐색 보조 기능으로 사용합니다.

추천 근거 제공

최종 점수와 함께 다음과 같은 추천 근거를 제공합니다.

  • 희망 역할과 모집 역할의 일치
  • 관심 토픽과 프로젝트 토픽의 일치
  • 보유 또는 학습 기술과 사용 기술의 일치
  • 선호하는 진행 방식과 프로젝트 진행 방식의 일치
  • 사용자 관심 정보와 프로젝트 설명의 의미적 유사성

데이터 모델링

SideFit은 프로젝트 탐색부터 팀 구성과 활동 이력까지의 상태를 안정적으로 관리하기 위해 데이터 모델을 구현에 앞서 설계합니다.

구분 설계 범위
개념 모델 24개 비즈니스 엔티티
논리 모델 26개 엔티티와 속성, 식별자 및 관계
물리 모델 PostgreSQL 기준 26개 테이블과 PK·UK·FK·CHECK·인덱스
외래키 관계 45개
관리 산출물 ERD, PostgreSQL DDL, 데이터 사전, 변경 이력과 무결성 검증 보고서

주요 데이터 원칙

  • 사용자와 프로젝트의 토픽, 기술 스택과 역할은 기준 테이블 및 연결 테이블로 관리합니다.
  • 동일한 사용자가 하나의 프로젝트에 중복 지원하지 못하도록 유일성 제약조건을 적용합니다.
  • 지원 상태는 PENDING, ACCEPTED, REJECTED, CANCELED로 관리합니다.
  • 마감되거나 모집이 완료된 프로젝트에는 새로운 지원을 허용하지 않습니다.
  • 프로젝트와 사용자 데이터에는 필요한 소프트 삭제 및 개인정보 익명화 정책을 적용합니다.
  • 팀원 합류, 탈퇴와 퇴출처럼 이력 보존이 필요한 변경은 이벤트 이력으로 관리합니다.

기술 스택

구분 기술
Frontend Vue 3, TypeScript, Vite, Vue Router, Pinia, Axios, Tailwind CSS
Backend Python 3, FastAPI, Uvicorn, SQLAlchemy 2, Alembic, Pydantic 2
Database PostgreSQL, pgvector
Authentication JWT Access Token·Refresh Token, 비밀번호 단방향 해시
Recommendation 규칙 기반 스코어링, Sentence Transformers, 문장 임베딩, 코사인 유사도
Test & Quality pytest, HTTPX TestClient, Ruff, API 통합 테스트
Infrastructure Docker, Docker Compose, GitHub Actions
Documentation OpenAPI/Swagger, Figma, ERD, README
Collaboration GitHub Issues, GitHub Flow, Pull Request, Conventional Commits

pgvector, Redis, Sentence Transformers와 외부 AI API는 각 기능의 개발 단계와 실제 필요성에 따라 순차적으로 적용합니다.


주요 사용자

협업 경험을 쌓고 싶은 취업·이직 준비생

개인 학습을 넘어 역할 분담, API 계약, 코드 리뷰와 일정 조율 등의 협업 경험을 만들고 싶은 사용자입니다.

새로운 기술을 적용하고 싶은 개발자

학습한 기술을 실제 서비스에 적용하고 다른 직군과 함께 프로젝트를 완성하려는 사용자입니다.

개발자와 협업하려는 기획자 및 디자이너

자신의 서비스 아이디어와 디자인을 실제 웹 서비스로 구현할 개발자를 찾는 사용자입니다.

프로젝트 팀원을 모집하는 리더

프로젝트에 필요한 역할과 기술 역량을 갖춘 지원자를 체계적으로 모집하고 관리하려는 사용자입니다.

적합한 프로젝트를 찾기 어려운 사용자

관심 분야와 희망 역할은 명확하지만 여러 모집 채널에서 자신에게 맞는 프로젝트를 찾는 데 어려움을 겪는 사용자입니다.


프로젝트 차별점

모집 정보의 구조화

자유 형식의 게시글만 제공하지 않고 토픽, 기술 스택, 역할, 모집 인원과 진행 조건을 구조화하여 프로젝트 간 비교가 가능하도록 합니다.

사용자 프로필 기반 추천

검색어를 직접 입력하는 방식에 더해 사용자의 관심 토픽, 기술과 희망 역할을 기준으로 개인화된 프로젝트를 제공합니다.

규칙과 의미 유사도를 결합한 추천

명시적인 조건 일치도와 프로젝트 설명의 의미적 유사도를 함께 활용하여 단순 키워드 검색의 한계를 보완합니다.

설명 가능한 추천

추천 점수만 제공하지 않고 일치한 토픽, 기술 스택, 역할과 진행 조건을 구체적인 추천 이유로 제공합니다.

탐색부터 팀 구성까지 연결

프로젝트 검색뿐 아니라 지원, 승인·거절, 모집 마감과 팀원 확정까지의 상태를 하나의 서비스 안에서 관리합니다.

구현 이전의 데이터 무결성 검증

백엔드 구현에 앞서 개념·논리·물리 데이터 모델을 설계하고 유일성 제약조건, 상태 전이와 참조 무결성을 검증합니다.


개발자 소개

백현빈
백현빈

Project Lead · Backend
AI Recommendation · Infrastructure

이름 담당 역할
백현빈 서비스 기획 및 PM, 데이터 모델링, FastAPI 백엔드 아키텍처, 인증·프로필·프로젝트·지원 도메인, 추천 시스템, 테스트 자동화와 배포 환경 구성

개발 및 관리 방식

명세 기반 개발

사용자 흐름과 기능 명세를 먼저 정의하고, 이를 기준으로 API와 데이터 모델을 설계합니다.

API 경로나 데이터 형식이 변경되는 경우 구현보다 명세를 먼저 수정하여 문서와 코드의 불일치를 줄입니다.

이슈 단위 작업 관리

모든 작업은 GitHub Issue로 정의하고 작업 목적, 구현 범위, 완료 조건과 관련 문서를 기록합니다.

Pull Request 기반 변경 관리

기능별 브랜치에서 작업한 뒤 Pull Request를 통해 main 브랜치에 병합합니다.

Pull Request에는 구현 내용, 테스트 결과와 API 또는 데이터베이스 변경 여부를 작성합니다.

데이터 모델 변경 이력 관리

ERD, PostgreSQL DDL, 데이터 사전과 모델 변경 이력을 동일한 저장소에서 관리합니다.

데이터 모델 변경 시 참조 무결성, 제약조건과 기존 데이터에 미치는 영향을 함께 검토합니다.

자동화된 품질 검증

GitHub Actions에서 코드 검사, 단위·통합 테스트와 Docker 이미지 빌드 여부를 확인합니다.

회원가입부터 프로젝트 작성, 지원, 승인과 추천 조회까지의 핵심 흐름을 통합 테스트로 검증합니다.

보안과 권한 검증

비밀번호와 토큰 등 민감한 정보는 로그와 API 응답에 포함하지 않습니다.

프로젝트 수정·삭제, 지원자 조회와 승인·거절에는 사용자 인증뿐 아니라 객체 소유권과 역할을 함께 검증합니다.


프로젝트 일정

단계 기간 주요 목표
기획 1주차 서비스 문제 정의, 목표 확정, 유사 서비스 조사와 MVP 범위 결정
기능·데이터 설계 2주차 기능 명세, 사용자 흐름, 상태 정의, ERD와 기준 데이터 설계
와이어프레임 3주차 정보 구조 설계, 핵심 화면 와이어프레임과 사용자 흐름 검증
UI 프로토타입 4주차 디자인 시스템 정의, 주요 화면 UI와 클릭 가능한 프로토타입 완성
API 설계·기반 구현 5주차 API 명세, FastAPI 프로젝트 구조, 인증과 PostgreSQL·Alembic 설정
핵심 기능 구현 6주차 프로필, 모집 글, 검색, 관심 목록과 웹 화면 API 연동
지원·추천 구현 7주차 지원 상태 관리, 규칙 기반 추천, 추천 이유와 임베딩 추천 실험
통합·배포 8주차 통합 테스트, 오류 수정, CI/CD, 운영 배포와 문서 정리

문서 안내

프로젝트의 세부 구현 및 설계 내용은 각 저장소에서 확인할 수 있습니다.


Pinned Loading

  1. sidefit12-backend sidefit12-backend Public

    사용자의 관심 분야·기술 스택·희망 역할을 기반으로 사이드 프로젝트와 팀원을 추천하는 FastAPI 백엔드 서버 저장소

    Python

  2. sidefit12-data-modeling sidefit12-data-modeling Public

    SideFit 서비스의 개념·논리·물리 데이터 모델과 ERD 설계 산출물을 관리하는 저장소

Repositories

Showing 3 of 3 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…