2022/05 4

[TIL] 22.05.27

공부한 것 Swift 문법 알게된 것 1. Guard Guard 키워드를 사용하면 조건에 false인 경우에는 else 구문이 실행되어 이후의 코드를 실행하지 못하게 한다. continue 와 비슷하다. import Foundation func guardTest(value : Int?) { guard let value = value else {return} print(value) } guardTest(value : 2) guardTest(value : nil) // 아무것도 출력되지 않음 조건문과 유사한 기능이라고 볼 수 있는데 Guard 는 else 를 강제한다. // 일반적인 조건문 if 조건 == true { // 참인 경우에 실행할 코드 } else { // 거짓인 경우에 실행할 코드 } // G..

💻 개발/TIL 2022.05.27

[TIL] 22.05.26

공부한 것 Swift 문법 알게된 것 1. 클래스와 구조체의 차이 1. 공통점 값을 저장할 프로퍼티를 선언할 수 있음 함수적 기능을 하는 메소드를 선언할 수 있음 내부 값을 .를 통해 접근할 수 있음 생성자를 사용해 초기 상태를 설정할 수 있음 Extension 을 사용하여 기능을 확장할 수 있음 Protocol 을 채택하여 기능을 설정할 수 있음 2. 차이점 - 클래스 참조 타입 ARC 로 메모리를 관리 상속 가능 타입 캐스팅 을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있음 deinit 을 사용하여 클래스 인스턴스의 메모리 할당을 해제할 수 있음 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤에 값을 변경시키면 모든 변수에 영향을 줌 (메모리를 복사) - 구조체 값 타입 같은 구조체를 ..

💻 개발/TIL 2022.05.26

[Android] MVVM 패턴 적용기 - 2

GitHub - k906506/MVVM: 🔨 MVVM이 뭐에요? 🔨 MVVM이 뭐에요? Contribute to k906506/MVVM development by creating an account on GitHub. github.com MVVM 두 번째 시간이다. 갑작스럽게 찾아온 이유는 졸프를 진행하다가 RecyclerView 를 Room 을 사용해서 MVVM 패턴 으로 구현했는데 정상적으로 작동하지 않아서 RecyclerView + Room + MVVM 을 정리하고 코드를 다시 보려고 한다. 우선 MVVM 을 구현하기 위해서는 위의 그림을 이해하고 넘어가는 것이 좋다. 그림에서 주의깊게 봐야할 것은 화살표의 방향 이다. 모든 화살표가 단방향으로 연결 되어있고 상위 요소는 하위 요소를 참조한다. 참조..

💻 개발/Android 2022.05.14

[코틀린 완전정복] 공변성, 반공변성, 무변성

가변성 변할 수 있다? 가변성이 뭐에요? 🙄 코틀린 에서의 가변성은 형식 매개변수가 클래스 계층에 영향을 주는 것을 말한다. 예를 들어 형식 A의 값이 필요한 모든 클래스에 형식 B의 값을 넣어도 문제가 없다면 B는 A의 하위 형식이 된다. 아래 코드를 보자. val integer : Int = 1 val number : Number = integer // Number는 상위 자료형, Int는 하위 자료형 Int형으로 선언한 integer 변수가 Number형으로 선언한 number 변수에 할당해도 아무 문제가 없는 것을 볼 수 있다. 이게 바로 가변성이다. 또 다른 예로는 Int?와 Int가 있다. Int?는 null도 포함하므로 Int?가 Int의 상위 자료형이 된다. 가변성의 3가지 유형 기본적으로..

💻 개발/Kotlin 2022.05.02