-
2022.09.21
[Kotlin] 검사와 자료형 변환
검사와 자료형 변환 코틀린의 자료형 변환 기본형을 사용하지 않고 참조형만 사용 서로 다른 자료형은 변환 과정을 거친 후 비교 val a: Int = 1 // 정수형 변수 a를 선언하고 1을 할당 val b: Double = a // 자료형 불일치 오류 발생 val c: Int = 1.1 // 자료형 불일치 오류 발생 변환 메서드의 이용 val b: Double = a.toDouble() // 변환 메서드 사용 표현식에서 자료형의 자동 변환 val result = 1L + 3 // Long + Int -> 결과는 Long 변환 메서드의 종류 toByte : Byte toLong : Long toShort : Short toFloat : Float toInt : Int toDouble : Double toC..
-
2022.08.28
[Kotlin] 널(Null)
널(Null) 널(Null), 너는 누구니? 코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다는 원칙이 있다. 만약 값이 할당되지 않은 변수를 사용하면 코틀린에서 오류가 발생한다. 한편 값이 없는 상태는 널(Null) 이라고 부른다. 프로그램이 실행되는 도중에 값이 null 인 변수에 접근하려 하면 NPE(NullPointerException) 오류가 발생한다. 변수에 null 할당을 허용하려면 자료형 뒤에 물음표 기호(?)를 명시해야 한다. null을 이용한 변수 검사 코틀린의 변수 선언은 기본적으로 null을 허용하지 않는다. val a: Int = 30 var b: String = "Hello" 다음과 같이 null 가능한 변수들을 선언할 수 있다. val a: Int? = null va..
-
2022.08.27
[Kotlin] 자료형과 변수
자료형과 변수 자료형과 변수 자료형 Int String Float ... 변수 val (Value) : 불변형(Immutable) var (Variable) : 가변형(Mutable) 변수의 선언 val username: String = "Kildong" 선언 키워드 변수 이름 자료형 값 변수 선언 예 val username = "Kildong" // 자료형을 추론하여 String 으로 결정 var username // 자료형을 지정하지 않은 변수는 사용할 수 없음. val init: Int // 사용 전 혹은 생성자 시점에서 init 변수를 초기화 해야 함. val number = 10 // number 변수는 Int 형으로 추론 여기서 주의할 점은, var username 과 같이 자료형을 지정하지 ..
-
2022.08.26
[Kotlin] InteliJ IDEA 살펴보기 & main() 함수
InteliJ IDEA 살펴보기 & main() 함수 IntelliJ IDEA 도구 창의 단축키 도구창 단축키(윈도우) 단축키(맥) Message [Alt] + [0] [Cmd] + [0] Project [Alt] + [1] [Cmd] + [1] Favorites [Alt] + [2] [Cmd] + [2] Run [Alt] + [4] [Cmd] + [4] Debug [Alt] + [5] [Cmd] + [5] TODO [Alt] + [6] [Cmd] + [6] Structure [Alt] + [7] [Cmd] + [7] Terminal [Alt] + [F12] [Option] + [F12] Create a new project Coding main을 타이핑하고 [Tab] 키를 눌러보자. main 함수가 코..
-
2022.08.26
[Kotlin] 자바 JDK 설치하기 / 환경 변수 설정하기
자바 JDK 설치하기 / 환경 변수 설정하기 JDK 설치는 왜? 코틀린을 JVM에서 실행하기 위해 기존 자바와 상호작용할 수 있고, 자바 라이브러리를 이용할 수 있음. Oracle JDK vs. OpenJDK Oracle JDK : 보안 업데이트를 지속적으로 받으려면 '구독' 방식으로 라이선스를 구매해야 함. OpenJDK : 제한 없이 사용 가능하지만, 보안 서비스의 의무가 없어 유지보수가 어려움. Azul의 Julu TCK 인증을 통과한 OpenJDK를 묶어서 배포하는 제 3의 벤더 https://www.azul.com/downloads/ Downloads No matter the size of your company, Azul offers competitive pricing options to fi..
-
2022.08.24
[Kotlin] 코틀린의 개요
코틀린의 개요 Kotlin 탄생 배경 목표 풀 스택 웹 개발, Android와 iOS 앱 그리고 임베디드, IoT 등 모든 개발을 다양한 플랫폼에서 개발할 수 있도록 하는 것 특징 IDE(Android Studio의 모체)로 유명한 JetBrains 에서 개발하고 보급 코드가 간결하고 다재 다능하며 호환성이 높다. 문장 끝에 세미콜론은 옵션이다. Android Studio 에서 안드로이드 공식 언어로 추가 변수는 Nullable(널 값 사용 가능)과 NotNull로 나뉘는데, 변수 선언시 '?'를 붙여 Nullable로 만들 수 있다. 다양한 플랫폼 사용 가능한 플랫폼 Kotlin/JVM : 자바 가상 머신 상에서 동작하는 앱을 만들 수 있다. Kotlin/JS : 자바 스크립트에 의해 브라우저에서 동작..
-
2022.08.21
[Kotlin] 코틀린 한 눈에 알아보기
코틀린(Kotlin) 한 눈에 알아보기 코틀린(Kotlin) IntelliJ IDEA의 개발사 JetBrains에서 2011년에 공개한 오픈 소스 프로그래밍 언어 JVM 기반의 언어이며, Java와 유사하지만 더 간결한 문법과 다양한 기능을 추가하였다. Java와의 상호 운용이 100% 지원된다. JVM 바이트 코드가 기본이지만, Kotlin/Native 컴파일러를 사용하여 기계어로 컴파일할 수 있다. 안드로이드, 스프링 프레임워크, 톰캣, JavaScript, Java EE, HTML5, iOS, 라즈베리 파이 등을 개발할 때 사용할 수 있다. 2017년에 구글이 안드로이드의 공식 언어로 Kotlin을 추가하였다. 이는 오라클과의 Java API 저작권 분쟁의 여파로 보는 시각이 많다. 이름은 JetB..
-
2021.04.05
보일러플레이트(Boilerplate)
보일러플레이트(Boilerplate) 보일러플레이트(Boilerplate)한 코드 반복되어 자주 쓰지만 매번 작성하기 번거롭고 읽기 어려운 많은 양의 코드 코틀린의 목표는 이러한 보일러플레이트한 코드를 제거해서 자주 사용되는 루틴을 간략화하는 것이다. 참고 : Wikipedia
-
2021.03.15
함수에서 다양한 인자의 개수를 전달받기 (vararg 키워드)
함수에서 다양한 인자의 개수를 전달 받기 가변 인자(Variable Argument) 를 사용하여 여러 개의 인자를 받을 수 있음. 가변 인자(Variable Argument) '인자의 개수가 변한다.' 는 뜻 함수는 하나만 정의해 놓고, 여러 개의 인자를 받을 수 있음. 사용 방법 함수를 선언할 때, 매개변수 왼쪽에 vararg라는 키워드를 붙이면 됨. 사용 예 1 2 3 4 5 6 7 8 9 10 11 fun main() { normalVarargs(1, 2, 3, 4) // 4개의 인자값 구성 normalVarargs(4, 5, 6) // 3개의 인자값 구성 } fun normalVarargs(vararg counts: Int) { // vararg 키워드 사용 for (num in counts) ..
-
2021.03.13
프로그램의 메모리 영역
프로그램의 메모리 영역 코드 영역 (Code) 데이터 영역 (Data) 힙 (Heap) ↓ 스택 영역 (Stack)) ↑ 프로그램이 사용되는 메모리 영역 ① 코드(Code) 영역 명령어가 들어가는 영역 ② 데이터(Data) 영역 프로그램이 컴파일되면 정적 변수 나 문자열 등이 들어가는 정적 메모리 영역 정해져 있어서 실행 중에 오류가 발생할 가능성이 적음. JVM 에서는 이 영역을 메서드 정적 영역(Method Static Area) 으로도 부름. ③ 힙(Heap) 영역 실행 중 생성되는 객체 가 만들어지는 동적 메모리 영역 프로그램이 동작하는 도중에 위쪽 그림의 화살표 방향으로 채워짐. (↓) 너무 많이 메모리를 할당하는 객체가 있을 경우 Out of Memory 오류가 발생할 수 있음. 함수 호출이 ..