- Published on
π Swift - μΆμνλ‘ νμ νκΈ°
- Authors
- Name
- μ΄μ°½μ€
λ°°κ²½
- νμμ! μμ
μΈμ λλ!? λ κ·Έκ±° νμν΄!
- λ―Έμ! ν루λ λ ν΄μΌν κ² κ°μλ°!?
- μ΄β¦.? λ λΆ λ¨λλ°β¦.!? νλ‘ν μ½μ΄λΌλ μ€!
- μ€β¦! μ²μ°λ°?
κ³Όμ
μ€λμ κ°λ¨νκ² νμκ³Όμ νμ μ μμ‘΄μ±μ μ΅λν λμ΄λΈ λ°©λ²μ μκ°ν΄ λλ¦¬λ €κ³ ν©λλ€.
μ¬μ€ λ무 κ°λ¨νμ§λ§.. μ΄κ±Έ μκ°ν΄λ΄κ³ νκ³ μλ€λ μ μμ μ΄ μ‘°κΈμ μ±μ₯νλ? μΆμ λͺ¨λ¨ΌνΈμκ±°λ μ.
λΏλ―ν΄μλΌλ λ¨κ²¨λ¬μΌκ² μ΅λλ€ γ γ
final class JourneyRepositoryImplementation: JourneyRepository {
private let storage = PersistentStorage()
func startJourney(_ recordingJourney: RecordingJourney) -> Result<RecordingJourney, Error> {
do {
let result = await networking.request(.startJourney(recordingJourney))
switch result {
case .success(let startedJourney):
self.storage.setRecordingJourney(startedJourney) // π§
return .success(startedJourney)
case .failure(let error):
return .failure(error)
}
}
}
}
μ μ κ° κ΅¬ννκ³ μλ JourneyRepository
μ
λλ€.
ꡬν μ€μ λ‘컬 μ€ν 리μ§μ λ°μ΄ν°λ₯Ό μ μ₯νλ λ‘μ§μ΄ νμν΄μ‘μ΅λλ€. (π§ λΆλΆ)
κ·Έλμ ν΄λΉ μμ μ νκ³ μλ νμμκ² μν©μ μ¬μ€λ΄€λλ°...
final class PersistentStorage {
func setRecordingJourney(_ recordingJourney: RecordingJourney) {
// ...
}
}
λ€λ₯Έ μμ μ νμλλΌ ν΄λΉ λ‘μ§μ μμ§ μλ€λ κ²λλ€..!
μ΄ λ μ λ μ΄λ»κ² ν΄μΌν κΉμ?
ν΄λΉ νμμ΄ μμ μ λ§μΉ λκΉμ§ λ€λ₯Έ μμ μ ν΄λ λκ² μ§λ§..
ν΄λΉ λ‘μ§μ΄ λΉμ₯ νμνλ€λ©΄..?
μ΄ λ μΆμνκ° μ 머리μμ μ€μ³€μ΅λλ€.
νλ‘ν μ½μ΄λΌλ λ¨Όμ μ£ΌμΈμ!
νμμκ² μμ²ν κ²μ μΆμνλ₯Ό ν ν νλ‘ν μ½μ λ겨λ¬λΌλ μμ μ΄μμ΅λλ€.
λλ΅ 10λΆ μ λμ μκ°μ΄ μ§λ ν νμμ νλ‘ν μ½μ μ μκ² μ λ¬ν΄μ£Όμμ΅λλ€.
protocol Persistable {
func setRecordingJourney(_ recordingJourney: RecordingJourney) throws
}
μ€..! λ³κ²½μ μ΄ κ±°μ μμ΄ throw
λ§ μΆκ°λμ΄ μλ€μ.
private let storage: Persistable
init(storage: Persistable) {
self.storage = storage
}
try self.storage.setRecordingJourney(startedJourney)
μ΄μ μ μ½λλ μ무 λ¬Έμ μμ΄ λΉλλ©λλ€.
(λ¬Όλ‘ μ€μ κΈ°λ₯μ νμ§ μκ² μ§λ§μ)
μ격 μ μ₯μμ Pushλ κ°λ₯νκ³ , CIλ μ λλ‘ λκ² μ£ !
κ²°κ³Ό
μ΄ κ²½νμ λ°°κ²½μΌλ‘ μ ν¬λ νλ‘ν μ½μ λ¨Όμ μ£Όκ³ λ°λ μμ μ μ΅κ΄ν νμ΅λλ€.
λλΆμ μκ°μ΄ λΆμ‘±ν κ² κ°μλ ꡬν μκ° μμ λͺ¨λ ν΅μ¬ κΈ°λ₯λ€μ μΆκ°ν μ μμμ΅λλ€.
μΆμνκ° νμ μ κ΄μ μμλ μ’λ€λ μ΄μΌκΈ°λ₯Ό μ΅ν λ€μλλ°,
μ΄λ² κΈ°νμ νμ€νκ² μ²΄κ°ν μ μμμ΅λλ€. π