[Sesac IOS] 8일차 TIL

2022. 7. 13. 23:59·TIL

8일차 수업을 듣고 새로 알게된 것과 알고 싶은 것들을 정리한 글입니다.


Learned

  • 클래스(Class)
    • 클래스란 함수, 변수를 적절히 조합해서 특정한 기능을 수행하도록 만든 하나의 단위이다.
    • 이런 단위에 이름을 붙여 그 기능이 필요할때 언제든지 사용할 수 있다.
    • 클래스를 사용하는 프로그래밍 방식을 객체 지향 프로그래밍(OOP)이라고 한다.
    • 인스턴스 (Instance) : 클래스를 실제로 사용하기 위해 메모리 공간을 할당받은 객체
    • 상속 (Inheritance) : 한 클래스의 메소드와 프로퍼티를 다른 클래스에게 물려주는 것
      아무것도 상속받지 않는 클래스를 기반 클래스(Base Class)라고 한다.
    • 재정의 (Overriding) : 부모에게 물려받은 멤버를 자식 클래스에서 새롭게 정의하는 것
      기존의 부모 클래스에서 정의된 멤버를 사용하고 싶다면 super 키워드를 사용한다.
Swift에서 일반적으로 클래스의 인스턴스를 객체(Object)라고 표현한다.

 

  • 구조체 (Struct)
    • 클래스와 유사하게 데이터를 조합해서 하나의 단위로 구조화한 것
    • Swift의 데이터 타입(Int, Double, Array 등)과 열거형이 구조체로 돼있다.
    • 클래스와 유사하게 내부에 연산 프로퍼티와 메소드를 정의할 수 있다.
  • 클래스 vs 구조체
    • 클래스, 클로저는 참조 타입이고 구조체, 열거형, 튜플은 값 타입이다.
    • 값 타입은 스택(Stack)에 메모리를 할당해서 실제 값을 저장한다.
    • 참조 타입은 힙(Heap)에 메모리를 할당해서 실제 값을 저장하고 스택(Stack)에도 공간을 할당해서
      힙에 할당된 인스턴스의 메모리 주소를 값으로 저장한다.
    • 값 타입을 새로운 변수에 전달할 경우 스택(Stack)에 저장된 실제 값이 복사되어
      복사본이 메모리에 할당되고 그 메모리 주소가 새로운 변수와 연결된다.
      즉, 결과적으로 새로운 인스턴스가 만들어진다.
    • 참조 타입을 새로운 변수에 전달할 경우 마찬가지로 스택(Stack)에 저장된 값이
      복사되지만 값 타입과 다르게 인스턴스가 힙(Heap)에 저장되어 있으므로
      힙의 메모리 주소를 가진 복사본이 스택(Stack)에 할당되고 새로운 변수와 연결된다

비교연산자(==)는 타입에 상관없이 실제 값을 비교한다.
즉, 값 타입이면 스택에 저장된 실제 값을 비교하고 참조 타입이면 힙에 저장된 실제 값을 비교한다.
만약 두 개의 변수가 동일한 인스턴스를 참조하는지 확인하려면 항등연산자(===)를 사용한다.

 

  • 함수 관련
    • Swift 5.1부터 한 줄로된 코드에 대해 return 키워드를 생략할 수 있다.
    • 함수의 반환값을 선택적으로 사용해야 할때 @discardable를 사용한다.
      함수의 반환값을 사용할 수도 있고 안할 수도 있다는 의미
    • 매개변수에 기본값을 줄 수 있다.
    • 매개변수를 다르게 해서 이름이 같은 다양한 함수를 만드는 기능을 오버로딩이라고 한다.
  • 프로젝트에서 파일을 복사해 넣을땐 create group, 삭제할땐 move to trash를 사용하자. 

 

Learning

  • 스위프트 공식 문서의 "클래스와 구조체" 정리하기

 


이상입니다.

저작자표시 (새창열림)

'TIL' 카테고리의 다른 글

[Sesac IOS] 10일차 TIL  (0) 2022.07.16
[Sesac IOS] 9일차 TIL  (0) 2022.07.14
[Sesac IOS] 7일차 TIL  (0) 2022.07.12
[Sesac IOS] 6일차 TIL  (0) 2022.07.11
[Sesac IOS] 5일차 TIL  (0) 2022.07.09
'TIL' 카테고리의 다른 글
  • [Sesac IOS] 10일차 TIL
  • [Sesac IOS] 9일차 TIL
  • [Sesac IOS] 7일차 TIL
  • [Sesac IOS] 6일차 TIL
무슈후슈
무슈후슈
코딩은 창작이다.
  • 무슈후슈
    감성코드
    무슈후슈
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • 알고리즘 (30)
      • IOS (25)
      • Swift (4)
      • TIL (41)
      • CS (15)
      • 메모 (2)
      • 시플 (1)
      • RxSwift (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그래프 탐색
    ios
    github
    SWIFT
    풀이
    git
    백준
    MVVM
    코딩테스트
    그리디
    codable
    python
    비동기
    다이나믹 프로그래밍
    프로그래머스
    Realm
    알고리즘
    파이썬
    이분 탐색
    http
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
무슈후슈
[Sesac IOS] 8일차 TIL
상단으로

티스토리툴바