-
Notifications
You must be signed in to change notification settings - Fork 0
[πdeploy] CI/CD ν μ€νΈ μ§ν #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
μλ² λ΄λΆ μ€λ₯ λ° κ²μ΄νΈμ¨μ΄ κ΄λ ¨ μμΈλ₯Ό μ²λ¦¬νκΈ° μν μ μ μλ¬ μ½λ μ΄κ±°ν ꡬν. κ³΅ν΅ μ λμ¬λ₯Ό ν¬ν¨ν μλ¬ λ©μμ§ νμμ μ 곡ν¨.
BaseException λ° μ£Όμ μμ€ν μμΈ(501, 502, 503, 504 λ±)λ₯Ό μ²λ¦¬νλ μ μ μμΈ νΈλ€λ¬ μ μ. κ° μμΈμ λν΄ GlobalErrorCodeλ₯Ό λ§€ννμ¬ μΌκ΄λ μλ¬ μλ΅μ λ°ννλλ‘ κ΅¬μ±ν¨.
μ±κ³΅ μλ΅μ μ¬μ©λ HTTP μν μ½λμ λ©μμ§λ₯Ό μ 곡νλ κ³΅ν΅ μΈν°νμ΄μ€ μμ±.
μ±κ³΅ κ²°κ³Όλ₯Ό ν΄λΌμ΄μΈνΈμ μ λ¬νκΈ° μν κ³΅ν΅ μλ΅ κ°μ²΄ μ μ. HttpStatusλ₯Ό intλ‘ λ³ννμ¬ μλ΅ νμμ νμ€ννκ³ , κ²°κ³Ό λ°μ΄ν°λ nullμΌ κ²½μ° μ μΈλλλ‘ μ€μ ν¨.
- μ΄λ¦ null νμ© λΆκ°, μ΅λ κΈΈμ΄ μ΄κ³Ό, νμ μ€λ₯μ λν μλ¬ μ½λ μΆκ° - κ³΅ν΅ λ©μμ§ μ λμ¬ PREFIX μ μ© - μ΄λ¦ μ΅λ κΈΈμ΄ μμ NAME_MAX_LENGTH μ μ
- UserErrorCodeλ₯Ό μΈμλ‘ λ°μ BaseExceptionμ μμνλ μμΈ μ μ - μ¬μ©μ κ΄λ ¨ μμΈ μ²λ¦¬λ₯Ό λλ©μΈ λ¨μλ‘ κ΅¬λΆ κ°λ₯νλλ‘ κ΅¬μ±
- κΈ°μ‘΄ IllegalArgumentExceptionμ UserExceptionμΌλ‘ λ체νμ¬ λλ©μΈ μμΈ ν΅μΌ - UserErrorCodeλ₯Ό νμ©ν΄ μλ¬ λ©μμ§ κ΄λ¦¬ μΌμν - μ΄λ¦ κ²μ¦ λ‘μ§μμ null, κΈΈμ΄, νμ μμΈλ₯Ό λλ©μΈ κΈ°λ°μΌλ‘ μ²λ¦¬
- κΈ°μ‘΄ IllegalArgumentException κ²μ¦μ UserExceptionμΌλ‘ λ³κ²½ - UserErrorCodeμ λ©μμ§λ₯Ό κΈ°λ°μΌλ‘ μμΈ λ©μμ§ κ²μ¦ μν - μ¬μ©μ μ΄λ¦ κ²μ¦ κ΄λ ¨ ν μ€νΈ μΌκ΄μ± μ μ§
νΈμ ν ν°μ΄ nullμΌ μ μλ€λ κ²μ¦μ μν μλ¬ μ½λλ₯Ό UserErrorCodeμ μΆκ°νμ΅λλ€.
κΈ°μ‘΄ String νμ μ token νλλ₯Ό PushToken VOλ‘ λ³κ²½νκ³ , @Embedded λ° @AttributeOverrideλ₯Ό μ μ©νμ¬ λλ©μΈ μ£Όλ μ€κ³ κΈ°λ°μ κ° κ°μ²΄ ꡬ쑰λ₯Ό λ°μνμ΅λλ€.
νΈμ ν ν° κ°μ νννλ PushToken VOλ₯Ό ꡬννμ΅λλ€. null κ° κ²μ¦ λ‘μ§μ ν¬ν¨νκ³ μμΌλ©°, μΆν ν ν° μ ν¨μ±μ λν λΉμ¦λμ€ λ‘μ§κ³Ό ν μ€νΈλ₯Ό μΆκ°ν μμ μ λλ€.
PushToken κ° κ°μ²΄μ λν λ¨μ ν μ€νΈλ₯Ό μΆκ°νμ΅λλ€. - μ ν¨ν ν ν°μΌλ‘ κ°μ²΄ μμ± μ±κ³΅ - null ν ν°μ λν μμΈ μ²λ¦¬ κ²μ¦
- νΈμ ν ν° null νμ© λΆκ° μλ¬ μ½λ μΆκ° - νΈμ μνκ° ON, OFF μΈμ κ°μΌ κ²½μ°μ μλ¬ μ½λ μΆκ° - νΈμ μλ¦Όμ΄ μ΄λ―Έ νμ±ν/λΉνμ±νλ μνμ λν μμΈ μ½λ μΆκ°
- PushNotificationStatus VO νλ μΆκ° λ° ENUM λ§€ν μ μ© - νΈμ μλ¦Ό μμ μ¬λΆ νμΈ λ©μλ canReceivePushNotification() ꡬν - νΈμ μλ¦Ό νμ±ν λ° λΉνμ±ν λ©μλ μΆκ°
- ENABLED, DISABLED μνλ₯Ό λνλ΄λ Enum μ μ - λ¬Έμμ΄ κΈ°λ° μν νμ±μ μν of(), isValid() λ©μλ ꡬν - μν μ ν μ μ€λ³΅ μ ν λ°©μ§λ₯Ό μν μμΈ μ²λ¦¬ λ‘μ§ μΆκ° - μλ¦Ό μμ κ°λ₯ μ¬λΆ νμΈ λ©μλ canReceiveNotification() ꡬν
- of(), isValid() λ©μλμ μ ν¨/λ¬΄ν¨ μ λ ₯μ λν ν μ€νΈ μΆκ° - μν μ ν μ μ€λ³΅ νΈμΆμ λν μμΈ μ²λ¦¬ ν μ€νΈ μΆκ° - μνλ³ μλ¦Ό μμ κ°λ₯ μ¬λΆ ν μ€νΈ λ° μν μ ν ν μ€νΈ ν¬ν¨ - μ±κ³΅/μ€ν¨ μΌμ΄μ€λ₯Ό λͺ νν λλμ΄ κ°λ μ± ν₯μ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μκ³ νμ ¨μ΄λ!
# # Gradle caching - λΉλ μκ° ν₯μ | ||
# - name: Gradle Caching | ||
# uses: actions/cache@v3 | ||
# with: | ||
# path: | | ||
# ~/.gradle/caches | ||
# ~/.gradle/wrapper | ||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | ||
# restore-keys: | | ||
# ${{ runner.os }}-gradle- | ||
|
||
# Gradle build - ν μ€νΈ μμ΄ gradle λΉλ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΄κ±° μ£Όμμ²λ¦¬ν μ΄μ κ° λ¨Όκ°μ©?? (λ¨μ κΆκΈγ γ )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ν΄λΉ λΉλ μΊμ±μ΄ μμ£Ό λΉλν΄μΌνλ μν©μμ μ€νλ € μκ°μ΄ 걸리λλΌκ΅¬μ! μ΄μ λ₯Ό νμ νκ³ μ΄ν λ°μμ κ³ λ €νκ³ μμ΅λλ€:)
HELP.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΄ νμΌμ λͺ¨μ Έ?!?! μλͺ» μ¬λΌμλ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
start.spring.ioμμ μ΅κ·Όμ gradleνμΌμ μΆκ°νλ κ²½μ° μλμΌλ‘ μμ±λλ κ² κ°μμ! μ΄λΆλΆμ λ°μλμ§ μλλ‘ gitignoreμ μΆκ°ν΄μΌκ² λ€μ!! μ견 κ°μ¬ν©λλ€ γ γ
κ³ μ λ§μΌμ ¨μ΅λλ€~! π μΆκ°λ‘ κ·Έλ¦¬κ³ μλ²κ° μ€κ°μ μ£½κ³ λ€μ μ¬λΌμ¬ λμ²λΌ, |
- LOGGED_IN, LOGGED_OUT, WITHDRAWN μνλ₯Ό λνλ΄λ enum μ μ - λ¬Έμμ΄ νμ± λ©μλ of(), isValid() ꡬν - λ‘κ·ΈμΈ, λ‘κ·Έμμ, νν΄ μν νμΈμ μν λ©μλ μΆκ° - μ ν¨νμ§ μμ μνμ λν΄ UserException λ°μ μ²λ¦¬
- μ ν¨νμ§ μμ κ³μ μν μ λ ₯ μ λ°μνλ INVALID_ACCOUNT_STATUS μμΈ μ½λ μ μ - νμ©λ μν κ°: active, inactive, withdrawn
- κΈ°μ‘΄ State νλ μ κ±° λ° AccountStatus enum κΈ°λ°μΌλ‘ λ³κ²½ - κ³μ νμ± μν νλ¨ λ©μλ isActiveUser() ꡬν - νν΄ μ¬λΆλ₯Ό AccountStatusκ° μ§μ νλ¨νλλ‘ μν μμ
- κ° μνμ μΈλΆ λ ΈμΆμ© λ¬Έμμ΄ κ°(value) νλ μΆκ° (active, inactive, withdrawn) - Jackson μ§λ ¬ν/μμ§λ ¬νλ₯Ό μν @JsonCreator λ° @jsonvalue μ΄λ Έν μ΄μ μ μ© - λ¬Έμμ΄ μ λ ₯ νμ±μ value κΈ°μ€μΌλ‘ μ²λ¦¬νλλ‘ from(), isValid() λ©μλ κ°μ - μλ―Έ κΈ°λ° λ©μλ isActive(), isInactive(), isWithdrawn() λ±μΌλ‘ λͺ νμ± ν₯μ
- from() λ©μλμ μ ν¨/λ¬΄ν¨ μ λ ₯μ λν μμΈ μ²λ¦¬ ν μ€νΈ ꡬν - isValid() λ©μλμ κ²μ¦ ν μ€νΈ μΆκ° - isActive(), isInactive(), isWithdrawn() λ©μλ ν μ€νΈλ‘ μν νλ³ κΈ°λ₯ νμΈ - value() λ©μλλ₯Ό ν΅ν μ§λ ¬ν κ° λ°ν κ²μ¦
- `ScrapUserIdsRequest` λ μ½λλ₯Ό μΆκ°νμ¬ μ€ν¬λ© μ μ ID λͺ©λ‘μ λ΄λ μμ² DTO ꡬν - `of` λ©μλλ₯Ό μ¬μ©νμ¬ λ¦¬μ€νΈλ₯Ό λ°μ DTO μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλλ‘ μΆκ° - ν΄λΌμ΄μΈνΈμ API ν΅μ μμ μ μ ID λͺ©λ‘μ μ μ‘νλ λ° μ¬μ©
[β¨ feat] μ΄μμλ²-μλ¦Όμλ² λκΈ°ν μλ΅ λ°ν
βοΈ ISSUE
π Work Description
μ§νμν©
CI & CD λ‘μ§ μ μμ μΌλ‘ μ€ν νμΈ
컨ν μ΄λ μ μμ μΌλ‘ μ€ν νμΈ
β PR check list