분류 전체보기 1203

kotlin data class

data class 라는 이름에서 볼 수 있듯이 data를 보관하는 클래스입니다. data class가 제공하는 기능을 알아보면 equals() hashCode() copy() toString() 등의 메소드를 자동으로 만들어준다. 라고 나와있습니다. 서버에서 데이터가 넘어온 것을 넣어두는데 어떻게 데이터를 보관하는가에 대해서 보면, 일반 클래스와 차이점에 대해서 보고 가겠습니다. 위와 같이 클래스를 2개 만들어주고, 한번 값을 찍어보겠습니다. 그런데 데이터 클래스를 이용하면 어떻게 되나 보면 위와 같이 나옵니다. 또한 일부 항목만 copy를 통해서 바꿔줄 수 있습니다. -- 참고 https://medium.com/kenneth-android/kotlin-kotlin-data-class-%EC%9D%B4..

Android(Kotlin) 2021.10.23

객체지향의 원칙

객체지향의 원칙에 대해서 한번 살펴보고 가겠습니다. 일단 객체지향이라는 것에 대해서 알아봐야 하는데, 객체지향과 비교할 수 있는 절차지향부터 뭔지 알아봐야 겠습니다. 일단 우리가 밥을 한다고 생각해볼게요 절차지향의 방식대로 한다면 아래의 순서대로 갈 것입니다. 쌀씻기 -> 밥솥에 밥하기 -> 된장 끓이기 -> 국 퍼기 -> 밥상 차리기 -> 완료 그런데 이걸 하다보니, 중간에 된장끓이기 전 고기를 굽거나 하는 일이 발생할 수 있고, 엄마가 밥하는 것을 도와줄 수 있습니다. 그리고 중간에 된장을 빼야 하는 경우도 생기겠죠? 그러다 보니 저 과정들을 관리하기가 어려워졌습니다. 때문에 이 기능들을 개별적으로 아래와 같이 만들어놓고 - 쌀씻기 - 밥솥에 밥하기 - 된장 끓이기 - 국 퍼기 - 밥상 차리 - 완료..

기술 2021.10.20

solid 설계원칙

1. SRP(단일 책임 원칙) 2. OCP(개방 폐쇄 원칙) 3. LSP(리스코프 치환 원칙) 4. ISP(인터페이스 분리 원칙) 5. DIP(의존 역전 원칙) 1. SRP(단일 책임 원칙) 하나의 모듈이 하나의 액터에 대해서만 책임져야 한다. 모듈 - 하나의 소스 파일 액터 - 하나의 사용자 혹은 이해관계자 2. OCP(개방 폐쇄 원칙) 확장에는 열려있고, 변경에는 닫혀 있어야 한다. 그러니깐, 수정하면 의존하고 있던 코드들에 문제가 생기니깐, 변경하지말고 확장하라는 말입니다. 3. LSP(리스코프 치환 원칙) 상위 타입이 하위 타입으로 변경되더라도 문제를 일으키지 말아야 한다. 상속을 통해 만들어진 객체가, 상속을 해주는 부모 클래스의 변경이 있어도 문제가 없어야 한다. 4. ISP(인터페이스 분리 ..

Android(Kotlin) 2021.10.20

Kotlin Any, is, as

자바에서 Object라는 개념이 코틀린에서는 Any가 됩니다. 모든 타입이 상속받는 최상위 타입이라고 할 수 있습니다. (모든 객체의 조상) 아래와 같이 사용해줄 수 있습니다. 위와 같이 아무 타입이나 들어가는 것을 볼 수 있습니다. 그러면, 이 친구가 null도 포함할까? 라고 해서 알아보면 Any? 라고 사용해줘야 합니다. 또한 타입 체크를 하다보면 is라는 친구가 나오는데 아래와 같이 사용해줄 수 있습니다. when을 사용해줄 수도 있습니다. 그런 다음 as라는 것도 어떻게 사용하는지 알아보면 type casting을 해줄 때 사용합니다. - 참조 https://ponyozzang.tistory.com/231 [Kotlin] 코틀린 Any와 Any?는 무엇이 다른가. 차이 설명 및 예제 자바의 최상..

Android(Kotlin) 2021.10.18

const val 과 val 차이

할당시점 val -> 런타임 시점에 할당됩니다 const val -> 컴파일 시점에 할당됩니다. 할당 가능한 타입 val -> 기본 참조 타입 const val -> 문자열과 기본 타입 -- 참조 https://jhdroid.tistory.com/14 [Kotlin] val과 const val의 차이 val 런타임 시 할당 val로 선언한 변수는 코틀린에서 프로퍼티로 get() 함수를 가지는 변수 해당 변수를 직접 변경할 수 없지만 get() 함수의 처리 방식에 따라 의도한 값과 다른 값이 나올 수 있음 jhdroid.tistory.com https://myung6024.tistory.com/144 (Kotlin) const와 val의 차이점 const는 컴파일 시간 상수입니다. 런타임에 수행 할 수있는..

Android(Kotlin) 2021.10.16