Swift (53) 썸네일형 리스트형 Method Swizzling Method Swizzling이란? 직독직해를 해보면 .. 메서드를 뒤섞는 것 .. 을 말한다. 즉, 런타임 시점에 기존 메서드를 다른 메서드로 바꾸어서 실행하는 것이다. (= 런타임 시점에 메서드를 교체할 수 있다) 언제 사용하는데? 이미 정해진 iOS의 특정 메소드를 실행하고 싶을 때 해당 메서드 대신 다른 메서드가 실행되도록 하고 싶을 때 .. 이다 .. (??) 주로 앱에 분석 기능을 통합할 때 특정 기능을 클래스, 서브 클래스 모두 한번에 적용하고 싶을 때 사용한다. 🍋 예를 들어서 ViewController 안에는 기본적으로 viewDidLoad, viewWillAppear와 같이 자동으로 호출되는 특정 메서드들이 있다. 만약, viewWillAppear가 호출될 때마다 이것을 로그로 출력해서.. [Swift] 싱글톤 패턴에서 구조체와 클래스의 차이 싱글톤 객체를 클래스로 구현할 때와 구조체로 구현할 때 무슨 차이가 있을까? 그 전에 .. 싱글톤 패턴 다시 정리 .. 내 입에서 처음부터 끝까지 아무것도 보지 않고 나올 때까지 정리 .. 개념 단 하나의 인스턴스를 생성해서 여러 곳에서 공유되는 객체이다. 장점 고정된 메모리 영역을 얻고, 새로운 인스턴스를 만들지 않기 때문에 메모리 낭비를 방지할 수 있다. 단점 그러나, 한번 생성되면 deinit이 불가하므로 남용하면 안된다. 또한, 멀티 쓰레드 환경에서 동기화 처리를 하지 않으면 문제가 발생할 수 있다. 🤔 그런데 말입니다. 구조체가 클래스보다 메모리 관리에 용이하기 때문에 구조체로 관리하는 것이 좋지 않을까? 왜 싱글톤 패턴에서 대부분 클래스를 사용할까? 클래스와 구조체의 차이와 같다. 당연한 말임.. [Swift] Anti Pattern이 뭐고? static을 공부하다가 .. singleton을 다시 공부했고 .. 그러다가 나온 anti pattern이라는 것 .. 이것이 무엇인가!??! 덕분에 이 상태였지만 .. 어쩌겠어 .. 공부해야지 .. Anti Pattern 안티패턴이란? 소프트웨어 공학 분야 용어로, 🔵많이 사용되는 패턴이지만 🔴비생산적인 패턴을 의미한다. 1995년 앤드루 케이니그가 디자인 패턴을 참고해서 처음 사용한 말 .. 이라고 한다 .. (누군데. 저도 몰라요.) 그리고 3년 후 '안티 패턴'이라는 책 때문에 '안티 패턴'이라는 말이 많이 알려지게 되었다 .. 고 한다 .. 출처 : 위키 백과 싱글톤 패턴은 안티 패턴? 먼저 간단하게 싱글톤 패턴을 정리하자면, 싱글톤 패턴은 객체의 인스턴스가 한번 만들어진 이후로 해당 객체에 .. [Swift] static을 언제 쓰는데? Swift는 method와 property에 static 접두사를 사용해서 인스턴스가 아닌 타입(선언된 타입)과 연결할 수 있도록 한다. Static Property static property의 가장 일반적인 사용 사례는 환경 설정(Configuration)이다. static 키워드를 사용해서 설정(색상, 폰트)들을 관리하는 이유는 namespace(함수, 변수 등과 같은 내부 식별자에 범위를 제공하는 선언적 영역, 유효 범위를 제공하는 영역)를 제공하기 때문이다. 일반적인 예시는 스타일 가이드로 사용하는 것이다. 만약 특정 색상이나 글꼴을 변경하고 싶을 때 프로젝트를 모두 뜯어봐야 한다면 비효율적이고 정확하지 않을 것이다. (빠지는 부분들이 있기 때문에) 따라서, 코드 전체에 값을 분산시키는 것보다 .. [Swift] class func VS static func Swift로 개발을 할 때 함수를 많이 사용하는데, 이 함수의 종류는 크게 세가지이다. 함수 앞에 붙는 키워드에 따라서 인스턴스(instance) / 클래스(class) / 스태틱(static) 세 종류로 나뉜다. class Sokyte { func sokyteInstanceFunc() { } class func sokyteClassFunc() { } static func sokyteStaticFunc() { } } 첫번째 형태를 많이 보았을텐데 평소에 많이 사용하는 함수가 바로 instance 함수이다. class func vs static func 공통점 두가지 함수의 공통점은 타입 메소드라는 점이다. 두가지 모두 클래스의 객체가 아닌 클래스 그 자체와 연관이 되어 있다. 그러므로 () 생성자로 인스.. URLSession (개념) URLSession 데이터를 다운로드 하거나 업로드 하는 등의 API를 제공해주는 클래스로 URL이 가리키는 End Point를 갖고 있다. URLSession API를 통해서 데이터를 어떻게 전송하고 어떻게 동작할 지 등의 정책을 설정할 수 있다. > 타임 아웃, 캐시 정책, 백그라운드 데이터 전송 간단하고 기본적인 요청인 경우에는 동작과 전송에 대한 정책이 기본적으로 설정되어 있는 Shared Session을 사용할 수도 있고, 별도 처리를 하기 위해서는 Session Configuration 객체를 통해 Session을 생성할 수 있다. > Session Configuration 객체를 통해서 Default Session, Ephemeral Session, Background Session 등을 생.. Codable 서버 통신을 하게 된다면 한번쯤 만나게 되는 Codable !! 관련해서 Encodable / Decodable도 알아보자. Codable? Encodable? Decodable? 위의 개념을 왜 알아야할까? (이렇게 안하면 오류가 나니까 라고 하면 틀린 말은 아니지만 .. 친절하지 못한 설명이니 .. pass) 클라가 서버에 요청을 하면, 서버에서는 요청을 바탕으로 응답 메시지를 전달한다. 위의 과정을 잘 이루어지기 위해서는 클라-서버는 서로 정해진 형태로 요청과 응답을 주고 받아야 한다. 이 때 주로 HTTP 프로토콜을 준수해서 요청을 하게 되고, (클라이언트 -> 서버) HTTP 방식으로 요청할 때에는 여러가지 방법(= 메서드)이 존재한다. - GET - HEAD - POST - PUT - DELE.. Type Casting Up? Down? 타입캐스팅 업? 다운? 죽여? 살려? ㅈㅅ 타입캐스팅 ... 이름이 낯설 수도 있는데 사실 그렇지 않다. 우리가 알게 모르게 많이 사용하고 있는 개념이다. guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: HomeMainPublicGroupCollectionViewCell.cellIdentifier, for: indexPath) as? HomeMainPublicGroupCollectionViewCell else { return UICollectionViewCell() } 이런 코드들을 한번쯤 작성한 적이 있을 것이다. (없다면 돌아가.) 위 코드를 해석하면, collectionView에 register 된 cell 중에서 H.. 이전 1 2 3 4 5 6 7 다음