본문 바로가기

분류 전체보기

(268)
[Swift] DispatchGroup으로 tasks 관리하기 | No6. GCD 안녕하세요. 이번 포스트는 DispatchGroup, CurrentPerform, DispatchPredition에 관한 개념을 정리하려고 합니다. GCD 관련 포스트 개념을 정리했습니다. Concurrency를 할 때 특정 task가 전부 끝날 경우 notification을 받고 싶은 경우가 있습니다. 예를들어 사용자가 로그인을 했을 때 해당 사용자의 정보, 프로필, 친구 관계, 영화, 승차권 등 예매했다면 예매 정보 등등 서버에 저장되어 있는 사용자에 관련된 정보를 전부 가져옵니다. 이때 사용자에 관한 정보들은 concurrency tool을 통해 async하게 받아옵니다. 각각의 task가 끝날 때마다 부분 부분 관련 데이터를 저장하는 곳에 업데이트 하는게 아니라 사용자에 관한 정보를 fetch하는..
[Swift] DispatchWorkItem, barrier와 singleton 개념 정리!! | No5. GCD 안녕하세요. 이번 포스트는 GCD의 개념 중 하나인 DispatchWorkItem, DispatchGroup, DispatchSemaphore에 대한 개념을 정리하려고 합니다. GCD나 concurrency의 개념은 링크에서 개념 정리 했습니다!! GCD 관련 포스트로 개념 정리했습니다. Dispatch queue에 task를 보내는 방법으로 async, sync가 있었습니다. () -> Void 타입의 클로저의 형태를 async의 인자값에 넣음으로 해당 task가 queue에 추가되서 thread에서 실행 됬습니다. DispatchWorkItem도 이와 유사합니다. 추가적으로 많은 기능을 지원합니다. task에 관해 더 많은 설정을 하고 싶을 때 DispatchWorkItem을 사용합니다. enqueu..
[Swift] GCD와 Concurrency. main thread와 dispatch queue global 개념 뿌수기!! | No4. GCD 안녕하세요. Swift의 concurrency. CGD의 개념을 공부했는데 GCD와 dispatchQueue global에 관해 정리하려고 합니다. GCD를 소개하기 전에 concurrency의 기본 개념 Thread, async,sync, dispatchQueue등의 개념을 정리했습니다. 먼저 참고해주시면 감사합니다. GCD 관련 포스트 정리. 이전 포스트의 Thread파트에서 잠깐 소개했지만 Main Thread는 UIResponder 타입인 UIApplication과 Run loop를 통해 user interface를 담당합니다. Main Thread는 단 하나 존재합니다. UI 업데이트, 사용자의 터치, 제스처, event 반응 등 기본적으로 탐지하고 그에 맞는 델리게이트를 main thread에..
[Swift] Hi GCD(GrandCentralDispatch). GCD's concept deep dive!!! | No3. GCD 안녕하세요. Swift의 concurrency를 공부하며 알게 된 개념을 정리하려고 합니다. GCD 관련 포스트 정리. Basic concepts before studying gcd task concurrency vs serial synchronous vs asynchronous Thread Thread pool dispatchQueue GCD's sync, async func Task 수행해야 할 작업들의 추상적인 개념을 의미합니다. ex) closure, block object, function etc... Concurrency 특정한 시간대의 task가 prev task의 작업 완료와 상관없이 곧바로 실행되는 작업을 뜻합니다. 하지만 먼저 시작된다고 먼저 끝난다는 보장은 없습니다. task마다 크기..
[Swift] Apple's concurrency and application design 정리 | No2. GCD 안녕하세요. 애플의 modern concurrency 공부하기 이전에 애플이 thread를 다루는 역사가 궁금해서 앱 디벨로퍼 자료"Concurrency Programming Guide"를 번역 + 정리했습니다. 애플에 관한도 맞는 말이지만 컴퓨터 구조, 운영체제의 내용이 포괄적으로 담겨 있습니다. 사전에 알면 좋을 개념을 소개합니다. 프로그램 : hdd, ssd등 저장장치에 다운 받아진 실행 파일. 사용자의 터치, 마우스 클릭 등 실행되기 전의 상태인 실행파일.(아무것도 발생x, 생명 x) 프로세스: 사용자의 클릭, 터치, 스케줄러 등 (잠자고 있던) 프로그램을 메모리에 적재함으로 프로그램이 실행 중에 있는 상태. 대부분의 프로세스(실행중인 프로그램)은 background에서 실행되고 지속적인 프로세서..
[Swift] Concurrency(동시성), parallelism(병렬성) 개념 탐구하기 | NO1. GCD 안녕하세요. Swift's modern concurrency를 공부하기 이전에 공부한 개념 중 Concurrency와 parallelism에 대해 정리하려고 합니다. 1. what is parallelism 병렬성(parallelism)은 multi core에서 여러 개의 thread를 실행합니다. multi thread가 동시에 실행됩니다. Cpu에 있는 각각의 코어는 한 개 이상의 thread를 포함합니다. 이런 코어가 동시에 실행되는 것을 병렬성이라 합니다. data parallelism, task parallelism으로 구분됩니다. 각 라인을 task로 칭한다면, 특정 time에 core1, core2, core3의 한 개 또는 여러 개의 thread가 실행되면서 task들이 동시에 수행됩니다...
[백준/Swift] 1305: 광고 문제 해석 | PS일지 :] 문제 간단한 문제 요약 전광판에는 같은 내용의 문구가 무한히 반복되어 나온다. 전광판의 크기 L은 전광판에서 한번에 보이는 최대 문자수를 나타낸다. 전광판의 크기가 L이라면 한번에 L개의 문자를 표시 할 수 있다. 광고업자는 길이가 N인 광고문구를 전광판에 붙이려 한다. 근데 돈을 많이 냈기에 N을 무수히 반복해서 전광판의 빈 곳 없이 L만큼의 길이로 채우려고 한다. 문제 풀이, 했갈렸던 점 예를들어 L: 6 N: 4 내가 광고하기 싶은 광고 문구: LOVE 전광판에는 6개의 글자를 넣을 수 있고 문제에서 광고업자는 광고 문구를 무수히 반복해서 L만큼 채워 넣으려고 합니다. 그렇다면 LOVELO 가 광고 문구의 첫 글자로 채워집니다. 문제를 정말 1시간?2시간 봤는데도 문제 이해하기 어려웠어요 ㅠㅠㅠ....
[Algorithm/Swift] 문자열 탐색. KMP 알고리즘 파해치기!! 부분 일치 테이블 pi 채우는 방법 요즘 문자열 알고리즘을 공부하고 있습니다. 문자열 탐색에 많이 사용되는 kmp 알고리즘에 대해서 공부한 개념을 정리하려고 합니다.ctrl + f를 통해 trans라는 단어를 찾아봤습니다. 주어진 text에서 "trans"라는 pattern을 찾았습니다. 문자열 탐색이란 주어진 text에서 특정한 단어 pattern을 찾는 것을 의미합니다. Knuth, Morris, Pratt 세 사람이 만든 KMP 알고리즘이 문자열 탐색에 유명합니다. 그 전에 먼저 문자열 탐색의 가창 기초적인 방법을 설명한 후에 kmp 알고리즘을 통한 문자열 탐색 알고리즘을 소개하려고 합니다. 1. 기본적인 문자열 탐색 방법 Naive string search주어진 문장에서 특정한 문자열을 찾을 수 있는 방법이 뭐가 있을까요? 주어진 ..