함께 꾸미며 ✨최애✨에게 진심을 전하는 롤링페이퍼 서비스
![](https://private-user-images.githubusercontent.com/67463603/294701719-77faaad4-1dc0-49ff-a19c-71f07e52b9ac.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODE5MjAsIm5iZiI6MTczOTI4MTYyMCwicGF0aCI6Ii82NzQ2MzYwMy8yOTQ3MDE3MTktNzdmYWFhZDQtMWRjMC00OWZmLWExOWMtNzFmMDdlNTJiOWFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDEzNDcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA2NjYxZTNjNjhmNjZjMTkwYzViNjA0MGRmN2RjMDEzODc4NWE4ZTZjOTI5Mjk2ODVkNzk5ODMwYmE3YmU2MzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lgPJ9x5UNm5m29HuJZEqzozO1do1Pjneq3JqwYn3jAo)
이동섭 🔥 | 김동휘 ⚡️ | 현예진 ❄️️ |
---|---|---|
![]() |
![]() |
![]() |
ddongseop | dong2ast | eeddiinn |
챌린징 요소 | 담당자 |
---|---|
Presigned URL (S3 Management) | 이동섭🔥 |
Social Login (OpenFeign, Spring Security, Redis) | 이동섭🔥 |
CI/CD Script 작성 (Github Actions) | 이동섭🔥 |
AOP Logger 구현 + Discord 서버 알림 구현 | 이동섭🔥 |
서버 부하 테스트 (Jmeter) | 이동섭🔥 |
Soft Delete (RDS Management) | 예진❄️ |
비속어 필터링 (Bad Word Filtering 라이브러리) | 예진❄️ |
Architecture (Docker Compose, Nginx) | 동휘⚡️ |
Status Dashboard 구축 (Netdata, Portainer, Sentry) | 동휘⚡️ |
Deployment including React Project | 동휘⚡️ |
무중단 배포 구현 | 동휘⚡️ |
이미지 캐시 서버 구축 | 동휘⚡️ |
Category | Used |
---|---|
IDE | Intellij |
Java version | Java 17 |
Spring version | 3.1.7 |
Cloud Computing | AWS EC2 (Ubuntu 22.04 LTS) |
Database | AWS RDS (MySQL 8.0.33), Redis |
Build Management | Gradle |
CI/CD | Github Actions, Docker, Nginx |
Monitoring | Netdata, Portainer |
API Test | PostMan, Swagger |
![image](https://private-user-images.githubusercontent.com/67463603/296440351-6e94699e-9061-450e-bf3e-fee17333302d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODE5MjAsIm5iZiI6MTczOTI4MTYyMCwicGF0aCI6Ii82NzQ2MzYwMy8yOTY0NDAzNTEtNmU5NDY5OWUtOTA2MS00NTBlLWJmM2UtZmVlMTczMzMzMDJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDEzNDcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ4NWQxYTBjZjU4YTlkOGRkNWVlMTkyMDQ3MzFjZjZiMGE3YmFlMmJiNDg2NDBhMGE0MTk5Y2EzNDVlNDNkNzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8KDARuldHWKNV2PSiiwzcVeSr-4WDVxZGvQUqmj9E0w)
🗂 Domain Package Structure
& 🏛️Facade Pattern
🗂 lecueServer
├── 🗂 domain
│ ├── 📝 book
│ │ ├── controller
│ │ ├── dto
│ │ ├── 🏛 facade
│ │ ├── model
│ │ ├── repository
│ │ └── service
│ ├── 💗 common
│ ├── 🎁 member
│ ├── 💌 note
│ └── 🎨 sticker
└── 🗂 global
├── 🔒 auth
│ ├── fegin
│ │ └── kakao
│ ├── jwt
│ ├── redis
│ └── security
├── 📦 common
│ ├── dto
│ └── model
├── 🔧 config
├── 🚨 exception
│ ├── enums
│ └── model
└── 📷 s3
├── controller
├── dto
├── enums
└── service
🎨 sticker
와 📝 book
은 JPA의 연관관계 매핑
을 사용하지 않음 ❌
![image](https://private-user-images.githubusercontent.com/67463603/296440531-7daab7a7-0a5b-4af3-9929-474723d972cd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODE5MjAsIm5iZiI6MTczOTI4MTYyMCwicGF0aCI6Ii82NzQ2MzYwMy8yOTY0NDA1MzEtN2RhYWI3YTctMGE1Yi00YWYzLTk5MjktNDc0NzIzZDk3MmNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDEzNDcwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzM2JjMGM0NTE2MTZiMTIxZmFlY2RkYzc1MGNiOWY0ZTk0ODBjZTQ3NzhhMzZkZDYyODk0OGIxMWMxNGEzMmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.PoE4HtfBcbl6Wx5-E9MeQHVVQr216ewEpCXxPWxWuR0)