본문 바로가기

전체 글34

깊은 복사 & 얕은 복사 (Swift) 값타입(ValueType) & 참조타입(ReferenceType) Swift에서는 모든 데이터 타입이 'ValueType'이거나 'ReferenceType'으로 이루어져있다. 대표적인 ValueType으로는 Struct,Enum 등등 이 있고 대표적인 ReferenceType으로는 Class를 들 수 있을 것이다. 이 두 Type은 다른 차이점들이 많지만, 가장 큰 차이점은 'Copy를 하는 방식'이다. 얕은 복사 (Shallow Copy) 얕은 복사는 '주소값을 복사'하는 복사 방식이다. 따라서, 값을 복사할때 새로운 메모리 공간을 할애하여 복사하는 것이 아니라 주소값을 복사한다. 우리가 주로 Class를 새로 선언하고 다른 변수에 복사를 할때 일어나는 일과 같다. 따라서, A클래스의 Property(.. 2022. 5. 8.
Swift로 보는 SOLID(ISP,DIP) SOLID SOLID란.. S (Single Responsibility Principle) : 단일 책임 원칙 O (Open/Close Principle) : 개방/폐쇄 원칙 L (Liscov Substitution Principle) : 리스코브 치환 원칙 I (Interface Segregation Principle) : 인터페이스 분리 원칙 D (Dependency Inversion Principle) : 의존성 역전 원칙 으로 이루어져 있는 객체지향프로그래밍에서 요구하는 원칙 들이다. ISP(인터페이스 분리 원칙) 클라이언트 객체 (구체 타입 또는 추상화된 인터페이스든) 사용하지 않는 메소드에 의존하면 안된다. ISP를 알아보기 위해 간단한 예제를 만들어보자. Cafe를 사용하는 유저가 3명이 있.. 2022. 5. 6.
MetaType_iOS 메타타입이란? Type의 Type임. - 애플 . ??? 1. Type 그 자체 2. Type을 다시 추상화? 3. 언제씀? Type 그 자체를 사용하고 싶을 때. 라고.. 하는데 잘 모르겠어서 하나하나 단어를 분해해보았다. Meta가 뭘까? 메타(meta)란... 메타는 위키백과에서 많은 의미를 가지는데 이중에서 눈여겨 봐야할 것은 스스로 인 것 같다. Type 그 자체(스스로) 뭔가 값을 가지고 있는 Type이라고 이해를 일단 해보았다. Type이 뭘까? Type is like MBTI - 포프리 Type이란 어떠한 속성들을 모아서 분류하여 설명하는 것이라고 할 수 있다. 예를들어 그림의 MBTI를 보면, ISTJ라는 타입은 세상의 소금형, 한번 시작한 일은 끝까지 해내는 사람 이라는 속성을 가지고 .. 2022. 5. 5.
iOS Cache Cache? 캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. - 위키백과 정의에서 볼수 있다시피, 다시 계산하거나 데이터에 접근하는 시간을 줄이기 위해 미리 값을 복사해 놓는 임시 저장소를 의미한다. 특히, 서버와의 작업이 있을때 서버에게 지속적으로 요청하는 것이 아니라, 메모리에 저장되어 있는 Cache를 사용하기 때문에 적절히 사용을 한다면 DBMS나 서버의 부하를 줄이고 .. 2022. 4. 24.