커스텀 버튼 CircleButton 내부에서 아래와 같이 액션을 설정하고 있었음:
addTarget(nil, action: model.action, for: .touchUpInside)
처음에는 정상 작동하는 것처럼 보였지만, 런타임에서 예기치 않은 동작이나 버튼이 아예 동작하지 않는 문제가 간헐적으로 발생함.
target: nil은 Responder Chain을 통해 동작 대상을 탐색하게 됨버튼을 생성하는 시점을 ViewController 쪽으로 끌어올리고, self를 명시적으로 지정:

return CircleButton(model: model)
let button = CircleButton(model: model)
button.addTarget(self, action: model.action, for: .touchUpInside)
return button
즉, addTarget은 ViewController가 버튼을 생성하는 시점에서 직접 연결하는 것으로 수정함.
addTarget(nil, action: ..., for: ...) 은 되도록 피하고 명확한 target 지정이 안정적임