목록전체보기 (69)
슈프림 블로그
앱을 만들다보면 로컬 작업만으로도 충분한 경우도 있지만, 웹서버와 통신이 필요한 경우가 대부분이다. 웹서버 통신은 크게 2종류로 나눌 수 있다. HTTP 통신 : URL 기반으로 클라이언트에서 요청을 보내고, 서버로부터 응답을 받는 형태의 통신 웹소켓 통신 : 클라이언트와 서버가 특정 Port를 통해 연결되어있는 양방향 형태의 통신. 실시간 통신에 주로 사용된다. 오늘은 iOS 앱에서 HTTP/HTTPS 통신 하는 법을 살펴볼 예정이다. developer.apple.com/documentation/foundation/urlsession Apple Developer Documentation developer.apple.com URLSession URLSession은 HTTP / HTTPS 기반의 URL로부..
지금까지 문서 기반으로 포트폴리오를 만들다가, 좀더 직관적이고 깔끔한 포트폴리오를 만들고 싶어서 노션으로 만들어보았다. 확실히 웹 기반으로 만들면 웹사이트나 깃허브 링크를 자유롭게 걸수도 있어서 좋았다. 노션은 사진이나 pdf 등 다양한 데이터 파일을 쉽게 올릴 수도 있고, 템플릿을 만들어 활용할 수도 있다. 모바일 앱 개발만 해왔기 때문에 웹개발은 약한,, 나같은 개발자에게 포트폴리오를 만들때 노션을 추천한다! 아직 수정중이지만 꾸준히 업데이트 할 예정이다 😊 www.notion.so/tngusmiso/fd824605fe6045d6928369a7d8cadcd4 안녕하세요, 임수현입니다! 👋 Mobile App Developer www.notion.so [상업적 이용을 절대 금지합니다] +) 몇몇분들이 ..
DispatchQueue(GCD)의 종류 1. main queue : Serial 2. global queue : Concurrent / QoS 설정 3. private queue : 디폴트 Serial (Concurrent로 변경 가능) / QoS 추론 Main Queue DispatchQueue.main - 한개만 존재 => Main Thread에서 동작 - Serial (직렬) - UI 처리를 담당 * 쓰레드 없이 날것의 코드를 실행하는 것은 Main Queue에서 sync로 실행하겠다는 것과 같은 의미이다. * 하지만 DispatchQueue.main.sync는 코드로 사용할 수 없다. (에러) 실행방법 DispatchQueue.main.sync { ... } // 사용 불가! --ERROR-- ..
동기(Sync) vs 비동기(Async) 대기열을 어떤 방식으로 처리할지 정하는 것이다. 비동기 메인스레드에서 다른 스레드에게 작업을 시작 시키고 작업이 끝날때까지 기다리지 않는다. 메인스레드가 바로 다른 작업을 시작할 수 있게 된다. DispatchQueue.global().async {...} 동기 메인스레드에서 다른 스레드에게 작업을 시키고, 끝날때까지 기다린다. 해당 작업이 끝날 때 까지 메인 스레드는 다른 작업 하지 않고 Block상태를 유지한다. 영상 싱크가 맞는다?? 영상 로딩이 될 때 까지 음성도 기다렸다가 시점이 맞아야 비로소 재생됨을 떠올리면 좋을 것이다. DispatchQueue.global().sync {...} + 다른 스레드로 작업을 보내는 개념이긴 하지만, 작업 끝날 때 까지 ..
쓰레드 Thread 동시성 프로그래밍에 대해 공부하기 전에 쓰레드(Thread)에 대해 먼저 알아야 한다. 쓰레드는 간단하게 말하면 "프로그램이 처리해야 할 작업을 하는 녀석"들을 말한다. 쓰레드가 여러개가 있으면 여러 작업을 동시에 처리할 수 있게 된다. 따라서 시간이 오래 걸리는 작업이 여러개 있을 때, 쓰레드 하나에 모든 일을 맡기는 것 보다는 여러개의 쓰레드에 분산 처리를 시키는 것이 효율적이다. 그렇다면 작업을 어떻게 다른 쓰레드로 분산시켜 동시에 실행되도록 할까? 이것이 동시성 프로그래밍의 목적이다. iOS의 동시성 프로그래밍 iOS의 경우, 프로그래머가 직접 스레드를 관리하지 않는다. 작업을 "대기행렬"에 넣어주기만 하면, 적절한 스레드로 분산을 시키는 것은 OS가 알아서 처리해준다! 이렇게..
▼▼▼Apple 공식 문서 | String ▼▼▼ developer.apple.com/documentation/swift/string Apple Developer Documentation Structure String | A Unicode string value that is a collection of characters. developer.apple.com Swift는 문자열 다루기가 까다롭기로 악명높다.. 실제로 나도 Swift로 코딩테스트를 여러번 치뤄오면서 문자열 문제 때문에 다른 언어로 갈아탈까 수백번은 고민한 것 같다. 하지만 이번 기회에 잘 정리해서 능숙하게 사용할 수 있도록 공부해 두면 해결될 문제라고 생각한다! 기본 속성들 큰따옴표 3개로 묶으면 여러 줄의 문자열을 그대로 사용할 수 있..
만들고 싶은 앱이 생겨서 배경지식을 공부해보려고 한다. 기본적으로 필요한 지식은 백그라운드 음악 재생과 얼굴 인식이다. 얼굴 인식은 영상에 등장하는 사람의 눈, 코, 입의 위치를 감지할 수 있는 수준으로 개발하고자 한다. dlib이라는 C++ 머신러닝 모듈을 사용해보려고 한다. iOS Development Tutorial: How to Build a Music Player App (Audio & Background Play) www.youtube.com/watch?v=XR_rTofgcxU Getting started with dlib on iOS medium.com/@prabhu_irl/getting-started-with-dlib-on-ios-5e66d77380d Getting started with ..
▼▼▼ 지난 포스팅 [Swift] Array 관련 함수들 1 ▼▼▼ tngusmiso.tistory.com/42 [Swift] Array 관련 함수들 Array는 여러 데이터를 한번에 묶어서 처리할 때 편리한 데이터 유형이다. tngusmiso.tistory.com 지난 포스팅에서는 배열의 선언과 초기화, 삽입, 삭제, 수정, 값 접근 등 기본적인 메소드와 속성에 대해 다루었다. 이번에는 미처 다 다루지 못했던 함수들과 속성들에 대해 공부하고, 지금까지의 내용을 총 정리 해보자! 배열 뒤집기 기존 배열의 순서를 거꾸로 뒤집는 방법으로는 reverse()를 사용하면 된다. 시간 복잡도는 O(n) 이다. var array = [1,3,5,2,4,6] array.reverse() print(array) // ..