μ΄ νλ‘μ νΈλ Spring Bootμ MySQLμ μ¬μ©νμ¬ κ°λ°λ κ²μν κ΄λ¦¬ API μ
λλ€.
JWT λ°©μμ μΈμ¦ λ°©λ²μ μ¬μ©νκ³ μμΌλ©°, JPAλ₯Ό νμ©ν MySQL DBλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
κ°μ’
μν©μ λ°λ₯Έ μμΈ μ²λ¦¬λ₯Ό μ 곡νκ³ μμ΅λλ€.
- νμκ°μ : μλ‘μ΄ μ¬μ©μλ₯Ό λ±λ‘ν©λλ€.
- λ‘κ·ΈμΈ: μ¬μ©μ μΈμ¦μ μν JWT κΈ°λ° λ‘κ·ΈμΈμ λλ€.
- μ¬μ©μ μ 보 μ‘°ν: μ¬μ©μ μ 보λ₯Ό νμΈν μ μμ΅λλ€.
- μ¬μ©μ μ 보 μμ : μ¬μ©μ μ 보λ₯Ό μ λ°μ΄νΈν μ μμ΅λλ€.
- μ¬μ©μ νν΄: Soft Delet λ°©μμ νμ νν΄ κΈ°λ₯μ λλ€.
- κ²μκΈ μμ±: μλ‘μ΄ κ²μκΈμ μμ±ν©λλ€.
- κ²μκΈ μ 체 μ‘°ν: νν°λ§ λ° νμ΄μ§μ μ§μνλ κ²μκΈ λͺ©λ‘ μ‘°νκΈ°λ₯ μ λλ€. λν μ°¨λ¨ν μ¬μ©μμ κ²μκΈμ μ¨κΉ μ²λ¦¬ν μ μμ΅λλ€.
- νΉμ κ²μκΈ μ‘°ν: μ νν κ²μκΈμ μμΈ μ 보λ₯Ό ν μ μμ΅λλ€.
- μΉκ΅¬ κ²μκΈ μ‘°ν : μλ‘ μΉκ΅¬μ΄κ±°λ λ΄κ° μΉκ΅¬ μΆκ°λ₯Ό ν μ¬μ©μμ κ²μκΈμ μ΅μ μμΌλ‘ μ‘°νν μ μμ΅λλ€.
- νΉμ κ²μκΈ μμ : μ νν κ²μκΈμ μ 보λ₯Ό μμ ν μ μμ΅λλ€.
- νΉμ κ²μκΈ μμ : Soft Delet λ°©μμ κ²μκΈ μμ κΈ°λ₯μ λλ€.
- λκΈ μμ±: κ²μκΈμ λκΈμ μΆκ°ν©λλ€.
- νΉμ κ²μκΈμ λκΈ μ 체 μ‘°ν: νΉμ κ²μκΈμ λκΈμ νμ΄μ§ μ²λ¦¬νμ¬ μ‘°νν©λλ€.
- νΉμ κ²μκΈμ λ² μ€νΈ λκΈ μ‘°ν: μΈκΈ° μλ λ² μ€νΈ λκΈμ νμΈν©λλ€.
- νΉμ λκΈ μμ : μ νν λκΈμ μμΈ μ 보λ₯Ό ν μ μμ΅λλ€.
- νΉμ λκΈ μμ : Soft Delet λ°©μμ λκΈ μμ κΈ°λ₯μ λλ€.
- νΉμ κ²μκΈ/λκΈ μ’μμ λ° μ·¨μ: κ° κ²μκΈ λ° λκΈμ μ’μμλ₯Ό μΆκ°νκ±°λ μ·¨μν μ μμ΅λλ€.
- νΉμ μ¬μ©μ μΉκ΅¬ μμ²: μ¬μ©μ κ° μΉκ΅¬ μμ²μ λ³΄λΌ μ μμ΅λλ€.
- νΉμ μ¬μ©μ μΉκ΅¬ μμ² μλ½ λ° κ±°μ : μ¬μ©μ κ° μΉκ΅¬ μμ²μ λν΄ μλ½νκ±°λ κ±°μ ν μ μμ΅λλ€.
- νλ‘μ λ° νλ‘μ λͺ©λ‘ μ‘°ν : λλ₯Ό μΉκ΅¬ μΆκ°ν μ¬μ©μμ λ΄κ° μΉκ΅¬ μΆκ°ν μ¬μ©μ, λλ λ§νλ‘μ° λͺ©λ‘μ μ‘°νν©λλ€.
- νΉμ μ¬μ©μ μ°¨λ¨: νΉμ μ¬μ©μλ₯Ό μ°¨λ¨νμ¬ κ΄κ³λ₯Ό κ΄λ¦¬ν μ μμ΅λλ€.
- μ°¨λ¨ λͺ©λ‘ μ‘°ν : λ΄κ° μ°¨λ¨ν μ¬μ©μμ λͺ©λ‘μ μ‘°νν©λλ€.
- νΉμ μ¬μ©μ μ°¨λ¨ ν΄μ : μ°¨λ¨ν μ¬μ©μμ μ°¨λ¨ μνλ₯Ό ν΄μ ν©λλ€.
- Java 17+
- Spring Boot 3.4.2
- Spring Data JPA
- JPA Auditing
- MySQL 8.0
- JWT (JSON Web Token)
- BCrypt (
at.favre.lib:bcrypt:0.10.2)
- Lombok
2025-02-14 ~ 2025-02-20
src
βββ main
βββ java/com/example/project
βββ domain/
β βββ member/ # μ¬μ©μ(Member) λλ©μΈ
β β βββ controller/ # MemberController
β β βββ service/ # MemberService
β β βββ repository/ # MemberRepository
β β βββ dto/ # MemberDTO
β β βββ command/ # MemberCommand
β β βββ entity/ # Member (JPA μν°ν°)
β β βββ exception/ # μ¬μ©μ κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ util/ # μ¬μ©μ λλ©μΈ κ΄λ ¨ μ νΈ ν΄λμ€
β βββ relationship/ # κ΄κ³(Relationship) λλ©μΈ(μΉκ΅¬μμ²,μλ½,μ°¨λ¨)
β β βββ controller/ # RelationshipController
β β βββ service/ # RelationshipService
β β βββ repository/ # RelationshipRepository
β β βββ dto/ # RelationshipDTO
β β βββ entity/ # Relationship (JPA μν°ν°)
β β βββ exception/ # κ΄κ³ κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ util/ # κ΄κ³ λλ©μΈ κ΄λ ¨ μ νΈ ν΄λμ€
β βββ like/ # μ’μμ λλ©μΈ
β β βββ controller/ # LikeController
β β βββ service/ # LikeService
β β βββ repository/ # LikeRepository
β β βββ dto/ # LikeDTO
β β βββ entity/ # Like (JPA μν°ν°)
β β βββ exception/ # μ’μμ κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ util/ # μ’μμ λλ©μΈ κ΄λ ¨ μ νΈ ν΄λμ€
β βββ post/ # κ²μλ¬Ό(Post) λλ©μΈ
β β βββ controller/ # PostController
β β βββ service/ # PostService
β β βββ repository/ # PostRepository
β β βββ dto/ # PostDTO
β β βββ entity/ # Post (JPA μν°ν°)
β β βββ exception/ # κ²μλ¬Ό κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ util/ # κ²μλ¬Ό λλ©μΈ κ΄λ ¨ μ νΈ ν΄λμ€
β βββ comment/ # λκΈ λλ©μΈ (νμ μ)
β β βββ controller/ # CommentController
β β βββ service/ # CommentService
β β βββ repository/ # CommentRepository
β β βββ dto/ # CommentDTO
β β βββ entity/ # Comment (JPA μν°ν°)
β β βββ exception/ # λκΈ κ΄λ ¨ μμΈ μ²λ¦¬
β β βββ util/ # λκΈ λλ©μΈ κ΄λ ¨ μ νΈ ν΄λμ€
βββ config/ # μ€μ (Security, CORS, DB λ±)
βββ exception/ # κΈλ‘λ² μμΈ μ²λ¦¬ (GlobalExceptionHandler)
βββ util/ # κ³΅ν΅ μ νΈλ¦¬ν° ν΄λμ€
βββ security/ # μΈμ¦ λ° κΆν κ΄λ ¨ ν΄λμ€
βββ application.properties # νκ²½μ€μ νμΌ
μμΈν API λͺ μΈλ API λ¬Έμλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
νλ‘μ νΈ μμ° μμμ μμ λ§ν¬λ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
|
κΉκΈ°ν μ¬μ©μ, μΈμ¦/μΈκ° |
μ‘μ€μ κ²μλ¬Ό |
μ΄μ±μ νλ‘μ°/μ°¨λ¨ |
μ μμ© λκΈ |


