[의사결정기록] MVC 패턴에서의 amountTextField 동작 정의

2026. 3. 9. 11:39·내일배움캠프/환율 계산기 - 개인 프로젝트

1️⃣ amountTextField의 동작 할당

class CalculationViewController {
    private var stringAmount: String?

    private func setTextFieldAction() {
        let save = UIAction { [weak self] _ in
            let text = self?.calculationView.passAmountText()
            self?.stringAmount = text
        }
        
        calculationView.setTextFieldAction(save)
    }
}


CalculationView의 amountTextField의 경우, 텍스트필드의 텍스트가 변화할 때마다 CalculationViewController의 stringAmount 속성에 저장하고 있습니다.

동작은 Controller에서 정의하고 싶은데, 동작에 필요한 데이터와 동작을 할당받을 객체는 View가 가지고 있으니 너무 View와 Controller 사이를 왔다갔다 거리는 비효율적인 느낌이 들었습니다.

  1. Controller에서 동작 정의 시작 (func setTextFieldAction())
  2. View → Controller 데이터 전달 (func passAmountText() -> String?)
  3. Controller → View 동작 할당 명령 (func setTextFieldAction(_ action: UIAction))

하지만 어찌됐든 View의 데이터와 ViewController의 속성 모두 필요한 것이기 때문에 현재 구현 방식을 유지하기로 했습니다.
(View에서 텍스트필드의 동작을 정의하더라도 Controller에서 속성을 받아올 필요가 있습니다. delegate를 사용하자니 그럼 코드의 복잡도가 현재와 크게 다르지 않을 것 같았습니다.)

 

2️⃣ amountTextField로의 접근

class CalculationView {
    private let amountTextField = UITextField()

    func setTextFieldAction(_ action: UIAction) {
        amountTextField.addAction(action, for: .editingChanged)
    }
    
    func resignTextField() {
        amountTextField.resignFirstResponder()
    }
    
    func passAmountText() -> String? {
        return amountTextField.text
    }
}


func resignTextField() 메서드나 func passAmountText() -> String? 메서드는 내부에 정의된 동작이 많지 않습니다.
단순히 amountTextField에 접근하는 건데 메서드로 정의할지, amountTextField의 접근제한자를 internal로 바꿀지 고민했습니다.
접근제한자를 변경할 경우 amountTextField가 외부에서 변경될 위험이 있으므로 이번에는 그런 위험성을 최대한 줄이고자 현재 방식을 유지하였습니다.

'내일배움캠프 > 환율 계산기 - 개인 프로젝트' 카테고리의 다른 글

[트러블 슈팅] CoreData에 저장한 데이터가 없는데 데이터가 존재하는 문제  (0) 2026.03.02
[트러블 슈팅] 셀 선택 시 여러 개의 데이터가 출력되는 현상  (0) 2026.03.02
[트러블 슈팅] UICollectionView Cell Autolayout 충돌  (0) 2026.03.02
[트러블 슈팅] UISearchBar backgroundColor 미적용  (0) 2026.02.22
[프로젝트 소개] 환율 계산기 앱 만들기  (0) 2026.02.22
'내일배움캠프/환율 계산기 - 개인 프로젝트' 카테고리의 다른 글
  • [트러블 슈팅] CoreData에 저장한 데이터가 없는데 데이터가 존재하는 문제
  • [트러블 슈팅] 셀 선택 시 여러 개의 데이터가 출력되는 현상
  • [트러블 슈팅] UICollectionView Cell Autolayout 충돌
  • [트러블 슈팅] UISearchBar backgroundColor 미적용
devbambu
devbambu
devbambu 님의 블로그 입니다.
  • devbambu
    devbambu 님의 블로그
    devbambu
  • 전체
    오늘
    어제
    • devBambu (21)
      • WWDC (1)
      • Swift Github (1)
        • Algorithms (1)
      • 내일배움캠프 (19)
        • Kiosk - Gacha! (4)
        • 환율 계산기 - 개인 프로젝트 (6)
        • Kickboard - Animality (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
devbambu
[의사결정기록] MVC 패턴에서의 amountTextField 동작 정의
상단으로

티스토리툴바