코틀린 [Kotlin Docs] 가시성 제어자 코틀린에서 클래스, Object, 인터페이스, 생성자, 함수, 프로퍼티 및 접근자는 모두 가시성 제어자를 가질 수 있다. 코틀린에는 private, protected, internal, public의 4가지 가시성 제어자가 존재한다. 기본 가시성은 public이다. 코틀린의 클래스 멤버(지역 선언이 아닌)는 기본 가시성이 public이다. 코틀린에서는 클래스, Object, 인터페이스와 더불... kotlin docs코틀린kotlinkotlin 안드로이드와 코틀린이란? 프로젝트 구조 알아보기 3. 자바와 100% 호환 가능 Gradle Scripts : 빌드에 필요한 정보 (앱을 만드는데 필요한 옵션, 라이브러리 등) android test : 안드로이드 프레임워크를 가지고 테스트 Gradle : 빌드 프로세스 자동화 툴 ➡ 코드를 작성하고 컴파일, 테스트, 서명 및 배포, apk, bundle 패키징하는 작업까지 모두 이루어져야 앱을 사용할 수 있는데 이 과정을 자동화한 것! ... 코틀린안드로이드안드로이드 [코틀린] 백준 12100번: 2048 - 삼성 SW 역량 테스트 기출 문제 풀이 이 문제는 제한 시간이 5초지만 4방향으로 5번만 움직여 주면 되기 때문에 완전탐색(백트래킹)을 사용하였습니다. 백트래킹 상하좌우로 5번 이동했을 시점에서 최고값을 구해주면 됩니다. 블럭 이동 블럭을 이동하는데 있어서 짚고 넘어가야할 부분이 있습니다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. 예를 들어 다음과 같은 게임 판이 존재한다고 가정해봅시다. 여기서... 삼성기출문제백준코틀린백준 Kotlin을 사용하는 이유 Kotlin은 빌드 되면서 Kotlin 컴파일러를 거쳐 Java 바이트코드를 생성하고, JVM을 통해 기계어로 변환 되는 것을 알 수 있었습니다. Kotlin 컴파일러가 Java 바이트 코드를 생성하기 때문에 다시 Java로 디컴파일이 가능하며, Java와 100% 호환되는 것을 알 수 있습니다. Kotlin은 Java 언어가 처음 설계되었을 때부터 가진 많은 문제점들을 고려해서 언어를 설계... 코틀린코틀린 안드로이드 Retrofit + Coroutines의 API 응답 및 에러 핸들링 - Sandwich Retrofit API 호출은 다양한 exception을 발생시킬 수 있고 (e.g., IOException, HttpException, UnknownHostException), exception은 다른 레이어 계층으로 전파될 수 있기 때문에 레이어 계층 어딘가에서 예외를 반드시 처리해야만 합니다. Retrofit API 응답을 수신 여부에 따라 분류한다면 아래와 같이 크게 두 가지 시나리오... kotlin코틀린안드로이드Coroutines코루틴flowandroidretrofitsandwichCoroutines 2.2 코틀린 기초 / 선택 표현과 처리: enum과 when 코틀린의 when 은 자바의 switch를 대치하되 훨씬 더 강력하고 자주사용한다. 2.3.1 enum 클래스 정의 enum 은 단순 값만 열거하는 존재가 아니라 프로퍼티나 메서드를 정의할 수 있다. 여기서 코틀린 중에서 유일하게 ; 를 사용하는 것을 볼 수 있다. enum 클래스 안에 메서들르 정의하는 경우 반드시 enum 상수 목록과 메서드 정의 사이에 세미콜론을 넣어야한다. 2.3.2 ... 코틀린안드로이드안드로이드 Kotlin | intelliJ - json.jar 적용 Kotlin In Action 으로 코틀린 공부중인데 Json 데이터를 사용할 일이 생겼는데 책에는 다운로드하는게 없어서 찾아봤다. 검색해보는데 확실히 안드로이드 관련 자료가 많은 것 같다😩 json.jar 파일 다운로드 아래 링크에서 Click here if you just want the latest release jar file. 클릭하면 jar파일 다운로드됨 json-특정날짜.jar ... kotlinIntelliJ코틀린json.jar코틀린-스터디IntelliJ 2.1 코틀린 기초 / 기본 요소 : 함수와 변수 모든 언어를 배울 때 국룰인 "Hello World" 출력해봤다. 함수를 선언할 때 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. (변수 선언할 때도 마찬가지) 함수를 최상위 수준에 정의할 수 있다. 자바와 달리 꼭 클래스 안에 함수를 넣을 필요 X 끝에 ; 를 안 붙여도 된다 2.1.2 함수 함수 이름 : max 파라미터 목록 : (a: Int, b:Int) 함... 안드로이드코틀린안드로이드 2.2 코틀린의 기초 / 클래스와 프로퍼티 자바와 코틀린 코드 비교 자바 코틀린 확실히 코틀린이 코드 길이가 간결하다. 2.2.1 프로퍼티 클래스 개념 목적 : 데이터를 캡슐화하고 캡슐화한 데이터를 다루는 코드를 한 주체 아래 가두는 것. 위의 name 부분은 읽기 전용 프로퍼티로, 코틀린은 (비공개) 필드와 필드를 읽는 단순한 (공개) 게터를 만들어낸다. 아래의 isMarried 부분은 쓸 수 있는 프로퍼티로, 코틀린은 (비공개) ... 안드로이드코틀린안드로이드 [Android] viewLifeCycleOwner 프래그먼트에서 LiveData를 위해서 관찰자를 두거나, Flow를 위해 lifecycleScope가 필요할 때 viewLifeCycleOwner가 심심찮게 보이곤 합니다. 위 코드에서 viewLifecycleOwner를 지우고 실행시켜도 물론 잘 돌아갑니다. 그렇지만 왜 사용하는 것일까요? 1. 프래그먼트의 생명 주기 이 글을 읽는 모든 분들이 잘 아시겠지만, 프래그먼트의 생명주기는 onA... jetpackkotlin안드로이드android코틀린android [안드로이드]이벤트 처리 결과로 UI 변경하기 ViewModel에서 인증결과 및 여부를 LiveData를 통해 Activity가 UI를 바꾸도록 하면 된다. LiveData를 보고 있다가 UI 업데이트를 하는 거니까 메인스레드를 쓸 건데, 그러면 MutableLiveData 값 업데이트는 어떤 방식을 써야 괜찮을까..쓸데없이 디테일한가 싶기도 하지만 고민해보았다. MutipleLiveData의 값을 바꿀 때 setValue(), post... MVVMPresentation Layer뷰모델android안드로이드kotlinEvent WrapperLiveDataViewModelObserver패턴UI 업데이트코틀린lifecycleEvent Wrapper 제네릭과 타입 불변성 제네릭은 우리가 코드를 재사용함에 있어서, 타입 안정성을 저하시키는 경우에 대한 방지책으로 나온 것이라고 한다..(예를 들어 파라미터로 값을 Any [자바에서는 Object]로 받는 경우 → 타입 안정성을 저하시킴) 따라서 제네릭을 사용하면 여러 데이터타입을 사용할 수 있는 코드를 작성할 수 있다. 우선 Fruit 클래스와 이를 각각 상속 받는 Banana, Orange 클래스를 만들어 보자... 제네릭타입 불변성코틀린제네릭 코틀린의 제네릭과 가변성에 대해 이전 포스팅에서 제네릭에 대해 글을 쓰던중 공변성이라는 개념이 나왔다. 예를 들어 형식 A의 값을 필요로하는 모든 클래스에 형식 B의 값을 넣어도 아무 문제가 없다면 B는 A의 하위 형식이다. 예를 들어 Int 클래스는 Number클래스에서 상속 받았고, Number 클래스 변수에 Int의 인스턴스를 넣어줄 수 있다. 그렇다면 Int는 Number의 하위 형식이다. 가변성에는 공변성(Cova... 반공변성코틀린 제네릭제네릭무변성공변성코틀린공변성 코틀린) 코틀린 기본 3 Lambda식은 이름이 없어도 함수 역할을 하는 익명 함수의 하나의 형태로, 화살표 표기법을 사용한다. Lambda식은 함수에서 파라미터나 리턴값이 될 수 있다. 이를 생략하고 argumentList 뒤에 inputType을 작성할 수 있다. input은 여러개일 수 있으므로 inputType에는 항상 괄호를 써야하지만, output은 항상 하나이므로 괄호를 생략해도 된다. 안드로이드 프로그... 코틀린kotlinkotlin 2장. 코틀린 기초 함수를 최상위 수준에 정의 가능/ 자바와 달리, 꼭 클래스 안에 함수를 넣을 필요가 없다. 배열도 일반적인 클래스, 코틀린에는 자바와 달리 배열 처리를 위한 문법이 따로 없다. 식(expression)은 값을 만들어 내며 다른 식의 하위 요소로 계산에 참여할 수 있다. 반환 타입을 생략할 수 있는 이유 (식이 본문인 함수의 반환 타입만 생략 가능) 코틀린은 자바와 마찬가지로 변수 이름에 한글... 코틀린kotlinkotlin Android Basics in Kotlin - Unit 1: Kotlin basics -1 코딩 경험이 없는 사람도 진행에 무리가 없는 과정이라 대부분 쉽게 넘어갈 수 있었다. 4개의 step으로 구성되어 있다. 1. Welcome to Android Basics in Kotlin 안드로이드는 전 세계에 25억대가 넘는 기기가 있다. 진행에 있어 IDE는 안드로이드 스튜디오를 사용하며 2. Build your first Android app in Kotlin 해당 step에서는 앞... 공식문서android안드로이드kotlin코틀린android Clean Code With Kotlin 1 하지만 어떻게 클린 코드를 적을까? 여기 적용 시킬 몇 개의 규칙이 있다. 우리가 패키지, 클래스, 함수, 변수들을 만들 때 코드를 작성한다. 그리고 그들은 이름들을 갖고 있고 우리는 이 컴포넌트의 의도를 표현하는 이름을 골라야 한다. 우리가 가독성 있는 코드를 짜려고 찾아보면 3개의 질문을 하라고 한다. 2) "if-null" checks를 피하고 evils(?:)와 throw를 같이 사용... 클린코드코틀린kotlinkotlin
[Kotlin Docs] 가시성 제어자 코틀린에서 클래스, Object, 인터페이스, 생성자, 함수, 프로퍼티 및 접근자는 모두 가시성 제어자를 가질 수 있다. 코틀린에는 private, protected, internal, public의 4가지 가시성 제어자가 존재한다. 기본 가시성은 public이다. 코틀린의 클래스 멤버(지역 선언이 아닌)는 기본 가시성이 public이다. 코틀린에서는 클래스, Object, 인터페이스와 더불... kotlin docs코틀린kotlinkotlin 안드로이드와 코틀린이란? 프로젝트 구조 알아보기 3. 자바와 100% 호환 가능 Gradle Scripts : 빌드에 필요한 정보 (앱을 만드는데 필요한 옵션, 라이브러리 등) android test : 안드로이드 프레임워크를 가지고 테스트 Gradle : 빌드 프로세스 자동화 툴 ➡ 코드를 작성하고 컴파일, 테스트, 서명 및 배포, apk, bundle 패키징하는 작업까지 모두 이루어져야 앱을 사용할 수 있는데 이 과정을 자동화한 것! ... 코틀린안드로이드안드로이드 [코틀린] 백준 12100번: 2048 - 삼성 SW 역량 테스트 기출 문제 풀이 이 문제는 제한 시간이 5초지만 4방향으로 5번만 움직여 주면 되기 때문에 완전탐색(백트래킹)을 사용하였습니다. 백트래킹 상하좌우로 5번 이동했을 시점에서 최고값을 구해주면 됩니다. 블럭 이동 블럭을 이동하는데 있어서 짚고 넘어가야할 부분이 있습니다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. 예를 들어 다음과 같은 게임 판이 존재한다고 가정해봅시다. 여기서... 삼성기출문제백준코틀린백준 Kotlin을 사용하는 이유 Kotlin은 빌드 되면서 Kotlin 컴파일러를 거쳐 Java 바이트코드를 생성하고, JVM을 통해 기계어로 변환 되는 것을 알 수 있었습니다. Kotlin 컴파일러가 Java 바이트 코드를 생성하기 때문에 다시 Java로 디컴파일이 가능하며, Java와 100% 호환되는 것을 알 수 있습니다. Kotlin은 Java 언어가 처음 설계되었을 때부터 가진 많은 문제점들을 고려해서 언어를 설계... 코틀린코틀린 안드로이드 Retrofit + Coroutines의 API 응답 및 에러 핸들링 - Sandwich Retrofit API 호출은 다양한 exception을 발생시킬 수 있고 (e.g., IOException, HttpException, UnknownHostException), exception은 다른 레이어 계층으로 전파될 수 있기 때문에 레이어 계층 어딘가에서 예외를 반드시 처리해야만 합니다. Retrofit API 응답을 수신 여부에 따라 분류한다면 아래와 같이 크게 두 가지 시나리오... kotlin코틀린안드로이드Coroutines코루틴flowandroidretrofitsandwichCoroutines 2.2 코틀린 기초 / 선택 표현과 처리: enum과 when 코틀린의 when 은 자바의 switch를 대치하되 훨씬 더 강력하고 자주사용한다. 2.3.1 enum 클래스 정의 enum 은 단순 값만 열거하는 존재가 아니라 프로퍼티나 메서드를 정의할 수 있다. 여기서 코틀린 중에서 유일하게 ; 를 사용하는 것을 볼 수 있다. enum 클래스 안에 메서들르 정의하는 경우 반드시 enum 상수 목록과 메서드 정의 사이에 세미콜론을 넣어야한다. 2.3.2 ... 코틀린안드로이드안드로이드 Kotlin | intelliJ - json.jar 적용 Kotlin In Action 으로 코틀린 공부중인데 Json 데이터를 사용할 일이 생겼는데 책에는 다운로드하는게 없어서 찾아봤다. 검색해보는데 확실히 안드로이드 관련 자료가 많은 것 같다😩 json.jar 파일 다운로드 아래 링크에서 Click here if you just want the latest release jar file. 클릭하면 jar파일 다운로드됨 json-특정날짜.jar ... kotlinIntelliJ코틀린json.jar코틀린-스터디IntelliJ 2.1 코틀린 기초 / 기본 요소 : 함수와 변수 모든 언어를 배울 때 국룰인 "Hello World" 출력해봤다. 함수를 선언할 때 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. (변수 선언할 때도 마찬가지) 함수를 최상위 수준에 정의할 수 있다. 자바와 달리 꼭 클래스 안에 함수를 넣을 필요 X 끝에 ; 를 안 붙여도 된다 2.1.2 함수 함수 이름 : max 파라미터 목록 : (a: Int, b:Int) 함... 안드로이드코틀린안드로이드 2.2 코틀린의 기초 / 클래스와 프로퍼티 자바와 코틀린 코드 비교 자바 코틀린 확실히 코틀린이 코드 길이가 간결하다. 2.2.1 프로퍼티 클래스 개념 목적 : 데이터를 캡슐화하고 캡슐화한 데이터를 다루는 코드를 한 주체 아래 가두는 것. 위의 name 부분은 읽기 전용 프로퍼티로, 코틀린은 (비공개) 필드와 필드를 읽는 단순한 (공개) 게터를 만들어낸다. 아래의 isMarried 부분은 쓸 수 있는 프로퍼티로, 코틀린은 (비공개) ... 안드로이드코틀린안드로이드 [Android] viewLifeCycleOwner 프래그먼트에서 LiveData를 위해서 관찰자를 두거나, Flow를 위해 lifecycleScope가 필요할 때 viewLifeCycleOwner가 심심찮게 보이곤 합니다. 위 코드에서 viewLifecycleOwner를 지우고 실행시켜도 물론 잘 돌아갑니다. 그렇지만 왜 사용하는 것일까요? 1. 프래그먼트의 생명 주기 이 글을 읽는 모든 분들이 잘 아시겠지만, 프래그먼트의 생명주기는 onA... jetpackkotlin안드로이드android코틀린android [안드로이드]이벤트 처리 결과로 UI 변경하기 ViewModel에서 인증결과 및 여부를 LiveData를 통해 Activity가 UI를 바꾸도록 하면 된다. LiveData를 보고 있다가 UI 업데이트를 하는 거니까 메인스레드를 쓸 건데, 그러면 MutableLiveData 값 업데이트는 어떤 방식을 써야 괜찮을까..쓸데없이 디테일한가 싶기도 하지만 고민해보았다. MutipleLiveData의 값을 바꿀 때 setValue(), post... MVVMPresentation Layer뷰모델android안드로이드kotlinEvent WrapperLiveDataViewModelObserver패턴UI 업데이트코틀린lifecycleEvent Wrapper 제네릭과 타입 불변성 제네릭은 우리가 코드를 재사용함에 있어서, 타입 안정성을 저하시키는 경우에 대한 방지책으로 나온 것이라고 한다..(예를 들어 파라미터로 값을 Any [자바에서는 Object]로 받는 경우 → 타입 안정성을 저하시킴) 따라서 제네릭을 사용하면 여러 데이터타입을 사용할 수 있는 코드를 작성할 수 있다. 우선 Fruit 클래스와 이를 각각 상속 받는 Banana, Orange 클래스를 만들어 보자... 제네릭타입 불변성코틀린제네릭 코틀린의 제네릭과 가변성에 대해 이전 포스팅에서 제네릭에 대해 글을 쓰던중 공변성이라는 개념이 나왔다. 예를 들어 형식 A의 값을 필요로하는 모든 클래스에 형식 B의 값을 넣어도 아무 문제가 없다면 B는 A의 하위 형식이다. 예를 들어 Int 클래스는 Number클래스에서 상속 받았고, Number 클래스 변수에 Int의 인스턴스를 넣어줄 수 있다. 그렇다면 Int는 Number의 하위 형식이다. 가변성에는 공변성(Cova... 반공변성코틀린 제네릭제네릭무변성공변성코틀린공변성 코틀린) 코틀린 기본 3 Lambda식은 이름이 없어도 함수 역할을 하는 익명 함수의 하나의 형태로, 화살표 표기법을 사용한다. Lambda식은 함수에서 파라미터나 리턴값이 될 수 있다. 이를 생략하고 argumentList 뒤에 inputType을 작성할 수 있다. input은 여러개일 수 있으므로 inputType에는 항상 괄호를 써야하지만, output은 항상 하나이므로 괄호를 생략해도 된다. 안드로이드 프로그... 코틀린kotlinkotlin 2장. 코틀린 기초 함수를 최상위 수준에 정의 가능/ 자바와 달리, 꼭 클래스 안에 함수를 넣을 필요가 없다. 배열도 일반적인 클래스, 코틀린에는 자바와 달리 배열 처리를 위한 문법이 따로 없다. 식(expression)은 값을 만들어 내며 다른 식의 하위 요소로 계산에 참여할 수 있다. 반환 타입을 생략할 수 있는 이유 (식이 본문인 함수의 반환 타입만 생략 가능) 코틀린은 자바와 마찬가지로 변수 이름에 한글... 코틀린kotlinkotlin Android Basics in Kotlin - Unit 1: Kotlin basics -1 코딩 경험이 없는 사람도 진행에 무리가 없는 과정이라 대부분 쉽게 넘어갈 수 있었다. 4개의 step으로 구성되어 있다. 1. Welcome to Android Basics in Kotlin 안드로이드는 전 세계에 25억대가 넘는 기기가 있다. 진행에 있어 IDE는 안드로이드 스튜디오를 사용하며 2. Build your first Android app in Kotlin 해당 step에서는 앞... 공식문서android안드로이드kotlin코틀린android Clean Code With Kotlin 1 하지만 어떻게 클린 코드를 적을까? 여기 적용 시킬 몇 개의 규칙이 있다. 우리가 패키지, 클래스, 함수, 변수들을 만들 때 코드를 작성한다. 그리고 그들은 이름들을 갖고 있고 우리는 이 컴포넌트의 의도를 표현하는 이름을 골라야 한다. 우리가 가독성 있는 코드를 짜려고 찾아보면 3개의 질문을 하라고 한다. 2) "if-null" checks를 피하고 evils(?:)와 throw를 같이 사용... 클린코드코틀린kotlinkotlin