swift에서 value type(enum, struct)의 프로퍼티는 기본적으로 메서드 내에서 수정할 수 없는데 수정해야 하는 경우 앞에 mutating키워드를 붙여줘야 하는 것을 모두 알고 있을 것이다. mutating을 선언한 메서드는 메서드 내에서 프로퍼티를 변경할 수 있고 메서드가 종료될 때 변경한 모든 내용을 원래 struct 인스턴스 메모리에 다시 기록하도록 하는 것이다. struct Person { var name: String mutating func changeName() { name = "changedName" } } var heidi = Person(name: "heidi") heidi.changeName() 그렇다면 mutating라는 키워드는 왜 필요한 것일까? swift는 값이..