κ²μ κΈ°λ₯μ μ¬μ©μκ° λ μνλμ§ λΆν° κΈ°λ₯μ΄ μ μ λμ΄μΌν©λλ€.
λ°λΌμ UXμ€κ³ -> UIμ€κ³ -> APIμ€κ³ -> APIꡬν κ° Stepμμμ κ³ λ―Όμ΄ μμμ΅λλ€.
λ¨μν κ²μ κΈ°λ₯μ κ°λ°νλ€κ° μλ μ¬μ©μμ μ§μ ν Needsλ 무μμΌκΉμμ μμνμ΅λλ€. μ΄ν 3κ°λ‘ μ 리ν μ μμμ΅λλ€.
π Need 1. νμ¬ μμΉμμ κ°κΉμ΄ μ£Όμ°¨μ₯μ μκ³ μΆμ λ
βμ½μμ κ·Όμ²μ μ£Όμ°¨μ₯μ΄ μλ?β
β
μ¬μ©μλ μ§λλ₯Ό μ€μ¬μΌλ‘ ν μ£Όλ³ νμμ μν¨
β
κ²μ μμ΄λ νμ¬ μμΉ μ€μ¬ λ°κ²½ μ£Όμ°¨μ₯ μ‘°ν κΈ°λ₯ νμ
π Need 2. νΉμ μ₯μ κ·Όμ²μ μ£Όμ°¨μ₯μ μκ³ μΆμ λ
βμ½μμ νμ§μμ μΉκ΅¬λ€μ΄λ λ§λκΈ°λ‘ νλλ°, κ·Όμ²μ μ£Όμ°¨μ₯ μλ?β
β
μ¬μ©μλ κ°κ²/μ₯μλͺ
μ μ
λ ₯νκ³ κ·Έ μ£Όλ³ μ£Όμ°¨μ₯μ νμνκ³ μ ν¨
β
μ₯μ κ²μ β ν΄λΉ μμΉ μ€μ¬μΌλ‘ μ§λ μ΄λ β μ£Όλ³ μ£Όμ°¨μ₯ νμ
(λ°μ UIλ₯Ό νμΈνλ©΄ μ΄ν΄κ° μ½λ€..!!)
π Need 3. μ£Όμ°¨μ₯λͺ
"μ€μ μ %" μ΄λ¦μ κ°μ§λ μ£Όμ°¨μ₯
βκ·Έλ κ°λ μ£Όμ°¨μ₯μ΄ βμ€μ μ μ£Όμ°¨μ₯βμ΄μλ κ² κ°μλ°β¦β
β
μ¬μ©μλ κΈ°μ΅λλ μ΄λ¦ μΌλΆλ§μΌλ‘ κ²μνκ³ μΆμ΄ν¨
β
ν
μ€νΈ κΈ°λ° μ£Όμ°¨μ₯λͺ
ν€μλ κ²μ κΈ°λ₯ μ 곡 νμ
μ΄λ κ² μ¬μ©μμ Needsμ ν΅μ¬ UXλ₯Ό μ€κ³νκ³ ν΄λΉ μλμ UIλ‘ κ΅¬νν΄ λ³΄κ² μ΅λλ€.
UXλ₯Ό ꡬννκΈ° μν΄ UIλ‘ μ€κ³νμ΅λλ€.
μλλ κ²°κ³Ό μ
λλ€. κ° λΆμ°μ€λͺ
μ UXλ₯Ό μ΄λ»κ² ꡬνν μ§κ° λνλμ Έ μμ΅λλ€.
ν€μλ κ²μ μ APIμμ κ²μ μλ΅μ μ€λ€λ©΄ 1)μ£Όμ°¨μ₯ DB νμ
2)μΉ΄μΉ΄μ€ λ‘컬 κ²μ APIνΈμΆ
μ νκ² λ©λλ€.
1)μ£Όμ°¨μ₯ DB νμ
μλ£νμ§λ§ 2)μΉ΄μΉ΄μ€ λ‘컬 κ²μ APIνΈμΆ
μ§νμ€μΈ λ³λͺ©μ΄ λ°μν μ μμ΅λλ€.
APIλ₯Ό λκ°λ‘ λΆλ¦¬ν©λλ€!!!
UIμ μΌλ‘ ν€μλμ λ§€μΉλ νμ΄λΌμ΄ν
μ νκ²λλ€λ©΄ κ°λ
μ±μ΄ μ’μμ§ κ²μ
λλ€.
λ°λΌμ ν΄λΉ νλλ Response DTOμ μΆκ°νμ΅λλ€!
μλ΅ JSON μΌλΆ
"parkingZones": [
{
"matchedInfo": [
{
"field": "zoneName",
"value": "μ€μ μ μ£Όμ°¨μ₯",
"matchedText": "μ€μ μ ",
"startIndex": 0,
"endIndex": 2
},
{
"field": "cityName",
"value": "μμΈνΉλ³μ",
"matchedText": "μμΈ",
"startIndex": 0,
"endIndex": 1
}
]
TDDλ°©μμ
RED -> GREEN -> REFACTORING
λ¨κ³λ₯Ό μ€μνλ©° ꡬνν΄λμ΅λλ€.
Web Client μΈμ€ν΄μ€λ₯Ό νμ©ν΄ μΈλΆ APIλ₯Ό νΈμΆνμ΅λλ€. μ¬κΈ°μμ
ν΄λΉ Web Clientλ₯Ό μ΄λ»κ² λͺ¨νΉνκ³ λ¨μν
μ€νΈν μ§κ° λ§λ§ν΄ GPTνν
λ¬Όμ΄λ³΄κ³ κ΅¬κΈ μμΉμ 1μκ° λκ² μ§ννκ³ κ²°κ΅ MockWebServer
λΌλ λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ΅λλ€.
μ§μ Mockingμ μλμ§λ§ μΈλΆ API ν μ€νΈ μ½λλ₯Ό μ§€ λ λ§€μ° μ μ©ν©λλ€!!
1) ν€μλ κ²μ μ½λ https://github.com/Team-Devmon-IN-KU/HonorsParking-BE/pull/80
2) μΉ΄μΉ΄μ€ λ‘컬 κ²μ μ½λ : https://github.com/Team-Devmon-IN-KU/HonorsParking-BE/pull/87
1) μΌκ° 10λ§ μΏΌν° μ΄κ³Όμ μ λ‘ μκΈ λ°μ
ref : https://developers.kakao.com/docs/latest/ko/getting-started/quota
2) λλν μλ΅ κ°μ
λ€μ΄λ² λ‘컬 κ²μμ μ΅λ 5κ°λ°μ μλ΅μ λ°μ μ μμμ§λ§ μ΅λ 45κ° λ°μ΄ν° μ΅λ κ°λ₯
1) 본격μ μΈ TDDκ°λ°μ νλ μ’λ μ μ°¨μ μΈ κ°λ°μ ν μ μμλ€.
λν ν
μ€νΈκ° μ€μ μΌλ‘ κ°λ°μ νλ "νλ‘λνΈ μ½λμμ νμ½νμ§ μκ²" λμλ€.
2) UXλΆν° κΉμ κ°λ° μμκΉμ§ ν΄κ°λ©΄μ λ°±μλ κ°λ°μμΈ λ€λ₯Έ ννΈλ μΆ©λΆν μ΄λ ΅κ³ μ μ€ν μ νμ΄ νμν¨μ μκ²λμλ€. μ΄λ₯Ό κΈ°λ°μΌλ‘ μμΌλ‘ λ§‘μ μ 무μ λν΄ μ± μκ°μ λ λν μ μμ κ² κ°λ€.