본문 바로가기

분류 전체보기

(53)
DispatchQueue 이 글은 공부한 내용을 정리하는 글이오니 건전한 비판은 환영합니다. 비동기 https://luca-os.tistory.com/55 프로세스와 쓰레드 이 글은 공부하는 내용을 정리하는 목적으로 작성하는 글이오니, 건전한 비판은 언제든 환영합니다. 프로세스와 쓰레드를 정확히 알아야 하는 이유? 먼저 RxSwift를 공부하기 위해 RxSwift는 비동기 luca-os.tistory.com 비동기와 쓰레드에 관한 내용은 위에 글에 있으니 참고 부탁드립니다. 먼저 쓰레드에 관해서 간단히 이야기 하자면, 하나의 공간에 두명의 작업자가 두개의 작업을 하는 것입니다. 메인 쓰레드와 global 쓰레드 스토리 보드에서 두개의 라벨이 있고 3개의 버튼이 있습니다. 버튼은 차례대로 action함수로 선언하였고, 2개의 라벨..
프로세스와 쓰레드 이 글은 공부하는 내용을 정리하는 목적으로 작성하는 글이오니, 건전한 비판은 언제든 환영합니다. 프로세스와 쓰레드를 정확히 알아야 하는 이유? 먼저 RxSwift를 공부하기 위해 RxSwift는 비동기를 지원하는 라이브러리이다. 근데 왜 비동기를 무조건적으로 해야할까?에 대한 물음이 먼저였다. 회사에서도 개발자가 나 혼자다 보니, 그런 것을 생각하기 보다는 단순히 비동기는 여러작업을 같이 하는 것이다.라는 정의만 내렸고, 깊이 생각하지는 않았다. 코어 왜 먼저 코어와 쓰레드를 이야기 하냐면, 먼저 컴퓨터의 역사를 알고 개념이 더욱 명확해 질 것이기 때문에 먼저 적는다. 요즘 들어보면 4코어 8쓰레드, 8코어 16쓰레드라고 컴퓨터를 사기 전에 보는 글일 것이다. 예전에는 단일 CPU가 모든 작업을 시분할 ..
기본정렬 이 글은 공부한 내용을 기반으로 정리하는 글이오니 건저한 비판은 언제든 환영합니다. 기본적으로 기본정렬은 선택정렬, 삽입정렬, 버블정렬 이렇게 3가지라고 생각합니다. 그렇다면 정렬은 무엇일까요? 정렬이란? 제가 생각하는 정렬이라고 생각하는 정의는 기준점을 잡고 차례대로 순서를 나열하는 것이라고 생각합니다. 예를 들면 오름차순으로 정렬한다는 것은, 숫자로 설명을 하면 1,2,3,4,5........ 식으로 낮은 숫자부터 높은 숫자로 나열하는 것 입니다. 이렇듯이 기준을 잡고 나열 하는 것을 정렬이라고 생각합니다. 선택정렬이란? 먼저 선택정렬에 대해서 설명을 하겠습니다. 선택정렬이라고 하는 것은 '|'앞은 정렬이 완료가 된 것 입니다. 이게 무슨 이야기냐면, 이제 설명 드리겠습니다. 저는 오름차순으로 숫자를..
CocoaPods 에러 Cannot find 'Auth' in scope CocoaPods에서 pod 'Firebase/Auth' 설치를 한다고 해도, 자꾸 Auth를 친다고 위에 에러가 발생을 하여서 계속 몇 시간 에러찾는데 시간을 보냈다. 찾은 해결 방안을 찾았다 https://codecrew.codewithchris.com/t/cannot-find-firestore-in-scope/17275/3 Cannot find 'Firestore' in scope Hi Chris, I have installed the Firebase via cocoapods. Pod version is: 1.11.2 XCode version is: 13.2.1 OS: MacOS Monterey 12.1 Pods installed: Firebase/Analytics, Firebase/Auth & F..
UINavigationController 이 글은 공부하는 내용을 정리하는 목적으로 적는 글이오니 언제든 건전한 비판은 환영합니다. 먼저 Apple에 있는 공식 문서를 가져왔다. https://developer.apple.com/documentation/uikit/uinavigationcontroller Apple Developer Documentation developer.apple.com 먼저 OverView를 보면 A container view controller that defines a stack-based scheme for navigating hierarchical content. 계층적 콘텐츠를 탐색하기 위한 스택 기반 체계를 정의하는 컨테이너 뷰 컨트롤러. 이게 무슨 이야기면? 애플 문서에서 일부분만 설명된 것을 가져오면 내비게..
Closure (클로저) 이 글은 공부하는 내용을 기반으로 정리하기 위한 목적으로 작성합니다. 언제든 건전한 비판은 환영합니다. 클로저란? 클로저는 함수를 말하는 것이다. 무슨 소리냐면 func 도 함수라고 이야기 할 수 있다. 근데 왜 클로져에 함수라는 이야기가 나오는지???? 먼저 클로져를 알기 전에 2가지 클로져가 있다 named closure, unnamed closure 두 개가 있다. 그렇다면 named closure와 un 먼저 named closure는 그냥 함수이다 func someThing(){ print("someThing") } 위에 것이 named closure이다. 그냥 이것을 함수라고 부른다 unnamed closure는 let someThing = {print("some")} 위에 것이 흔히 클로져라..
UserDefaults 및 싱글톤 UserDefaults란 무엇인가? 간단히 표현하면 핸드폰 내에 있는 저장소 입니다. 예를 들면 XCODE에서 시뮬레이션을 실행시키고 다시 실행시켰을 때 저장이 안되고 코드로 작성했던 것만 나오지 않나요? 예를 들면 array에다가 3개의 숫자를 넣어놓고 시뮬레이션 상에서 추가 했을 때 화면이 나왔는데 다시 시뮬레이션을 켜보니 다시 초기화 되는 모습들이요. 위에 그림같이 추가하였을 때 생겨나지만 다시 시뮬레이션을 가동시키면 안되는것등. 그리고 사용자 기본설정과 같은 단일데이터에 적합하며 또는 대량의 유사한 데이터를 저장하는 경우에 사용하는 것이 좋습니다. 타입 클래스는 float, double, integer, boolean등과 NSData, NSString, NSNumber, NSDate, NSArra..
다크모드와 벡터 작업 이 글은 공부하는 것을 정리하는 목적으로 쓰는 글 입니다. 언제든지 건전한 비판은 환영합니다~~ 다크 모드에 따른 색상 변경 사용자의 배경 화면에 따라 색상이나 사진은 다르게 나올 수 있다 예를 들자면 핸드폰의 배경 화면이 사용자에 따라 어두울 수 있고, 밝을 수도 있습니다. 사진과 색상은 바뀌어야 합니다. 그러면 XCODE상에서 어떻게 바꿔야 할까요? Assets 1. 먼저 Assets에 들어간다 2. 마우스 오른쪽을 눌러서 New Color set을 눌러서 생성하여 준다 3. Show the Attribute Inspector를 클릭 후에 맨 밑에 있는 Show Color Panel를 눌러준다. 4. 누르고 난 후에 스포이드로 색상을 골라주거나 선택한다. 5. Appearances 칸에서 Any,Li..
클래스 vs 구조체 차이 클래스와 구조체의 차이 - 클래스는 call by reference 이고, 구조체는 call by value 이다. 이게 무슨 이야기냐면 얼핏 보면은 차이점이 없고 청사진을 만들기 위한 속성과 내용이 있는 것은 다름이 없게 느껴진다. 클래스란? Enemy라는 객체가 있고 클래스는 객체에 대한 주소 값을 저장을 한다. 이것을 코드로 먼저 풀어보자면 import Foundation class Enemy{ var health:Int var attackDamage:Int init(health:Int , attackDamage:Int){ self.health = health self.attackDamage = attackDamage } func move(){ print("Enemy move Forward") } ..
클래스와 상속 클래스란? 클래스는 정의하여 객체를 만들고 생성하여 사용할 수 있습니다. 예를 들면 import Foundation class Enemy{ var health:Int = 100 var attackDamage:Int = 10 func move(){ print("Enemy move Forward") } func attack(){ print("Enemy attack \(attackDamage)") } } 이런식으로 객체로 쓸 수 있게 만들었습니다. 그러면 이 클래스를 개체로 쓰기 위해 하나의 파일을 만들어 보겠습니다. import Foundation var enemy:Enemy = Enemy() //클래스에 있는 함수를 사용한다. enemy.move() enemy.attack() //클래스에 있는 멤버변수의 ..