폐기 직전 식품을 값싸게 거래하는 음식물 폐기 방지 모바일 앱
- JWT를 사용한 사용자(업주 사용자 및 소비자 사용자) 인증 및 관리
- 데이터 저장 및 검색
- AWS와의 통합으로 확장성과 안정성 제공
- Spring Boot 프레임워크를 활용한 효율적인 백엔드 운영
시스템 구성은 클라이언트-서버 모델을 따른다.
- 사용자: 모바일 또는 웹 클라이언트를 통해 애플리케이션과 상호작용.
- Spring 서버: Spring Boot로 구축되었으며, AWS EC2에서 호스팅되어 비즈니스 로직과 데이터 처리를 담당.
- MySQL 데이터베이스: 애플리케이션 데이터를 저장하며, AWS RDS에서 호스팅되어 Spring 서버와 연결됨.
- 개발자: Spring Boot와 데이터베이스 기술을 활용하여 백엔드를 유지 관리하고 개선.
last_nyam_server/
├── .github/
│ └── workflows/ # GitHub Actions 워크플로우 설정
├── scripts/ # 배포 및 기타 스크립트
├── src/
│ ├── main/
│ │ ├── java/com/lastnyam/lastnyam_server
│ │ │ ├── domain/ # 도메인 별 폴더
│ │ │ │ ├── owner/ # 업주 사용자 도메인 관련 로직 (폴더 내 항목은 다른 도메인에서도 동일 구조 반복)
│ │ │ │ │ ├── controller/ # HTTP 요청 처리
│ │ │ │ │ ├── service/ # 비즈니스 로직
│ │ │ │ │ ├── repository/ # 데이터베이스 인터페이스
│ │ │ │ │ ├── dto/ # 데이터 전송 객체
│ │ │ │ │ └── domain/ # 데이터 모델 정의
│ │ │ │ ├── post/ # 음식 게시물 도메인 관련 로직(카테고리 포함)
│ │ │ │ ├── reservation/ # 예약(주문) 도메인 관련 로직(리뷰 포함)
│ │ │ │ ├── sms/ # 휴대폰 인증 관련 로직
│ │ │ │ ├── store/ # 가게 도메인 관련 로직
│ │ │ │ └── user/ # 일반 사용자 도메인 관련 로직(관심 매장 포함)
│ │ │ └── global/
│ │ │ ├── auth/ # 인증 관련
│ │ │ ├── config/ # 설정 파일
│ │ │ ├── domain/ # 공통 데이터 모델
│ │ │ ├── exception/ # 예외 핸들러
│ │ │ ├── request/ # 공통 request 필드에 대한 정규식
│ │ │ └── response/ # 공통 response 형식
│ │ └── resources/
│ │ └── application.yml # 설정 파일
│ └── test/ # 프로젝트 테스트 케이스
├── build.gradle # 빌드 설정 파일
└── README.md # 프로젝트 문서
- 프레임워크: Spring Boot (v3.3.5)
- 데이터베이스: MySQL (v8.0.39) / AWS RDS 사용
- 어플리케이션 호스팅: AWS EC2 (ubuntu 24.04)
- 빌드 도구: Gradle (v8.10.2)
- 버전 관리: Git
- CI/CD 도구: GitHub Action, AWS CodeDeploy