diff --git a/README.md b/README.md index 13ca1379..a36a8227 100644 --- a/README.md +++ b/README.md @@ -27,44 +27,60 @@ In the precious time spent with family, everything feels more special with Pippy
-### πŸŽ‡ Project Contributors - - - - - - - - - -
CChuYong
Yeongmin Song

λ°±μ—”λ“œ 개발(파트μž₯)
CChuYong
Jisoo Lim

λ°±μ—”λ“œ 개발
CChuYong
Soonchan Kwon

λ°±μ—”λ“œ 개발
+## 1️⃣ Project Contributors +| πŸ‘‘ λ°±μ—”λ“œ 개발(파트μž₯) | λ°±μ—”λ“œ 개발 | λ°±μ—”λ“œ 개발 | +|:--:|:--:|:--:| +| CChuYong | Ji-soo708 | Kwon770 | +| μ†‘μ˜λ―Ό | μž„μ§€μˆ˜ | ꢌ순찬 |
-### πŸ–₯️ Project Tech Stacks +## 2️⃣ Project Architecture - JVM Runtime Amazon Corretto 17 - SpringBoot 3.1.5 (Servlet MVC) - Spring Data JPA with QueryDSL - Stateless Session Management with JWT + Spring Security - Module Architecture with Gradle Multi-Project -

- -### πŸ›  ν™˜κ²½λ³€μˆ˜ - -| 이름 | μ„€λͺ… | -|----------------------------|-----------------------------| -| MYSQL_URL | MYSQL μ£Όμ†Œμž…λ‹ˆλ‹€ (JDBC ν˜•νƒœμ—¬μ•Ό ν•©λ‹ˆλ‹€) | -| MYSQL_USERNAME | MYSQL μ‚¬μš©μž λͺ… μž…λ‹ˆλ‹€. | -| MYSQL_PASSWORD | MYSQL λΉ„λ°€λ²ˆν˜Έ μž…λ‹ˆλ‹€. | -| SLACK_WEBHOOK_URL | μŠ¬λž™ μ›Ήν›… URL μž…λ‹ˆλ‹€. | -| TOKEN_SECRET_KEY | JWT ν† ν°μš© μ‹œν¬λ¦Ώ ν‚€ μž…λ‹ˆλ‹€. | -| OBJECT_STORAGE_REGION | NCP Region μž…λ‹ˆλ‹€. | -| OBJECT_STORAGE_END_POINT | NCP μ—”λ“œν¬μΈνŠΈ μž…λ‹ˆλ‹€. | -| OBJECT_STORAGE_ACCESS_KEY | NCP μ•‘μ„ΈμŠ€ ν‚€ μž…λ‹ˆλ‹€. | -| OBJECT_STORAGE_SECRET_KEY | NCP μ‹œν¬λ¦Ώ ν‚€ μž…λ‹ˆλ‹€. | -| OBJECT_STORAGE_BUCKET_NAME | NCP ObjectStroage 버킷λͺ… μž…λ‹ˆλ‹€. | -| IMAGE_OPTIMIZER_CDN_URL | NCP ImageOptimizer CDN URL μž…λ‹ˆλ‹€. | -| GOOGLE_CLIENT_ID | ꡬ글 둜그인 ν΄λΌμ΄μ–ΈνŠΈ ID μž…λ‹ˆλ‹€. | -| REDIS_HOST | Redis Host μž…λ‹ˆλ‹€. | -| REDIS_PORT | Redis Port μž…λ‹ˆλ‹€. | +- Prometheus and Grafana for monitoring +- Redis for Caching +
+ +#### Module +``` +## 14th-team5-BE +- πŸ—‚οΈ common +- πŸ—‚οΈ gateway +- πŸ—‚οΈ member +- πŸ—‚οΈ family +- πŸ—‚οΈ post + +``` + +#### Github Actions CI/CD +![image](https://github.com/depromeet/14th-team5-BE/assets/69844138/af905728-88cf-4e95-9d36-ef0812b7be6b) +
+ +#### NCP Infrastructure +![image](https://github.com/depromeet/14th-team5-BE/assets/69844138/1a97d209-b2c9-4f2b-858c-3e13c5df8b3b) + +

+ + +## 3️⃣ Project Outline + +#### ⏰ Notification +![image](https://github.com/depromeet/14th-team5-iOS/assets/62610032/4a2e0659-5fef-4383-8070-92430a7cf9f4) + +
+ +#### πŸ“± Widget +![image](https://github.com/depromeet/14th-team5-iOS/assets/62610032/031e0bf9-7a6d-4e7f-9893-71d0def1d2d9) + + +
+ +#### πŸ—“οΈ Calendar +![image](https://github.com/depromeet/14th-team5-iOS/assets/62610032/d255500a-4289-43aa-aabc-79e8cdfc5cc4) + +
diff --git a/member/src/main/java/com/oing/restapi/MemberApi.java b/member/src/main/java/com/oing/restapi/MemberApi.java index c8911b60..3e5b8d37 100644 --- a/member/src/main/java/com/oing/restapi/MemberApi.java +++ b/member/src/main/java/com/oing/restapi/MemberApi.java @@ -10,11 +10,12 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jakarta.validation.constraints.Min; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @Tag(name = "νšŒμ› API", description = "νšŒμ› κ΄€λ ¨ API") @RestController -@Valid +@Validated @RequestMapping("/v1/members") public interface MemberApi { @Operation(summary = "κ°€μ‘± ꡬ성원 ν”„λ‘œν•„ 쑰회", description = "κ°€μ‘± ꡬ성원 ν”„λ‘œν•„μ„ μ‘°νšŒν•©λ‹ˆλ‹€.", parameters = { diff --git a/post/src/main/java/com/oing/domain/MemberPost.java b/post/src/main/java/com/oing/domain/MemberPost.java index 0cb0acec..4be754c6 100644 --- a/post/src/main/java/com/oing/domain/MemberPost.java +++ b/post/src/main/java/com/oing/domain/MemberPost.java @@ -69,7 +69,7 @@ public MemberPost(String id, String memberId, String familyId, String postImgUrl } private void validateContent(String content) { - if (content != null && (content.length() > 8 || content.contains(" "))) { + if (content != null && (content.codePoints().count() > 8 || content.contains(" "))) { throw new InvalidParameterException(); } }