"Echo" 프로젝트는 팀스파르타 Java 5기 최종 프로젝트 A8조의 팀 프로젝트로,
등의 기능이 구현된 실시간 메신저 커뮤니티 웹 애플리케이션입니다.
ᆞProject Chief
ᆞUser Domain
- basic func
ᆞAuth Domain
ᆞThread Domain
ᆞGlobal Issue
ᆞSpring Security
ᆞSSE
ᆞFront-End Chief
ᆞMedia Chat Domain
- 1:1 Video
ᆞOAuth2 (Kakao)
ᆞDirect Message
ᆞUser Domain
- additional func
ᆞSpace Domain
ᆞChannel Domain
ᆞFriend Domain
ᆞCI/CD, Deployment
with AWS and
Github Action
ᆞText Chat
- N:M Chat
ᆞS3 Service
ᆞRedis Pub/Sub
ᆞMedia Chat Domain
- N:M Video
- Screen Sharing
ᆞTyping Indicator
ᆞChat Room User Limit
ᆞUser Domain
- basic func
ᆞAuth Domain
ᆞThread Domain
ᆞGlobal Issue
ᆞSpring Security
ᆞSSE
ᆞFront-End Chief
ᆞMedia Chat Domain
- 1:1 Video
ᆞOAuth2 (Kakao)
ᆞDirect Message
ᆞUser Domain
- additional func
ᆞSpace Domain
ᆞChannel Domain
ᆞFriend Domain
ᆞCI/CD, Deployment
with AWS and
Github Action
ᆞText Chat
- N:M Chat
ᆞS3 Service
ᆞRedis Pub/Sub
ᆞMedia Chat Domain
- N:M Video
- Screen Sharing
ᆞTyping Indicator
ᆞChat Room User Limit
| Type | Tech | Version | Comment |
|---|---|---|---|
| IDE / EDITOR | IntelliJ IDEA | - | - |
| Framework | Spring | 3.3.2 | - |
| Language | Java | JDK 21 | - |
| IaaS | AWS EC2 Prometheus Grafana |
EC2 : Amazon Linux 2023 AMI Prometheus: 2.54 Grafana: 11.1.4 |
ECS Container Monitoring |
| Database | AWS RDS MariaDB |
MariaDB: 10.11 | Store relational data such as User, Space, Channel, etc |
| Database | MongoDB | MongoDB Atlas: 7.0.12 | Store unstructured data such as Text, DM, Notification, etc |
| Database | AWS Elasticache Redis |
Redis: 7.1 | Auth Data Save, Pub/Sub |
| Record | Notion | - | Link |
src
├─common
│ ├─aop
│ ├─exception
│ │ ├─codes
│ │ └─handler
│ ├─redis
│ ├─s3
│ │ ├─dto
│ │ ├─error
│ │ ├─service
│ │ └─util
│ └─util
├─config
├─domain
│ ├─auth
│ │ ├─dto
│ │ └─error
│ ├─channel
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ └─repository
│ ├─dm
│ │ ├─dto
│ │ ├─entity
│ │ └─repository
│ ├─friend
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ └─repository
│ ├─mail
│ ├─notification
│ │ ├─dto
│ │ ├─entity
│ │ └─repository
│ ├─space
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ └─repository
│ ├─text
│ │ ├─controller
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ └─repository
│ ├─thread
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ ├─repository
│ │ └─service
│ ├─user
│ │ ├─dto
│ │ ├─entity
│ │ ├─error
│ │ └─repository
│ └─video
└─security
├─config
├─jwt
└─principal
MARIADB_ROOT_PASSWORD=root
MARIADB_USER=user
MARIADB_PASSWORD=password
MARIADB_DATABASE=echo
MARIADB_URL=r2dbc:mariadb://localhost:13306/echo
MONGODB_ATLAS_URL=mongodb+srv://{user}:{password}@{db_url}/{db_name}?retryWrites=true&w=majority
MONGODB_URL=mongodb://root:1234@localhost:27017/echo?authSource=admin
JWT_SECRET=24eb4ca6488cef9acf3956342dd0e7f6bbbfd83aff107caecb5179991cc97ace4195ff5f893897c2b6f48ae3415d1f890f6fbb5df02e6cfac962e41efc09cb65
JWT_ACCESS_TIME=18000000
JWT_REFRESH_TIME=18000000
MAIL_USER={sender_email}
MAIL_PASSWORD={sender_email_password}
REDIS_URI=redis://localhost:6379
REDIS_HOST=localhost
REDIS_PORT=6379
AWS_CREDENTIALS_ACCESSKEY={aws_access_key}
AWS_CREDENTIALS_SECRETKEY={aws_secret_key}
AWS_S3_BUCKET_NAME=echo-image
KAKAO_CLIENT_ID={kakao_client_id}
KAKAO_REDIRECT_URI=http://localhost:8080/api/user/kakao/callback
KAKAO_TOKEN_URL=https://kauth.kakao.com/oauth/token