값을 많이 저장할 때 서로 관계가 있는 값을 한 번에 관리하거나 표현할 때 사용
관계가 있는 여러 데이터를 묶어서 표현할 수 있다
ex) 강의 정보 - 강의이름, 강사이름, 학생 수 등 이런 것을 낱개가 아닌 뭉텅이로 관리 가능
object는 2가지 방식으로 구현 됨
1. structure
2. Class
Structure는 Vlaue Types라 복사돼서 할당
Class는 참조돼서 할당(공유하게 되는 구조)
이렇게 Structure와 Class는 구현될 때 차이가 있음
Class의 경우에는 둘 다 값이 Hey로 변했지만
Structure는 pStruct2만 Hey로 변한 것을 볼 수 있다
그 이유는 다음과 같다
Class의 경우에는 하나를 바라보는데
Structure는 복사해서 있기 떄문에 이게 값이 다름
(뭔소린지 나도 잘 모르겠는데 쨌든 값이 다르게 나온 거 보면 뭔가 다름)
생겨나는 공간에서 차이가 있음
필요한 메모리 공간이 달라서 구현에서도 차이가 생긴다
Structure는 Stack이라는 공간에, Class는 Heap이라는 공간에 생긴단다
(뭐 그렇다는데 솔직히 두 개가 뭔지도 모름)
이렇게 struct를 활용할 수 있는데
솔직히 제대로 이해하지 못했음
많이 써봐야 할 것 같은데 아직은 너무 어렵다
어디에 뭐가 들어가는지 이게 너무 헷갈림...
아 빡친다
일단 이거 다 이해할라고 하면 시간 너무 오래걸릴 것 같아서
일단 넘어가자
Protocol - 지켜야 할 약속이라고 보면 됨
꼭 구현되어야 할 것들
어떤 서비스를 이용할 때 꼭 해야 할 일의 목록
ex. 음악 서비스라면 가입, 결제 등이 있겠다
stucture에서도 데이터, 메소드 두 가지 부분으로 나뉨
data 부분을 Properties라고 말함
값을 직접 저장한 게 Stored Property
데이터를 가져와서 활용하는 게 Computed Property
접근할 때마다 다시 계산함
computed properties와 method로 쓰는 것 중 무엇이 더 좋을지 고민했던 강사님
기본적으로
Properties는 호출시 (저장된) 값을 하나 반환한다
Method는 호출시 어떤 작업을 한다
이런 기준을 사용한다고 함