Skip to content

branchify-io/BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI와 다양한 협업툴을 연결해 분산된 정보를 통합하여 제공하는 협업 플러그인 README

image

프로젝트 소개

브랜치파이(Branchify)는 AI와 다양한 협업 툴을 연결해 분산된 정보를 통합 제공하는 협업 플러그인 서비스입니다. 이 서비스는 AI-Agent가 여러 협업 툴에 흩어진 업무 데이터를 통합 관리하고 자동화하며, 문맥을 분석하여 관련 자료를 추천하는 AI 기반 자동화 기능을 제공합니다. 또한 사용자가 필요에 따라 AI-Agent와 협업 툴을 조합해 맞춤형 플러그인 형태로 확장할 수 있습니다.


팀원 구성

권소현 남윤혁 박우찬 유주영

@hyuke81

@namyoonhyeok

@pwc2002

@Juyounge-e

1. 개발 환경

  • Front : React, Vite, emotion.js, axios
  • Back-end : Java, Spring Boot, Spring Data JPA, MySQL
  • 버전 및 이슈관리 : Github, Github Issues, Github Action
  • 협업 툴 : Notion, Discord

2. 채택한 개발 기술과 브랜치 전략

Spring Boot, Spring Data JPA & MySQL, Spring Security & JWT

  • Spring Boot

    • 이 프로젝트는 Jira, Notion, Slack 연동, 사용자 인증, 파일 관리(S3) 등 여러 독립적인 기능을 제공하는 API 서버입니다. Spring Boot의 'starter' 기반 의존성 관리는 spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-security처럼 각 기능 구현에 필요한 라이브러리들을 충돌 없이 간편하게 통합해주었습니다.
    • 초기 설정의 복잡성을 대폭 줄여 개발자가 비즈니스 로직에만 집중할 수 있는 환경을 제공합니다.
    • 내장 Tomcat 서버를 활용하여 복잡한 외부 WAS 설정 없이도 개발 초기 단계부터 빠르게 서버를 실행하고 API를 테스트하며 개발 생산성을 극대화할 수 있었습니다.
  • Spring Data JPA & MySQL

    • Spring Data JPA의 Repository 인터페이스를 활용하여 각 도메인에 필요한 CRUD 로직을 보일러플레이트 코드 없이 자동으로 구현했습니다. 이를 통해 SQL 쿼리 작성보다 객체지향적인 비즈니스 로직에 집중할 수 있었습니다.
    • 이렇게 생성된 여러 테이블 간의 관계를 명확하게 설정하고, 트랜잭션을 통해 데이터의 무결성과 일관성을 보장하기 위해 신뢰성 높은 관계형 데이터베이스인 MySQL을 최종 데이터 저장소로 채택했습니다.
  • Spring Security & JWT

    • 사용자의 인증 정보뿐만 아니라 외부 서비스 연동을 위한 민감한 OAuth 토큰을 다루기 때문에 강력한 보안이 필수적이었습니다. Spring Security의 보안 아키텍처를 적용하여 모든 API 요청에 대한 인증 및 인가 절차를 체계적으로 관리하고 엔드포인트를 보호했습니다.
    • Stateless 인증 방식을 구현하기 위해 채택했습니다. 서버가 클라이언트의 세션 상태를 저장할 필요가 없어 확장성이 뛰어나고, 다양한 클라이언트 환경에 유연하게 대응할 수 있습니다.

3. 프로젝트 구조

.
├── build.gradle                
├── settings.gradle
├── .gitIgnore
├── gradlew                     
└── src/                       
   ├── main/java/com/ example/merging/
   │   ├── MergingApplication.java     
   │   │
   │   ├── config/                     
   │   │   └── SecurityConfig.java     
   │   │  
   │   ├── jwt/                       
   │   │   ├── JwtAuthenticationFilter.java 
   │   │   └── JwtTokenProvider.java     
   │   │
   │   ├── user/                       
   │   │   ├── User.java
   │   │   └── UserDTO.java
   │   │   ├── UserRepository.java     
   │   │   ├── UserService.java        
   │   │   └── UserController.java
   │   │   └── RefreshToken.java
   │   │   └── RefreshTokenRepository.java
   |   |
   │   ├──assistantList/                       
   │   │   ├── AssistantList.java               
   │   │   ├── AssistantListRepository.java     
   │   │   ├── AssistantListService.java        
   │   │   └── AssistantListController.java   
   │   │           
   │   ├── notionOAuth/
   │   │   ├── NotionOAuth.java
   │   │   └── NotionOAuthDTO.java
   │   │   ├── AuthorizationCodeDTO.java
   │   │   ├── NotionTokenResponseDTO.java
   │   │   ├── NotionOAuthRepository.java     
   │   │   ├── NotionOAuthService.java        
   │   │   └── NotionOAuthController.java 
   │   │      
   │   ├── slackOAuth/
   │   │   ├── SlacknOAuth.java
   │   │   ├── SlacknOAuthDTO.java
   │   │   ├── SlacknOAuthRepository.java
   │   │   ├── SlacknOAuthService.java
   │   │   ├── SlackOAuthController.java 
   │   │
   │   ├── jiraOAuth/
   │   │   ├── JiraAuthController.java 
   │   │   └── ...
   │   │
   │   ├── s3/                         
   │   │   ├── S3Controller.java
   │   │   └── S3Service.java
   │   │
   │   └── converter/                  
   │   |   └── StringListConverter.java
   │   │
   │   └── resources/                  
   │       ├── application.yml
   │       ├── static/                 
   │       └── templates/             
   │
   └── test/java/com/example/merging/               
       └── MergingApplicationTests.java 
           

4. 개발 기간

개발 기간

  • 전체 개발 기간 : 2025-01-04 ~ 2025-02-28

5. 사용자 기능

  • AI 기반 검색 기능

    • 문서, 대화 맥락을 기반으로 AI가 필요한 정보를 검색하여 제공합니다.
  • 대화 요약 및 정리 기능

    • 채팅형 서비스(Slack 등)의 대화 내용을 요약하고, 회의 내용, 주요 결정사항, 액션 아이템을 자동으로 정리해 줍니다.
  • AI 기반 업무 자동화

    • 일정 알림, 태스크 업데이트와 같은 반복적인 업무를 AI가 자동으로 처리하여 사용자의 업무 효율을 높여줍니다.
  • AI 챗봇 기능

    • 메신저의 챗봇에 질문하면, 여러 협업 툴에서 관련된 정보를 자동으로 찾아 답변해 줍니다.
  • 통합된 업무 환경 제공

    • Notion, Jira, PDF 문서 등 다양한 협업 툴과 연동하여 채팅형 SaaS에서 모든 업무를 한 곳에서 관리할 수 있습니다.
  • 간단한 설정 및 직관적인 UI - 경쟁 서비스에 비해 설정이 간단하고, 기존 협업 툴 인터페이스에서 바로 도입할 수 있어 누구나 쉽게 사용할 수 있습니다.

About

Branchify 백엔드 레포지토리

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •