- 프로젝트 명: 뚜벅뚜벅
- 프로젝트 기간: 2024.03 ~ 2024.06
- 프로젝트 목표: C-ITS 기반 보행자 신호등 정보 제공 서비스
- 프로젝트 팀원:
C-ITS 정보를 활용하여 보행자 신호등 정보를 실시간으로 알려주는 서비스입니다.
C-ITS란 '차량이 주행 중 운전자에게 주변 교통상황과 급정거, 낙하물 등의 사고 위험 정보를 실시간으로 제공하는 시스템'으로 보행자 신호등 정보 또한 C-ITS 정보 중 하나입니다.
사용 C-ITS 정보
프로젝트 클론
git clone https://github.com/Capstone-Walking/Capstone-Walking-BE.git
프로젝트 루트 디렉토리로 이동
프로젝트 로컬 개발 환경 설정
cd ./scripts/env
/bin/sh ./local-develop-setting
프로젝트 빌드
./gradlew api:build -x test
프로젝트 실행
./gradlew api:bootRun --args='--spring.profiles.active=local'
📦 walking-be
┣ 📂 api: API 서버 모듈
┣ 📂 data: DB 스키마 정의 모듈
┣ 📂 api-repository: API 서버와 DB 서버 연결 모듈
┣ 📂 member-api: 회원 관련 API 모듈
┣ 📂 image-store: 이미지 관련 API 모듈
┣ 📂 batch: 배치 기능 모듈
해당 프로젝트는 멀티모듈을 사용하여 위와 같은 모듈로 구성되어 있습니다.
- 각 모듈을 다른 언어로 개발할 수 있도록 하기 위함 (예: Java, Kotlin)
- 각 모듈별로 역할을 분리하여 개발 및 유지보수가 용이하도록 하기 위함 (예: Member API)
- 각 모듈별로 독립적인 개발 및 테스트가 가능하도록 하기 위함
- 각 모듈별로 의존성을 최소화하기 위함
api
모듈은api-repository
,member-api
,batch
모듈에 의존합니다.api-repository
모듈은data
모듈에 의존합니다.member-api
모듈은api-repository
,image-store
모듈에 의존합니다.batch
모듈은data
모듈에 의존합니다.batch
를 모듈로 구현한 이유는 배치 서버를 현재는 별도로 구성하지 않고, API 서버에서batch
모듈을 실행하고 있는데 추후 이를 별도의 배치 서버로 분리할 수 있도록 하기 위함입니다.
- Spring Boot 2.7.5
- Gradle
- Docker
- Git
- Java 11
- Spring Web
- Spring Security
- Java 11
- Spring Data JPA
- Java 11
- Spring Data JPA
- Kotlin
- Spring Web
- Spring Cache
- Kotlin
- S3/Minio(prod/local)
인프라 레포지토리 바로가기: walking-infra
인프라의 경우 Terraform을 사용하여 AWS에 구성하였습니다.