시작하기 전에... (내 이야기) 처음에 나도 코딩을 처음 했을 때, Git 에 대해 막연한 두려움이 있었던 기억이 있다. 여기저기서 Git 쉽지 않다. 오류가 많다... 이런 소리도 들었고, 터미널로 뭔가를 한다는 것 자체가 어렵고 생소하게 느껴졌다. 그래서 그냥 내 노트북 안에서만 코딩을 했었다. 첫 번째 문제 첫 번째 문제는 내가 아이맥을 사용하면서 발생했다. 아이맥에서도 코딩을 하고싶고, 맥북에서도 코딩을 하고싶은데... 코드를 어떻게 공유할 수 있을까? 그러면 iCloud 폴더를 활용해 보자! 였다. iCloud 폴더는 iCloud 를 통해 여러 기기에서 공유가 되는 폴더니까 이곳에서 공유하면 되겠다!라고 생각했다. 하지만 이것도 문제가 있었다. 내 iCloud 에 저장하는 것이니 당연하게 다른..
분류 전체보기
Xcode 에는 놀랍게도 Thread 의 경쟁 상황을 체크할 수 있는 툴이 있다. 바로 Thread Sanitizer 라는 것인데... 사용방법은 간단하다. 해당 프로젝트에서 Product 메뉴로 들어가면 아래에 Scheme → Edit Scheme 에 들어간다. 혹은 Xcode 중앙 상단에 Edit Scheme 바로 갈수 있는 경로가 있다. Run → Diagnostics 에 가서 Thread Sanitizer 를 선택해 주고 빌드한다. 빌드시간이 오래 걸리니 체크하고 빌드한 후에 다시 체크 해제해주는 것이 좋다. 여기서 실기기 말고 시뮬레이터를 선택해줘야 Thread Sanitizer 를 체크할수 있는 듯 하다. 시뮬레이터에 빌드를 하게 되면 아래와 같이 해당 코드에 Data race 보라색 오류가 ..
지난 시간 지난 시간에는 GCD 의 종류에 이어서 DispatchGroup, DispatchWorkItem, Semaphore 까지 다양한 방법으로 비동기 작업을 할 수 있는 방법에 대해서 알아보았다. 하지만 이러한 비동기 처리를 하게 되면 발생되는 문제들이 있다. 이번 포스팅에서는 문제들을 역시나 간단하게 알아보려고 한다. (심화과정은 제가 더 공부해야 할 것 같아요) [Swift] GCD/Operation 알아보기 3 - DispatchGroup 지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 Dispat swift-library.tistory.com Thread-..
지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 DispatchGroup 이다. 아주아주 간단하게 설명할 것이므로 심화학습은 추후 실제 사용해보면서... [Swift] GCD/Operation 알아보기 2 - GCD 종류 지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아 swift-library.tistory.com DispatchGroup 여러 비동기 작업이 완료될 때까지 대기하거나 완료 되었을때..
글래스모피즘? 아주 간단하게 설명하면 UI 에 반투명 유리효과를 주는 것인데. SwiftUI 로 앱을 개발하다 보면 강제로(?) 만날 수 있다. 예를 들면 위는 NavigationTitle 을 생성하고 위로 스크롤 하면 타이틀 뒤로 가는 뷰는 살짝 흐릿하게 보이는 것을 볼 수 있다. 이것을 구현해 볼 것이다. 제공되는 Material 사용 아래와 같은 Rectangle 을 사용하여 overlay 시키면 간단하게 글래스모피즘을 적용할 수 있다. 종류도 ultraThin 부터 ultraThick 까지 5종류의 Material 을 고를 수 있다. 많은 애플 컴포넌트들이 Material 가 사용됨을 알 수 있다. 예를 들면 Alert 나 예시로 보여준 NavigationTitle 등등... Rectangle()..
지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아보기 1 - 동기, 비동기, 직렬, 동시, 병렬 GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 swift-library.tistory.com 그렇다면 Queue 에는 GCD(Grand Central Dispatch) 와 Operation 두종류가 있는데 먼저 GCD 에 대해서 공부해 보겠다. 그중에서도 GCD 의 종류에 대해..
GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 알아야 하므로 간단하게 동기, 비동기, 직렬, 동시, 병렬에 대해서 간단하게 작성해보려 한다. 간단하게 그림도 그려봤다. (혹시 틀린 부분 있으면 말씀해 주시면 바로 수정하겠습니다!) 동기 (Sync) / 비동기 (Async) 처음에는 동기는 순차적으로 처리하고 비동기는 여러 개 처리하는 거 아닌가? 정도로 알고 있었지만 비슷하지만 다르다. 동기와 비동기의 큰 차이는 작업의 완료와 관련이 있다. 동기 (Synchronous) 작업을 시키고 작업의 완료를 기다린다. 이 때 다른 작업을 실행하지 않는..
프로젝트를 진행하다보면 내 프로젝트는 총 몇줄일까? 궁금할때가 있다. 이럴때 아주 간단한 방법이 있다! 우선 터미널을 열어준다. 나는 보통 해당 폴더에서 이렇게 터미널을 열어준다. 혹은 cd ~/Desktop/DayCounter 같은 식으로 해당 폴더에 들어가준다! 아래와 같은 명령어를 입력해준다. find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l 그렇게 되면 짜잔! 아래와 같이 파일명들과 줄수가 표시되게 된다. 총 717줄이고 몇가지의 파일들은 리팩토링이 필요하겠구나... 생각이 된다.