Skip to content

On-Time-ITM/Kotlin-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

On-Time Server

온타임(On-Time) 서비스의 백엔드 서버입니다.
Spring Boot + Kotlin 기반으로 인증, 약속(모임), 친구, 참여자 위치/도착, 통계 기능을 제공합니다.

프로젝트 목적

  1. 모임 생성/참여/정산 흐름을 API로 제공
  2. 약속 시간 준수(도착 상태, 위치 공유) 지원
  3. 사용자/친구 기반의 사회적 상호작용 기능 제공

핵심 기능

  1. 인증
  • 회원가입, 로그인, 토큰 재발급, 로그아웃
  1. 모임
  • 모임 생성/조회/삭제
  • 사용자별 모임 목록 조회
  • 모임 참가 가능 친구 탐색
  1. 친구
  • 친구 검색, 친구 요청/수락/거절/삭제
  • 친구 목록/요청 목록 조회
  1. 참여자/통계
  • 참여자 위치 갱신/조회
  • 도착 상태 갱신/조회
  • 사용자/모임 통계 조회

API 개요

주요 컨트롤러 기준 엔드포인트:

  1. api/v1/auth/*
  2. api/v1/meeting/*
  3. api/v1/friendship/*
  4. api/v1/meeting/{meetingId}/location/*
  5. api/v1/meeting/{meetingId}/arrival/*
  6. api/v1/user/{userId}/statistics
  7. api/v1/meeting/{meetingId}/statistics

상세는 코드에서 확인:

  • /Users/saeyeonn/Desktop/Project/ontime/src/main/kotlin/org/itm/ontime/presentation/controller

아키텍처

레이어 구조:

  1. presentation
  • Controller, request/response DTO, HTTP advice/filter
  1. application
  • Service, 예외 처리, 비즈니스 오케스트레이션
  1. domain
  • 엔티티, 값 객체, 상태 enum
  1. infrastructure
  • JPA Repository, Security, 외부 연동(FCM, QR)

기술 스택

  1. Language/Runtime
  • Kotlin 1.9.x, Java 21
  1. Framework
  • Spring Boot 3.5.x
  • Spring Web, Spring Data JPA, Spring Security, Actuator
  1. Data
  • MySQL 8
  • HikariCP
  1. API 문서
  • springdoc-openapi
  1. Test
  • JUnit 5, Spring Boot Test, MockMvc

로컬 실행

1) DB 실행

docker run --name ontime-perf-mysql -e MYSQL_ROOT_PASSWORD=ontime -e MYSQL_DATABASE=ontime -p 3307:3306 -d mysql:8.0

2) 애플리케이션 실행

SPRING_DOCKER_COMPOSE_ENABLED=false \
SPRING_DATASOURCE_URL='jdbc:mysql://localhost:3307/ontime?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC' \
SPRING_DATASOURCE_USERNAME=root \
SPRING_DATASOURCE_PASSWORD=ontime \
SERVER_PORT=8081 \
./gradlew bootRun

테스트 및 계측

회귀 테스트

./gradlew test --tests 'org.itm.ontime.presentation.ApiContractRegressionTest'

측정

./perf/measure-before.sh
./perf/measure-after.sh

리팩토링 산출물

  1. ADR
  • /Users/saeyeonn/Desktop/Project/ontime/adr
  1. 실행 계획
  • /Users/saeyeonn/Desktop/Project/ontime/adr/implementation_phases.md
  • /Users/saeyeonn/Desktop/Project/ontime/adr/refactor_execution_plan.md
  1. 보고/인수인계/패키지
  • /Users/saeyeonn/Desktop/Project/ontime/adr/report.md
  • /Users/saeyeonn/Desktop/Project/ontime/adr/handoff.md
  • /Users/saeyeonn/Desktop/Project/ontime/adr/package.md
  1. 트러블슈팅
  • /Users/saeyeonn/Desktop/Project/ontime/trouble-shooting

About

온타임 백엔드 리포지터리입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors