TIL (Today I Learned) 240113

Danny·2024년 1월 14일

TIL(Today I Learned)

목록 보기
12/34

TIL (Today I Learned)

1월 13일 (토)

🔥학습 내용

Struct(구조체)

1. Struct는 무엇인가?

  • Type(타입)이다. 그렇다면 Type(타입)이란 무엇인가?

    • 모든 개체의 행위와 특성을 한데 모아 표현해둔 것이다.
    • Type(타입) 자체는 일을 하지 않지만, 타입 형태로 생성된 개체는 일을 할 수 있다. ex) 타입은 자동차 설계도, 개체는 자동차
     struct Car {
       let color
       let number
       
       func move(where: String){
       
       }
     }
  • 이렇게 타입으로부터 만들어진 개체를 우리는인스턴스라고 부른다.

  • 스위프트에서는 Type(타입)에 해당되는 것이 struct(구조체), class, enum, protocol 등이 있다.

2. Struct를 왜 사용해야할까?

  • 참조가 아니라 값의 복사를 원할 때 사용한다.
  • 상속 받을 필요가 없을 경우 사용한다.
  • 애플 개발자 가이드 문서 Choosing Between Structures and Classes에 따르면, Choose Structures by Default 라고 명시되어있다.
    • 애플이 타입을 선택할 때, 기본으로 class가 아닌 struct로 선택하라고 하는 내용은 다음 아래의 내용에서 의미를 알 수 있다.
      1. 앱의 상태를 고려하지 않고 코드 관련된 부분만 찾기 쉽다. 그 이유는 struct가 값의 구조로 되어 있으므로, 앱 전체 흐름의 큰 영향을 끼치지 않기 때문이다.
      2. 그 결과, 코드의 섹션이 변경되어 인스턴스도 변경이 되었을 때, 함수 호출에 있어서 보이지 않는 것 보다, Struct를 이용해서 명시적으로 확인할 수 있는 장점이 있다.

생각해봐야할 점 🤔

  • 객체 지향에 대한 개념을 이해가 될 때까지 계속 학습이 필요하다.

#. 참고 URL

https://developer.apple.com/documentation/swift/choosing-between-structures-and-classes

profile
안녕하세요 iOS 개발자 지망생 Danny 입니다.

1개의 댓글

comment-user-thumbnail
2024년 1월 14일

값의 구조로 되어있는 데, 왜 앱의 전체 흐름에 방해가 되지 않는다고 하는 지는 확인이 필요할 것 같다. 이해가 되지 않는다.

답글 달기