일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ios
- AnyCancellable
- SwiftData
- matchedGeometryEffect
- @ObservedObject
- ScrollViewReader
- async
- ScrollViewProxy
- Custom URL Scheme
- Universal Link
- Dynamic Dispatch
- Combine vs Async/Await
- MVVM
- SwiftUI
- The Composable Architecture
- @StateObject
- @NameSpace
- SFSafariView
- App Thinning
- combine
- @main
- 이것이나의다정입니다
- Concurrency Programming
- architecture
- Static Dispatch
- async/await
- wwdc23
- await
- swift
- fileprivate
- Today
- Total
목록분류 전체보기 (32)
홍로그
UIWebView 현재는 Deprecated 된 상태 UIKit 프레임워크의 일부 페이지 크기 조절 가능 약 3500개의 개체를 렌더링 90% CPU를 사용하여 렌더링 데이터가 쿠키에 저장되므로 다음 로딩 시간은 이전에 비해 적음 프로세스 내에서 실행. 웹에서 사용하는 메모리가 앱 사용 공간의 일부로 간주 iOS에서 할당하려는 값을 초과하면 앱 자체가 운영체제에 의해 손상됨 WKWebView WebKit 프레임워크 약 8500개의 개체를 렌더링함으로써 UIWebView보다 두배이상의 성능 25% CPU를 사용하여 렌더링 데이터가 쿠키에 저장되지 않아 항상 로딩시간이 동일함 프로레스를 벗어나 별도의 스레드에서 실행하기 때문에 할당량을 초과해도 앱이 죽지 않음. (앱이 알림을 받고 페이지를 다시 로드하려고 ..
5 문장 나 하나만 생각하며 살기도 벅찬 세상 속에서 그럼에도 여전히 누군가를 챙기는 사람들이 있다. 우리의 범위가 나보다 훨씬 넓은 사람들. 오늘의 나를 만든 건 그런 이들에게 받은 섬세한 애정이었다. 삶이라는 길을 함께 걷는 그들의 얼굴을 기억하기 위해 가끔씩 앞이 아닌 옆을 바라보고 싶다. 세상에서 진짜 사랑 같은 건 없다고 말했던 어제의 내가 부끄러워진다. 사랑은 있다. 어디에든, 어떤 모습으로든. 마음이 풍요로운 삶을 위해서는 좋은 친구와 멋진 이불을 만날 것. 가래떡으로 만든 떡볶이는 훌륭했고 튀김은 놀라울 정도로 바삭했다. 순식간에 접시를 비웠다. 동생의 혹평이 떠올라 그냥 지나쳤다면 끝내 느낄 수 없었던 맛이었겠지. 평점 높은 영화, SNS에서 유명한 카페, 텔레비전에 나온 여행지, 유명한..
ARC가 메모리를 참조하는 방법 Strong reference strong은 어떠한 설정도 없을 때의 디폴트 값이다. 해당 인스턴스의 소유권을 가진다. reference count를 증가시킨다. 클로저 캡처링 이나 객체 간 서로 참조 등의 경우 reference count가 0이 되지 않는 상황이 있을 수 있고, 이럴 때 메모리 누수 (Memory Leak)가 발생할 수 있다. Weak reference weak은 해당 인스턴스의 소유권을 가지지 않는다. reference count를 증가시키지 않는다. weak은 객체가 Optional이라 해당 객체가 해제되어 버린 상태에서 참조하게 되면 Application이 강제 종료 되는 상황이 생긴다. 대신 언래핑 하는 과정을 통해 안전하게 사용할 수 있다. 객..
ARC란 메모리 관리를 위해서는 Heap 영역에 참조형 자료들이 얼마나 참조되고 있는지 카운팅 하고 이에 따라 메모리를 할당 및 제거해야 한다. ARC는 이것을 자동으로 해준다. ARC는 Automatic Reference Counting으로 Compile Time에 동작하며 클래스의 새로운 인스턴스를 만들 때 ARC는 인스턴스의 정보를 저장하기 위해 메모리를 할당하고 코드를 분석해서 자동으로 적절한 위치에 retain, release 코드를 생성해 준다. 또한 reference count를 추적해 0이 되면, 즉, 인스턴스가 더 이상 사용되지 않는다고 판단하면 메모리를 해제한다. GC란 GC는 (Garbage Colletion)으로 프로그램 실행 중 (Run time)에 동적으로 감시하고 있다가 더 이..
5문장 세상에 결승전 출전에 만족하는 축구선수는 없다. 나는 결승전에서 이기고 싶었다. 내 꿈은 챔피언스리그 우승이었다. 아버지 이론은 간단했다. 하나가 되어야 둘로 넘어갈 수 있다는 것이다. 양쪽 발로 볼을 마음대로 다룰 줄 알아야 패스도 하고 크로스도 올리고 슛도 때릴 수 있다는 믿음이다. 독일 함부르크 연수 떠나기 전 기존 한국의 고등학교 학적 처리를 두고 주위에서는 1년 연수 후의 일을 얘기했다. 한국으로 돌아올 때를 생각해야 한다는 것이다. 제도권에서 한번 밀리면 돌아가기가 쉽지 않다. 하지만 아버지는 완강했다. 한국으로 돌아올 생각이면 처음부터 가지도 않는다면서 배수의 진을 쳤다. 도공이 단 한 개의 작품을 세상에 내놓기 위해서는 수많은 도자기를 빚고 깨기를 반복해야 한단다. 아버지는 나라는 ..
5 문장 자신의 이름을 걸고 책을 내는 저자들은 아무리 못해도 그 안에 자신만의 노하우를 최소 2~3개 정도는 담을 수밖에 없습니다. 한 권의 책에 2개의 노하우밖에 담겨있지 않다면 그 2개만이라도 온전히 자신의 것으로 만드는 게 중요한 것이죠. 그것이 바로 삶을 변화시키는 독서법입니다. 돈에게 최대한의 일을 시키는 방법은 레버리지를 활용하는 것이다. 돈을 최대한 효율적으로 활용하기 위해서는 보통 사람들이 가지고 있는 고정관념, 바로 '대출'에 대한 부정적인 생각을 버려야 한다. 은행이 당신의 돈을 활용해서 배를 불리듯 당신도 은행의 돈을 적극 활용하여 당신의 부를 늘려라. 대부분 실패한 사람들은 자신이 부족해서 결과가 안 좋았다는 사실을 감추고, 무조건 그 길 자체를 부정하는 경향이 있다. 그리고 특히..
5 문장 실행이 따르지 않는다면 탁월한 재능도, 빛나는 두뇌도 그저 잠재력에 그칠 뿐 성과로 이어지지 않는다. 우리가 원하는 것을 성취하기 위해서는 무엇보다 동사형 인간으로 거듭날 필요가 있다. 많이 읽고 많이 안다고 사회에서 인정받는 것도 아니고 더 발전하는 것도 아니다. 달라지고 싶다면 머릿속에 머무는 고민들을 실행으로 하나씩 해결하는 것만이 답니다. 생각한 대로 살지 않으면 사는 대로 생각하게 된다. 계획만 세우고 생각만 해서는 인생은 결코 달라지지 않는다. 내게 주어진 시간을 내가 지배하지 못하면 누군가 나의 시간을 지배하려 한다. 나의 강점을 바탕으로 나의 일을 잘 해냄으로써 타인과 사회를 아름답게 만든다. 1독 1행 책 읽고 중요한 부분, 감명 깊은 부분들을 밑줄 긋고 2회독한다. 밑줄 그은 ..
책을 읽고 그 책에서 감명 깊거나 공감 되는 문장을 5가지 골라 블로그에 적으려고 한다. 그리고 책 한 권 당 꼭 실천으로 옮기고 싶은 행동 한 개 이상 적고 실천할 것이다.
뷰가 화면에 보이는 상태의 변화나 뷰의 레이아웃에 변화가 생기면 뷰 컨트롤러는 여러 가지 메서드를 호출해 서브 클래스가 적절한 대응을 할 수 있게 한다. 또 뷰 컨트롤러는 각각의 생명주기를 가지고 있어 상황에 따라 원하는 로직을 수행하도록 만들 수 있다. viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메서드로 메모리에 처음 로딩 될 때 1회 호출되는 메서드다. 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않는다. 뷰의 추가적인 초기화 작업을 하기 좋은 시점이다. viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고 화면이 표시되기 직전에 호출되는 메서드로 다른 뷰로 이동했다가 되돌아오면 다시 호출되는 메서드다. 화면이 나타날 때마다 수행해야 하는..
구조체와 클래스는 데이터를 용도에 맞게 묶어서 표현할 때 사용한다. 구조체와 클래스는 데이터를 가질 수 있도록 프로퍼티를 사용하고, 기능을 실행하기 위해 메서드를 사용한다. 또 프로퍼티에 접근할 수 있도록 서브 스크립트를 정의한다. 그리고 새로운 기능을 위해 익스텐션 기능을 적용할 수 있다. 구조체(Structure) 구조체는 struct 키워드로 정의한다. 구조체는 상속할 수 없다. 구조체는 값 타입 (Value type)이다. Stack 메모리에 할당. 두 object를 "같다, 다르다"로 비교해야하는 경우 사용. copy된 객체들이 독립적인 상태를 가져야 하는 경우 사용. 코드에서 object의 데이터를 여러 스레드를 걸쳐 사용할 경우 사용. 값 타입 (Value type) 값 타입은 데이터를 전달..