뷰 컨트롤러 간에데이터를 전달할때, 한 두개의 값이라면 값을 직접 전달해도 되지만, 영화 상세 페이지로 이동할때 진행했던 실습 내용처럼 영화제목, 영화 링크, 영화 디테일 등 여러개를 전달해야할 때는 값들을 일일히 전달하지 않고, 이 모든 값들을 담을 수 있는 MovieVO 타입의 객체를 선언해 넘겨주는게 효율적이다.

이때 만약 멤버 변수가 Int, String, Float, Bool 등의 기본 타입만으로 이루어져있다면 VO 는 구조체를 사용하고, 클래스 타입의 멤버 변수가 포함된다면 VO 역시클래스를사용하는 것이 좋다. 이는 구조체와 클래스가 가지고 있는 차이 중 ‘값에 의한 전달'과 ‘참조에 의한 전달' 의 차이이다.

라고 책에는 써 있는데, 윗 내용만 가지고 내 경험과 비교해 봤을 때,

단순히 배열의 타입, 객체의 타입을 정해줄 때에는 struct를,

회사에서 구축한 내부 디자인 시스템처럼 입력받은 객체의 값을 변형해서 리턴해줄때에는 아무렇지 않게 class를 써왔던 것 같다. 그리고 class안에는 당연하게 init() 함수를 썼었다.

이번 기회에 좀더 자세하게 알아보려고 한다.

Class, Struct 의 공통점

Class, Struct 의 차이점

class