kotlin 16

[Android] 도메인(패키지명) 변경에 주의할 점

프로젝트를 진행하다가 도메인 네임을 변경해야할 상황이 생겼다. 프로젝트를 만든지 얼마되지 않았다면 그냥 새로 파서 코드를 옮겨도 되겠지만 이미 상당부분 진행되어서 Refator - Rename 을 눌러서 바꿔주기로 했다. 하지만 작업하는 파일들의 상단에 위치한 만큼 수동으로 손 봐줘야 할 일이 생겼다. 모든 항목을 다 바꿔주지 않았을까 하는 안일한 생각을 했다가 'No matching client found for package name ~ ' 같은 에러나 패키지명이 업데이트 되지 않은 파일들에 대해 'can not find symbols' 같은 에러를 만나게 되었다. 패키지명 바꾸는 방법 Android Studio 좌측 'Project' 탭을 클릭하고 패키지를 클릭후 위 사진에서 module_basic..

[Kotlin/프로그래머스] 콜라츠 추측

요즘 코틀린의 문법에 빠르게 익숙해지기 위해 프로그래머스 Level 1 부터 문제를 풀어보고 있다. 알고리즘 풀다가 자주 마주하는 Int 오버플로우 문제가 나와서 실수하지 않기 위해서 글을 작성한다. 문제 소개 정수가 하나 주어지면 아래와 같은 과정을 거쳐서 1이되는데 몇번이나 그 과정을 거쳐야하는지 반환하는 문제이다. ( 자세한 문제 내용은 아래 링크에서 확인 ) 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 ..

[Kotlin] Pair , Triple 과 Destructure

Pair 와 Triple 은 코틀린에서 미리 만들어놓은 data class 이다. 둘 다 Tuples 파일에 정의되어있다. 즉 이것도 클래스임을 다시 생각하며 아래를 보자 - Pair 만들기 ( to 키워드, List.partition() ) to 키워드로 Pair 를 만드는 방법은 간단하다. 변수 사이에 to 를 넣으면 된다. val equipment = "fish net" to "catching fish" println("${equipment.first} used for ${equipment.second}") 요소끼리 타입이 같지 않아도 된다! 위 코드에서 equipment 의 타입은 Pair 이다. 안의 타입을 바꾸면 타입도 다르게 할 수 있을 것이다. 즉 아래와 같이 작성이 가능하다. fun ma..

Kotlin 2021.08.05

[Kotlin] 접근제어자 ( visibility modifiers )

- default 접근제어자 public 코틀린의 모든 default 접근제어자는 public 이다. 그래서 따로 접근제어자를 지정해주지 않는다면 class, methods, properties, member variables 등에 모두 접근이 가능하다. - 접근제어자가 붙을 수 있는 키워드들 classes, objects, interfaces, constructors, functions, properties, 그리고 그들의 setters 에 -public 클래스 밖에서도 접근할 수 있다. 위에서 언급한 것처럼 따로 지정해주지 않으면 default 로 public 이 적용된다. - internal 모듈 내에서만 접근이 가능하게 하는 접근제어자이다. 여기서 모듈이란 함께 컴파일되는 코틀린 파일들의 집합을 ..

Kotlin 2021.08.04

[Kotlin] Class (constructor, getter/setter, companion object) 기초

간략한 소개 class classs 는 object 의 청사진이다. 붕어빵틀과 붕어빵 개념? 일 것 같다. codelabs 에서는 Objects are instances of classes 라고 한다. 참고. interface Interface 는 다른 Class 가 구현해야하는 함수에 대한 specification 이다. codelabs 에서는 어항 클래스가 있고 청소 인터페이스가 있다고 했을 때, 청소는 어항말고도 가전제품, 집, 사무실 등 여러 다른 클래스에서도 쓰일 수 있기 때문에 청소를 인터페이스로 빼고 어항 클래스에서 청소 인터페이스를 구현하는 예시를 들어주었다. - 생성자 - 생성자를 클래스 옆에 constructor() 안에 함수 parameter 처럼 쓸 수 있다. ( 그래서 defaul..

Kotlin 2021.08.04

[Kotlin] 코틀린 입문 - 기본 문법

[Hello Kotlin!] 2016년에 Jet Brains사에서 만든 언어 자바를 보완하기 만들어져서 자바가 동작하는 환경에서는 100% 호환 2017에 안드로이드개발의 공식언어로 지정됨 (구글이 지원하겠다는 의미, sdk나 예시코드를 코틀린으로 하는 등..) Jet Brains에서 만든 IDE가 Inteli-J, Inteli-J를 기반으로 만들어진 Android Studio 에서 사용할 수 있다. [기본 변수 선언] var, val var은 변수, 두번이상 값을 할당 가능 val은 상수, 선언과 동시에만 값을 할당 가능 lateinit 코틀린은 null-safe타입으로 변수 만들면 초기화를 꼭 해줘야한다. val로 선언을 했을 때 초기값이 없으면 초기화가 안돼서 lateinit이라는 개념이 등장한다...

Kotlin 2021.07.16