전체 글 (5) 썸네일형 리스트형 [kotlin/초급] null 가능 타입과 null 처리 연산자 null 가능 타입과 null 처리 연산자 오늘은 null 가능 타입과 null 처리 연산자에 대해 알아보겠습니다. 지난 포스팅에서 코틀린의 변수와 타입에 대해 간단하게 설명했었는데요. 가볍게 읽고 오시면 이번 포스팅을 읽는데 도움이 되실 겁니다. 자바의 타입과 null 가능성 우선 null 가능 타입에 대해 설명하기 전 자바의 타입과 null 초기화에 대해 짚어보고 넘어가겠습니다. 다음과 같은 단순히 2개의 정수를 더하는 자바 코드가 있다고 가정해 보겠습니다. 이 코드를 과연 신뢰할 수 있을까요? public static class Calculator { public static Integer sum(Integer a, Integer b) { return a + b; } } 안타깝게도 그럴 수 없습니다.. [kotlin/초급] 변수 선언과 초기화, val과 var 키워드, 원시 타입 코틀린 변수와 타입 기초 오늘은 코틀린의 변수 선언과 초기화, val, var 키워드와 원시 타입에 대해 알아보겠습니다. 변수 선언과 초기화 여타 언어가 그렇듯 변수를 생성하고 초기화하는 방법은 간단합니다. val a: Int = 10 var b: Int = 10 위와 같이 val 또는 var 키워드 뒤에 ':'로 구분되는 변수 이름과 타입을 쓰고 '='를 사용하여 초기화하고 싶은 값을 대입하면 됩니다. 만약 값을 초기화할 때 대입되는 값을 통해 해당 변수가 어떤 타입인지 추론이 가능하다면 타입을 생략하여 작성할 수 있습니다. val a = 10 // Int var b = 3_000_000_000 // Long 위 예에서 b가 Long 타입인 이유는 코틀린에서 Int의 양의 정수 최대 범위가 2,147,.. [docker/이슈] ENTRYPOINT vs CMD 도커 ENTRYPOINT vs CMD 안녕하세요. 오늘은 도커파일의 명령어인 ENTRYPOINT와 CMD를 비교하는 시간을 갖겠습니다. 개념과 기능 우선 공식 문서의 설명을 일부 보도록하겠습니다. ENTRYPOINT An ENTRYPOINT allows you to configure a container that will run as an executable. CMD The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRY.. [kotlin/초급] 클래스 기초 - 생성자, 프로퍼티, 메소드, 접근 제한자 코틀린 클래스 기초 안녕하세요. 오늘은 코틀린의 클래스 선언과 정의, 생성자, 프로퍼티 그리고 접근 제한자에 대해 알아보겠습니다. 클래스 선언과 정의 코틀린에서 클래스를 선언, 정의 및 객체를 생성하는 방법은 다음과 같습니다. class Apple fun main() { var apple = Apple() } 아마 이 코드를 보시고 "엥? 이렇게 해도 된다고?"라는 생각이 드시면 정상입니다. 코틀린은 클래스가 아무런 프로퍼티와 메소드를 가지지 않는다면 주 생성자와 클래스 몸체인 중괄호를 생략할 수 있기 때문입니다. 객체의 생성은 자바와 달리 new 키워드 없이 함수를 호출하듯 클래스 이름과 소괄호만 사용합니다. 이 예제에서 만든 사과 클래스에 하나씩 원하는 기능을 추가해 보겠습니다. 이 글에서 var 키.. [kotlin/초급] 함수 기초 - 함수 선언과 정의, 매개변수 코틀린 함수 기초 안녕하세요. 오늘은 코틀린의 함수 선언 및 정의, 매개변수 특징과 최상위 함수에 대해 알아보는 시간을 가지도록 하겠습니다. 코틀린으로 프로젝트를 진행하면서 함수를 만들다 보면 자바를 사용하면서 느껴졌던 불편함들을 많이 개선하기 위해 많은 노력을 들였다는 것을 체감할 수 있는데요. 하나씩 짚어보면서 알아보도록 하겠습니다. 함수의 선언과 정의 코틀린은 자바와 달리 함수를 선언하기 위해 fun 키워드를 사용하며 크게 2가지 방식의 함수 정의 방법을 지원합니다. 함수 블록 // 반환값이 존재하는 함수는 반드시 반환 타입 명시. fun sum(a: Int, b: Int, c: Int = 3): Int { return a + b + c } // 반환값이 존재하지 않는 함수는 Unit 타입이며 생략.. 이전 1 다음