iOS (74) 썸네일형 리스트형 [Concurrency] GCD 바로 목차 ㄱ Main Queue 글로벌 큐와 Qos의 이해 Custom Queue GCD(디스패치 큐)의 종류와 특성 Queue의 종류 디스패치 큐 메인 큐 글로벌 큐 프라이빗 큐 오퍼레이션 큐 Main Queue 유일하게 1개 직렬 (Serial) 메인 쓰레드 = 메인 큐 1번 쓰레드 = 메인 쓰레드 = 메인 큐 유일 코드로 작성하면 DispatchQueue.main 으로 작성할 수 있다. // main으로 보낸다. DiapatchQueue.main.async { // 내부 코드 -> 1번 쓰레드에서 일을 한다. } DispatchQueue.main.asyncAfter(.now() + 2) { } 위 코드의 의미는 ✔️ 메인 큐로 작업을 보내는데, ✔️ 비동기적으로 보내고, ✔️ 지금으로부터 2초 뒤.. [Concurrency] 동시성 프로그래밍 동시성 프로그래밍 관련 개념 쓰레드 주로 PC 사양에서 많이 접하는 용어로 4코어 8쓰레드 / 8코더 16쓰레드 .. 등으로 접했을 것 쓰레드란? 간단하게 말해서 컴퓨터의 일을 처리하는 부분 🤔 8쓰레드, 16쓰레드라면 일을 처리하는 부분이 한개가 아님에도 버벅거리는 이유가 무엇인가? 예를 들어서 4코어라면 최소한 8개의 쓰레드가 존재 즉, 컴퓨터의 일하는 부분이 최소 8개 = 여러 개가 존재한다. 그럼에도 불구하고 한 개의 쓰레드만 일을 하도록 시켰기 때문에 일을 할 수 있는 부분이 여러 개 있음에도 불구하고 한 개의 쓰레드만 일을 하고 있고, 하필 또 그 쓰레드가 제일 일이 어려운(빡센?) 화면을 관리하고 있기 때문이다. 🤔 그 전에는 안 그랬는데 왜 특정 일을 할 때만 버벅거리는가? 그 전에는 그만.. [Memo] 메모 앱을 만들어보자. (절정) 난 개발이 아니라 두더지 잡기를 하는걸까? 하나를 잡으면 다른 하나가 튀어나오는 .. 욱겨? 내가 고통받는게 욱겨?! #Scene 1. - 검색 뷰 취소 버튼 눌렀을 때 다시 초기 메모 리스트 화면으로 돌아오시오. 멍청한놈 .. 알아서 돌아올 것이지 ... 내가 매번 갱신해줘야해?! ㄴ 응 ~ 해야 해. ㄴ ㅇㅋ염. 어떤 문제였냐면, 메모 리스트 화면 > 검색 화면 > 검색 후 취소 버튼 > 0개로 초기화 됨요 ㅋ.. 문제가 있다면 일단 break point 찍고 보자. // MARK: - UISearchBar Protocol extension ListViewController: UISearchResultsUpdating { func updateSearchResults(for searchControlle.. [Memo] 메모 앱을 만들어보자. (위기) 위기가 꼭 있어야할까? 첫번째 위기 - 메모 데이터 고정/미고정 구분 메모 데이터에서 고정된 것과 고정되지 않은 것을 어떻게 처리할까? Realm에서 한번에 갖고 온 다음에 로컬에서 나눠서 저장한다. Realm에서 갖고 올 때 filter로 처리해서 갖고 온다. 두 가지 방법 중에서 무엇이 더 좋은? 효율적인? 방법일까? 물론 난 둘다 해봄. 이유는 삽질하느라. 첫번째 방법으로 했을 때는 (Realm에서 한번에 데이터를 갖고 온 다음 로컬에서 나누기) private var tasks: Results! { didSet { totalCount = tasks.count var pinned: [Memo] = [] var unPinned: [Memo] = [] for item in tasks { if item.i.. [Memo] 메모 앱을 만들어보자. (전개) 사실 전개 + 위기 + 절정이 한번에 있음 .. 그럼에도 전개를 써보자. 인생은 단계별로 가야하는 것 .. 초기세팅 제일 설레면서 제일 귀찮은 작업이랄까. 여기서 꼬이면 정말 하기 싫어짐. (이런 내가 개발자를 해도 될까?) 초기세팅은 사실 별거 없고 .. 크게 두가지로 나뉘어지는데 .. (나같은 경우엔) Github 레포지토리 만들고 .. (과제 기간 중이라서 Private인데 .. 북흐러우면 계속 Private으로 할 것임. 그렇다고 지금 Public인 프로젝트가 .. 자랑스럽다 .. ? 는 아니고 ㅋㅋ .. 제 master piece는 WAL 그리고 Dear today뿐.) 그리고 라벨을 만듭니다. 사실 안만들어도 됨. 솝트 습관임. 프로젝트도 만들어요. 이것도 역시 솝트 습관임. *이번에 프로젝트.. [Memo] 메모 앱을 만들어보자. (발단) 28기 뿌클하는 기분이다 .. 아니 그것보다 더 어려운 느낌이다 .. 갑자기 왜 메모 앱을 만들어? 라고 물어본다면 .. 네. 그렇습니다. 2차 과제입니다. (1차는 뭐였는데? 쉿. 조용.) 일단 조건을 보자. 이번 과제는 조건이 조금 많다. (아니 조금 많이) 고려사항 1. 아이폰 용으로 앱 제작 2. 코드 베이스 UI 구현 3. 다크/라이트 모드 대응 4. Realm, Singleton/Repository Pattern, BaseView/BaseViewController, Access Control 사용/고려할 것 5. 기능 세분화 및 공수산정 후 개발 작업 진행 이렇게 있었고 .. 각 화면에 대한 분기처리는 아래와 같다. 최초 팝업 화면 사용자가 최초 앱을 실행할 경우, 팝업 화면(WalkThro.. 소깡이의 URLSession과 친해지기 프로젝트 극 I지만 .. 쟈도 I인 것 같으니 .. 먼저 다가가보겠어요 먼저 로또의 정보를 GET하는 API 연결을 해보자. API 연결하는 것에 순서가 딱 정해져 있는 것은 아니지만 (나는) 보통 아래의 순서로 진행한다. ⬇️ 1. 모델 구조 만들기 2. APIManager 만들기 3. 서버 통신 4. 서버 통신 후 응답 메시지로 UI/레이아웃 갱신 및 분기처리 1. 모델 구조 만들기 https://quicktype.io/ Convert JSON to Swift, C#, TypeScript, Objective-C, Go, Java, C++ and more • quicktype { "people": [ { "name": "Atticus", "high score": 100 }, { "name": "Cleo", "h.. [니카내카] 고민들 출시 프로젝트를 진행하면서 생각하는 고민들 .. 디자인 패턴 MVC .. MVVM .. MVVM-C .. 욕심이 없지는 않지만 기간 내에 구현해야 하니까 .. MVC로 간다.. 무조건 다 나누자. 다 나눠. BaseViewController / BaseView .. 잘 사용하자 !!!! 라이브러리 이건 아직까지 고민중인데 .. 최대한 오픈소스를 덜어내고 싶은 마음 + .. 그럼에도 기간 내에 구현해야하니까 쓸 건 쓰자 .. 라는 마음? 이건 쓰자!! ✔️ SnapKit, Then : 코드베이스 UI 만들 때 사용 ✔️ SwiftGen : 리소스 관리 ✔️ SwiftLint : 컨벤션 관리 이거 두개의 경우, 이번에 좀 제대로 사용해보고 싶어서? SwiftGen의 경우는 29기 비포겟에서 사용했었는데 좋았.. 이전 1 2 3 4 5 6 7 8 ··· 10 다음