Android(Kotlin) 261

kotlin object 싱글톤

코틀린에서 object를 공부하다보면 싱글톤이라는 단어를 만나게 됩니다. 객체를 1개만 생성되도록 한다. 라고 적혀있는데, 어떤 의미인지 보면 아래와 같이 코드로 볼 수 있습니다. 그리고 companion object라는 것을 볼 수 있는데 이 부분을 어떻게 사용하냐 하면 companion object를 사용한다면 아래와 같이 해줄 수 있습니다. 싱글톤의 단점은 테스트하기 힘들고, 객체지향 원칙에 어긋납니다.

Android(Kotlin) 2021.10.29

제네릭과 제네릭함수

제네릭부터 한번 보고 가겠습니다. 제네릭을 왜 사용하는지 부터 한번 보면 컴파일시에 타입 체크를 할 수 있다. 타입 캐스팅이 필요없다. 라고 하는데, 코드를 읽을 때 알아서 컴파일러가 타입을 체크해주고, 타입 캐스팅이 필요없다는 부분을 한번 보겠습니다. 코틀린 공식 문서에 대해서 한번 쭉 훑어보면 아래와 같습니다. 그리고 generic function을 알아보면 위와 같이 할 수 있습니다. - 참조 https://junyoung-developer.tistory.com/83 [Kotlin] 제네릭(Generic) 모든 내용은 Do it! 코틀린 프로그래밍을 바탕으로 정리한 것입니다. 제네릭(Generic) : 클래스 내부에서 사용할 자료형을 인스턴스를 생성할 때 확정하는 것 자료형의 객체들을 다루는 메서드..

Android(Kotlin) 2021.10.29

고차함수

고차함수란, 함수를 파라미터로 전달받는 함수나 함수를 리턴하는 함수를 말합니다. 고차함수를 보기 전에 unit을 한번 보고 가겠습니다. java에서 void를 의미한다고 보면 되는데, 자바를 해본적 없으신 분들은 아무 값도 리턴하지 않는다 라는 뜻으로 받아들이시면 됩니다. 아래와 같이 사용할 수 있습니다. 그리고 원래 하려던 고차함수를 실행해보면 f(f(x)) = x와 같은 형태입니다. 간단하게 sum이라는 함수에 람다식을 넣어보겠습니다. 람다식이 아니라면, 아래와 같이 사용해줄 수 있습니다. unit의 경우 아래와 같이 해줄 수 있습니다. -- 참조 https://velog.io/@jewelrykim/Kotlin-%EA%B3%A0%EC%B0%A8%ED%95%A8%EC%88%98%EC%99%80-%EB%..

Android(Kotlin) 2021.10.28

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

solid 설계원칙

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

Android(Kotlin) 2021.10.20