- νμ₯ : μ΄λ―Όν
- νμ : κΉκ°μ, λ°±μ§μ
- μ΄μ체μ (OS): Window, Mac OS
- ν΅ν© κ°λ° νκ²½(IDE) : Intellij Ultimate
- JDK λ²μ : JAVA 11
- Spring Boot λ²μ : 2.7.14
- λ°μ΄ν°λ² μ΄μ€ : MySQL
- λΉλν΄ : Gradle
- λ²μ κ΄λ¦¬ ν΄ : GitHub
- Java
- Spring Boot
- MySQL
- Spring Security
- Spring Web
- Spring JPA
- Lombok
- MySQL
- JWT
-
Package
- μλ¬Έμλ‘ μμ±νλ€.
- ex)
package
-
Java Class
- νμ€μΉΌ νκΈ°λ²μΌλ‘ νλ€.
- ex)
UserEntity
-
Database
- Table λͺ λ° Column λͺ μ μ€λ€μ΄ν¬ νκΈ°λ²μΌλ‘ νλ€.
- ex)
user_entity
-
Variable and Method
- μΉ΄λ© νκΈ°λ²μΌλ‘ νλ€.
- ex)
userId
-
Mapping-URL
- μλ¬Έμλ‘ μ¬μ©νλ€.
- λ¨μ΄λ₯Ό
/
λ‘ κ΅¬λΆνμ¬ μ¬μ©νλ€. - ex)
posts/{id}
-
Namingμ μΆμ½νμ μ¬μ©νμ§ μκ³ λͺ μμ μΌλ‘ μμ±νλ€.
- νμκ°μ , λ‘κ·ΈμΈ/λ‘κ·Έμμ, κ²μκΈμμ±/μ‘°ν(μ 체쑰ν, μ΄λ©μΌμ‘°ν)/μμ /μμ , λκΈμμ±/μ‘°ν/μμ /μμ μ 12κ°μ§ APIλ₯Ό μ 곡ν©λλ€.
- API Request bodyμ Response bodyλ json νμ μΌλ‘ νννμμ΅λλ€.
- νμκ°μ
(POST)
-
νλΌλ―Έν° :
-
κ²°κ³Ό
i. μ€ν¨ : μ΄λ―Έ λ±λ‘λ μ΄λ©μΌμ΄λ©΄ μ€ν¨ μλ΅
ii. μ±κ³΅ :
-
- μλ΅ :
νμκ°μ μλ£
,μ΄λ―Έ λ±λ‘λ μ΄λ©μΌ μ λλ€.
-
λ‘κ·ΈμΈ(POST)
a. νλΌλ―Έν° :
b. κ²°κ³Ό
i. μ€ν¨ : ν ν° λ°ν μ€ν¨ μ( μ μ μμ μ, λΉλ°λ²νΈ λΆμΌμΉ μ)
ii. μ±κ³΅ :
- μλ΅ :
λ‘κ·ΈμΈ μ±κ³΅
,λ‘κ·ΈμΈ μ€ν¨
-
λ‘κ·Έμμ(POST)
a. νλΌλ―Έν° :
b. κ²°κ³Ό
i. μ€ν¨ :
ii. μ±κ³΅ :
- μλ΅ :
λ‘κ·Έμμ μ±κ³΅
,λ‘κ·Έμμ μ€ν¨
-
κ²μκΈ μμ± (POST)
a. νλΌλ―Έν° : μ λͺ©, λ΄μ©
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : κ²μκΈ ID, μ¬μ©μ ID, μ λͺ©, λ΄μ©, μμ±μ, λλ€μ, μμ±μΌ μ 보λ₯Ό JSON νμμΌλ‘ λ°ν
-
κ²μκΈ μ‘°ν (GET)
a. νλΌλ―Έν° : -
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : κ²μκΈ ID, μ λͺ©, λ΄μ©, μμ±μ, μμ±μΌ, μ’μμ μ, μ’μμ μ¬λΆ μ 보λ₯Ό JSON LIST νμμΌλ‘ λ°ν
-
μμ±μ μ΄λ©μΌλ‘ κ²μλ¬Ό μ‘°ν (GET)
a. νλΌλ―Έν° : μ΄λ©μΌ
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : κ²μκΈ ID, μ λͺ©, λ΄μ©, μμ±μ, μμ±μΌ, μ’μμ μ, μ’μμ μ¬λΆ μ 보λ₯Ό JSON LIST νμμΌλ‘ λ°ν
-
κ²μκΈ μμ (PUT) a. νλΌλ―Έν° : κ²μκΈ ID, μ λͺ©, λ΄μ©
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ :
κ²μκΈμ΄ μμ λμμ΅λλ€.
-
κ²μκΈ μμ (DELETE)
a. νλΌλ―Έν° : κ²μκΈ ID
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : -
-
λκΈ μμ± (POST)
a. νλΌλ―Έν° : μ¬μ©μ ν ν°, λ³Έλ¬Έ
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅, κ²μκΈ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : λκΈ ID, κ²μκΈ ID, μ¬μ©μ μ΄λ©μΌ, λ³Έλ¬Έ, μμ± μκ° JSON LIST νμμΌλ‘ λ°ν
-
λκΈ μμ (PUT)
a. νλΌλ―Έν° : μ¬μ©μ ν ν°, κ²μκΈ ID, λ³Έλ¬Έ
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μκ° μλ κ²½μ° μ€ν¨ μλ΅, κ²μκΈμ΄ μλ κ²½μ° μ€ν¨ μλ΅, μ¬μ©μκ° λ€λ₯Έ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : λκΈ ID, κ²μκΈ ID, μ¬μ©μ μ΄λ©μΌ, λ³Έλ¬Έ, μμ± μκ° JSON LIST νμμΌλ‘ λ°ν
-
λκΈ μμ (DELETE)
a. νλΌλ―Έν° : μ¬μ©μ ν ν°, κ²μκΈ ID, λκΈ ID
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅, κ²μκΈ μλ κ²½μ° μ€ν¨ μλ΅, λκΈ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ :
λκΈ μμ μ±κ³΅
-
λκΈ μ‘°ν (GET)
a. νλΌλ―Έν° : -
b. κ²°κ³Ό
i. μ€ν¨ : λκΈμ΄ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
- μλ΅ : JSON LIST νμμΌλ‘ μ 체 λκΈ λ°ν
-
μ’μμ μμ±κ³Ό μ·¨μ (POST)
a. νλΌλ―Έν° : μ¬μ©μ ν ν°, κ²μκΈ ID
b. κ²°κ³Ό
i. μ€ν¨ : μ¬μ©μ μλ κ²½μ° μ€ν¨ μλ΅, κ²μκΈ μλ κ²½μ° μ€ν¨ μλ΅
ii. μ±κ³΅
iii. μ¬μ©μκ° μ’μμκ° μλ€λ©΄ μ’μμ μ·¨μ μλ€λ©΄ μ’μμ μμ±
- μλ΅ :
μ’μμ μμ± μ±κ³΅
,μ’μμ μ·¨μ μ±κ³΅
κΈ°λ₯ | μμΈ | μ°Έκ³ |
---|---|---|
νμ | 1. μ΄λ©μΌ λΉλ°λ²νΈ μ
λ ₯νμ¬ νμκ°μ
API 2. μ΄λ©μΌ λΉλ°λ²νΈ μ λ ₯νμ¬ μ μνλ API 3. μ μλ μ μ λ‘κ·Έμμ |
|
μ‘°ν | 1. κ²μλ¬Ό μ 체 μ‘°ννλ API 2. μμ±μ μ΄λ©μΌμ ν΅ν΄ νΉμ κ²μλ¬Όλ€μ κ²μνλ API 3. λκΈμ μ‘°ννλ API |
|
μμ± | 1. λκΈμ μλ‘κ² λ§λ€ μ μλ API 2. κ²μλ¬Όμ μλ‘κ² λ§λ€ μ μλ API |
|
μμ | 1. κΈ°μ‘΄ λκΈμ κΈμ μμ νλ API 2. κΈ°μ‘΄ κ²μλ¬Όμ μμ ν μ μλ API |
|
μμ | 1. κ²μλ¬Όμ μμ νλ API 2. λκΈμ μμ νλ API |
|
μ¬ν | 1. κ²μλ¬Ό μ’μμλ₯Ό ν μ μλ κΈ°λ₯ |
- μΈμλ³λ‘ κ°μ 맑μ APIλ₯Ό μ νλ€. (νμ, κ²μν, λκΈ, μ’μμ)
- νλ‘μ νΈμ κ·μΉμ μ νμ¬ κ³΅ν΅λ ꡬνμ ν μ μλλ‘ μ§ννλ€. (pakeageλͺ , DB Tableλͺ λ±)
- GitHub organizationμ μλ‘ λ§λ€μ΄ Repositoryλ₯Ό μμ± ν κ°μ branchλ₯Ό μμ±νμ¬ κ°μΈμ΄ 맑μ API ꡬνμ μμνλ€.
- API ꡬνμ μλ£νκ³ PostmanμΌλ‘ ꡬνλ APIλ₯Ό ν μ€νΈνλ€.
- λͺ¨λ branchλ₯Ό base branchμ mergeνμ¬ μΆ©λ μ¬νμ λ¨Όμ νμΈνκ³ μμ νλ€.
- mergeλ APIλ₯Ό PostmanμΌλ‘ ν μ€νΈ νκ³ μ 곡λ κΉ‘ν΅ νλ‘ νΈμ μ°κ²°νμ¬ ν μ€νΈλ₯Ό νλ€.
- νλ‘ νΈμ APIκ° λ§μ§ μλ λΆλΆμ μμ νκ³ νλ‘ νΈμ μΆκ°μ μΈ κΈ°λ₯μ μΆκ°νλ€.
- λͺ¨λ νμΈμ΄ λλ ν base branchλ₯Ό main branchμ merge νλ€.