Skip to content

This repository belongs to UMC LinkU 2025 project and this is for spring boot challengers who called backend.

Notifications You must be signed in to change notification settings

LinkYou-2025/LinkU_backend

Repository files navigation

backend-server

🔗 링큐(Link:U): Link+You
링크와 당신을 잇다 당신을 생각하는 링큐

유저맞춤 링크추천으로 "사용자에게 가장 적합한 콘텐츠를 제공" 하며,
단순 아카이빙을 넘어, 정보 재소비와 재발견의 즐거움을 제공.

  • 사용자가 앱에 저장한 링크를 바탕으로 AI가 정보를 간단히 요약하고 분류
  • 저장된 링크 기반으로 사용자의 라이프스타일, 감정 상태 등을 고려한 맞춤형 큐레이션 서비스 제공
  • 저장한 링크를 맞춤형 뉴스레터 형식으로 제공
표지

✅ 진행 사항 확인

  • Notion에서 자세한 진행사항 보러가기 ->
    Notion

💙 팀원 소개

장서원 김하진 나현주 조효림
@oculo0204 @Hajin99 @HyeonJooooo @hyorim-jo
ai기반 링크 생성 및 추천, 회원 탈퇴, 서버 배포 회원정보 관련 기능, redis 설정 ai기반 링크 큐레이션, cloudwatch 설정 폴더 공유 포함 폴더 관련 기능

🛠 기술 스택 및 환경

  • Backend

    • Java 17
    • Spring Boot 3.4.7
    • Gradle 8.14.2
    • Hibernate ORM 6.0.2
  • Database

    • MariaDB 3.3.3 (JDBC 드라이버)
  • 캐싱 및 세션

    • Redis (spring-boot-starter-data-redis)
  • 보안 및 인증

    • Spring Security
    • JWT (jjwt 라이브러리)
  • API 문서화

    • Swagger (springdoc-openapi-starter-webmvc-ui 2.7.0)
  • UI 템플릿

    • Thymeleaf + Spring Security
  • 클라우드 & 인프라

    • AWS EC2, S3, Route53
  • CI/CD

    • GitHub Actions
  • 주요 라이브러리

    • Lombok, QueryDSL, JavaMail, SendGrid, Jsoup, Spring WebFlux
  • Gradle 설정

    • java, org.springframework.boot, io.spring.dependency-management 플러그인 적용
    • QueryDSL 자동 생성, 컴파일러 추가 옵션 설정

📚 문서


📂 프로젝트 구조

backend-server/
├── src/
│   ├── main/
│   │   ├── java/com/linku/
│   │   │   ├── controller/   # API 엔드포인트
│   │   │   ├── service/      # 비즈니스 로직
│   │   │   ├── repository/   # 데이터 접근 계층
│   │   │   ├── config/       # 설정
│   │   │   └── utils/        # 유틸리티 클래스
│   │   └── resources/
│   │       ├── application.properties
│   │       └── data.sql      # 초기값 설정
│   └── test/
│       └── java/com/linku/
└── build.gradle

📌 Branch 전략

Branch

본 프로젝트는 Gitflow 브랜치 전략을 따릅니다.

브랜치 전략 설명 이미지

모든 기능 개발은 다음 흐름을 따릅니다.

  1. 개발하고자 하는 기능에 대한 이슈를 등록하여 번호를 발급합니다.
  2. main 브랜치로부터 분기하여 이슈 번호를 사용해 이름을 붙인 feature 브랜치를 만든 후 작업합니다.
  3. 작업이 완료되면 develop 브랜치에 풀 요청을 작성하고, 팀원의 동의를 얻으면 병합합니다.

Branch 종류

  • main 기능 개발 통합 브랜치 (pull request하고 동료들에게 merge요청, 확인이 오래걸리면 스스로 merge) 데모용 프로젝트이기 때문에 배포용 브랜치를 따로 두지 않습니다.
  • feature/{이슈번호}{간단한설명} 새로운 기능 개발 브랜치
  • fix/{이슈번호}{간단한설명} 버그 수정 브랜치
  • hotfix/{이슈번호}{간단한설명} 긴급 수정 브랜치
  • refactor/{이슈번호}{간단한설명} 리팩토링 브랜치
  • chore/{이슈번호}{간단한설명} 기타 설정, 패키지 변경 등

Branch 설명

  1. 기능개발이 완료된 브랜치는 develop브랜치에 merge합니다.
  2. merge된 Branch는 삭제합니다.

    ✅ 예시
  • feature/#12-login-api
  • fix/#17-cors-error
  • chore/#20-env-setting

    ✅ Git 사용 규칙

커밋 메시지 형식

  • #이슈번호 <타입>: <변경 요약>

- <타입> 종류
태그 이름 설명
[init] 초기설정
[chore] 코드 수정, 내부 파일 수정
[feat] 새로운 기능 구현
[add] FEAT 이외의 부수적인 코드 추가, 라이브러리 추가, 새로운 파일 생성
[hotfix] issue나 QA에서 급한 버그 수정에 사용
[fix] 버그, 오류 해결
[del] 쓸모 없는 코드 삭제
[docs] README나 WIKI 등의 문서 개정
[correct] 주로 문법의 오류나 타입의 변경, 이름 변경에 사용
[move] 프로젝트 내 파일이나 코드의 이동
[rename] 파일 이름 변경이 있을 때 사용
[improve] 향상이 있을 때 사용
[refactor] 전면 수정이 있을 때 사용
[test] 테스트 코드 추가 시 사용

💙서비스 아키텍처

링큐 서비스 아키텍쳐 drawio (2)

erd

linkU-BE

About

This repository belongs to UMC LinkU 2025 project and this is for spring boot challengers who called backend.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5