μΌνλ μμλ₯Ό μ§μ λ±λ‘νκ±°λ μμ½ν μ μλ ν΅ν© μλ°μμ½ μλΉμ€μ
λλ€.
- λΉμ© λ¬Έμ λ‘ μΈνμ¬ 2023. 12. 31 κΉμ§ μ΄μλ©λλ€.
- 06 ~ 2023. 07
μ΄λ¦ |
μν |
κΈ°λ₯ |
μ΄μ§ν |
νμ₯ |
AWS EC2 μλ² κ΅¬μΆ, λ°°ν¬ μλν, μμ, κ΄μ¬μμ |
μ΄νΈμ |
νμ |
λ°°ν¬ μλν, JSON μλ΅ λͺ¨λν, μμ½, κ²°μ , 리뷰 |
νμ¬λ―Ό |
νμ |
DBμ€κ³, νμ(JWT , SMS μΈμ¦, μμ
λ‘κ·ΈμΈ) |
)
API λͺ
μΈμ λ°λ‘κ°κΈ°
- Java 11
- Spring Boot 2.7, Spring Security, Spring Data JPA, Querydsl
- MySQL, Git, GitHub, GitHub Actions
- AWS EC2, AWS RDS, AWS S3, AWS CodeDeploy
π» μ£Όμ κΈ°λ₯ λ° μμΈ
κΈ°λ₯ |
λ΄μ© |
νμκ°μ
|
κ°μΈ μ 보λ₯Ό μ
λ ₯λ°μμ νμκ°μ
μ νκ±°λ μμ
λ‘κ·ΈμΈ(λ€μ΄λ², ꡬκΈ)μ ν΅νμ¬ μΆκ° μ 보λ₯Ό μ
λ ₯λ°μμ νμκ°μ
μ ν μ μλ€. |
λ‘κ·ΈμΈ |
Spring Securityμ JWT ν ν°μ μ΄μ©νμ¬ μμ΄λμ λΉλ°λ²νΈλ₯Ό μ
λ ₯ν΄ λ‘κ·ΈμΈνκ±°λ, μμ
λ‘κ·ΈμΈμΌλ‘ λ‘κ·ΈμΈν μ μλ€. |
νμ & λΉνμ κ΅¬λΆ |
μ€νλ§ μν리ν°μ Anonymousλ₯Ό ν΅νμ¬ νμκ³Ό λΉνμμ ꡬλΆν μ μλ€. |
νμ μ 보 μμ |
μ΄λ©μΌ, ν¨μ€μλ, ν΄λν° λ²νΈ λ± νμμ μ 보λ₯Ό μμ ν μ μλ€. |
μμ
λ‘κ·ΈμΈ |
μΉ΄μΉ΄μ€, λ€μ΄λ², κ΅¬κΈ λ± μμ
λ‘κ·ΈμΈμ΄ κ°λ₯νλ€. |
JWT ν ν° |
λ‘κ·ΈμΈ μ Access Tokenκ³Ό Refresh Tokenμ λ°κΈ λ°μ μΈμ¦ν μ μλ€. |
κΈ°λ₯ |
λ΄μ© |
μμ λ° κ°μ€ λ±λ‘ |
νμμ λꡬλ μμλ₯Ό λ±λ‘ν μ μμΌλ©°, μμ λ° κ°μ€μ λν μΈλΆμ μΈ μ 보λ€μ μ λμ μΌλ‘ λ±λ‘ν μ μλ€. |
μμ λͺ©λ‘ |
μμ½ κ°λ₯ν μμ λͺ©λ‘μ 보μ¬μ£Όλ©°, μμ μ ν, μ§μ, μμ½μΌμ, μΈμ μ λ±μ ν΅ν μ‘°κ±΄λΆ κ²μμ΄ κ°λ₯νλ€. |
μμ μμΈ μ 보 |
μμ λ° κ°μ€μ λν μ 보λ₯Ό μμΈνκ² νμΈν μ μμΌλ©° μμ½μΌμλ₯Ό μ νν¨μ λ°λΌ μμ½ κ°λ₯ μ¬λΆλ₯Ό λμ μΌλ‘ νμΈν μ μμΌλ©°, 리뷰 νν©μ νμΈν μ μλ€. |
λ±λ‘ν μμ λͺ©λ‘ |
μμ μ΄ λ±λ‘ν μμ λͺ©λ‘μ νμΈ ν μ μλ€. |
μμ μμ |
μμ μ΄ λ±λ‘ν μμ μ 보λ₯Ό μμ ν μ μλ€. |
κ°μ€ μμ |
μμ μ΄ λ±λ‘ν μμμ κ°λ³ κ°μ€μ λν μ 보λ₯Ό μμ ν μ μλ€. |
μμ μμ |
μμ μ΄ λ±λ‘ν μμ μ 보λ₯Ό μμ ν μ μμΌλ©°, μμλ₯Ό μμ νλ©΄ μμμ κ΄λ ¨λ κ°μ€ μ 보λ€κΉμ§ νλ²μ μμ λλ€. |
κ°μ€ μμ |
μμμ κ°λ³ κ°μ€ μ 보λ₯Ό μμ ν μ μλ€. |
κ΄μ¬ μμ λ±λ‘ |
νμμ μ΅λ 20κ°κΉμ§ μνλ μμλ₯Ό κ΄μ¬ μμλ‘ λ±λ‘ν μ μλ€. |
κ΄μ¬ μμ λͺ©λ‘ |
κ΄μ¬ μμλ‘ λ±λ‘ν μμλ€μ λͺ©λ‘μ νμΈν μ μμΌλ©°, μμ μμΈμ 보λ₯Ό 보거λ κ΄μ¬ μμμμ μμ ν μ μλ€. |
κ΄μ¬ μμ μμ |
κ΄μ¬ μμλ‘ λ±λ‘λ μμλ₯Ό κ΄μ¬ μμ λͺ©λ‘μμ μμ ν μ μλ€. |
κΈ°λ₯ |
λ΄μ© |
κ²°μ λ° μμ½ μμ± |
μμ½νκ³ μΆμ μμμ λ μ§λ₯Ό μ ννκ³ κ²°μ νμ΄μ§ μ§μ
μ κ²°μ μ€λΉ νμ΄μ§κ° νλ©΄μ λνλλ€. κ²°μ νκΈ° λ²νΌ μ νμ ν¬νΈμμ μ΄μ©ν κ²°μ μ°½μ΄ μμ±λλ€. νμ, λΉνμμ λ°λΌ λ±κΈν μΈ, μΏ ν°μ νμ ν μ μλ€. |
κ²°μ λ° μμ½ μμ |
λ±λ‘ν μμ½μ μμ ν μ μλ€. |
κ²°μ λ° μμ½ μμ |
λ±λ‘ν μμ½μ μμ ν μ μλ€. |
μμ μμ½ λͺ©λ‘ |
μμ μ΄ λ±λ‘ν μμλ₯Ό μ νν΄μ μμλ³, μμ½ μνλ³λ‘ μμ½ νν©μ νμΈν μ μλ€. |
μμ½ μ‘°ν |
μμ½ν μμμ μ 보, μμ½ λ μ§λ₯Ό νμΈν μ μκ³ , μμ μ£ΌμΈμ λ§μ΄ νμ΄μ§λ‘ μ΄λμ΄ κ°λ₯νλ€. |
κΈ°λ₯ |
λ΄μ© |
μμ½ λͺ©λ‘ |
μμ½ν νν©μ λ³Ό μ μμΌλ©°, μμ½ μμ , μ·¨μκ° κ°λ₯νλ€. μμ μ΄μ©μ΄ λλ μνλΌλ©΄ 리뷰μμ±μ΄ κ°λ₯νλ€. |
리뷰 λͺ©λ‘ μ‘°ν |
μμ±ν 리뷰λ€μ νμΈν μ μλ€. |
리뷰 λͺ©λ‘ μμ |
μμ±ν 리뷰λ€μ μμ ν μ μλ€. |
리뷰 λͺ©λ‘ μμ |
μμ±ν 리뷰λ€μ μμ ν μ μλ€. |