fun main(args: Array { println("Hello, World") } 함수를 선언할 때 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 작성한다. 이는 변수를 선언할 때도 마찬가지로 방식으로 타입을 지정한다. 함수를 최상위 수준에 정의할 수 있다. 즉, 클래스 안에 함수를 넣어야할 필요가 없다. 코틀린에서는 자바와 달리 배열 처리를 위한 문법이 따로 존재하지 않는다. 배열도 일반적인 클래스와 마찬가지이다. 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용할 수 있게 감싼 래퍼(wrapper)를 제공한다. 세미콜론(;)을 붙이지 않아도 된다. 함수 함수 선언은 fun 키워드로 시작하고, fun 다음에는 함수 이름이 온다. 아래 max라는 이..
리액티브 프로그래밍 리액티브 프로그래밍(Reactive Programing)은 데이터 또는 이벤트의 변경이 발생하면 이에 반응해 처리하는 프로그램 기법을 말한다. 리액티브 프로그래밍은 비동기 프로그래밍을 처리하는 새로운 접근 방식이며, 2010년 에릭 마이어에 의해 마이크로 소프트 .NET 에코 시스템으로 정의되었다. 데이터의 통지, 완료, 에러에 대한 처리를 옵저버 패턴에 영감을 받아 설계되었고 데이터의 손쉬운 비동기 처리를 위해 함수형 언어의 접근 방식을 사용한다. 리액티브 프로그래밍 이전의 비동기 프로그래밍 리액티브 프로그래밍이 나오기 전 비동기 프로그래밍은 대부분 콜백 기반의 비동기 처리 방식을 사용했다. 간단한 콜백은 이해하기 쉬울 수 있지만, 콜백이 많아져서 발생하는 콜백 헬(Callback ..
동기 프로그래밍 동기(Synchronous)방식의 프로그램에서 작업의 실행 흐름은 순차적으로 동작한다. fun main() { // 실시간 주식 정보를 가져온다. val stock: StockDto = getRealtimeStockData("APPLE") println("주식 심볼 : ${stock.symbol}") println("시가 : ${stock.price.open}") println("종가 : ${stock.price.close}") println("시가총액 : ${stock.price.marketCap}") } 순차적으로 동작하는 프로그램은 코드를 파악하기 쉽고 결과를 예측하기 쉬우므로 디버깅이 쉽다. 특정 작업을 실행하는 동안에는 다른 작업을 할 수 없다는 단점이 존재한다. 비동기 프로그래..
코틀린의 scope function이란, 람다를 사용해서 일시적인 영역을 만들어 코드를 더 간결하게 하거나, method chaning에 활용하는 함수를 말한다. 이번에는 코틀린의 scope function에 대해 알아보자! 1. scope function의 분류 2. 언제 어떤 scope function을 사용해야 할까? scope function의 분류 let과 run은 람다의 결과를 반환하고, also와 apply는 객체 그 자체를 반환한다. 아래 예제코드를 살펴보면서 조금 더 쉽게 이해해보자. val person = Person("김성현", 10) // 반환 : age val let = person.let { it.age } val run = person.run { this.age } // 반환 ..
이번에는 코틀린에서 람다(lambda)를 다루는 방법에 대해 알아보자! 1. 람다(lambda) 2. Closure 람다(lambda) 코틀린의 람다는 자바와는 근본적으로 다른 한 가지가 있다. 바로 코틀린에서는 함수를 변수에 할당하거나, 파라미터로 넘길 수 있다는 것이다. 이는 곧, 함수 그 자체로 값이 될 수 있다는 점이다. fun main() { val hamburgers = listOf( Hamburger("불고기버거", 1_000), Hamburger("치즈버거", 2_000), Hamburger("새우버거", 3_000), Hamburger("빅맥", 4_000), Hamburger("싸이버거", 5_000), ) // 람다를 만드는 방법 1 val isShrimpBurger = fun(ham..
이번에는 코틀린에서 컬렉션을 다루는 방법에 대해 알아보자! 1. List 2. Set 3. Map List List는 순서가 있고, 요소간의 중복을 허용하는 자료구조이다. Java public static void main(String[] args) { final List numbers = Arrays.asList(100, 200); // 요소 하나를 가져온다. Integer integer = numbers.get(0); // foreach for (int number : numbers) { System.out.println(number); } // 전통적인 for문 for (int i = 0; i < numbers.size(); i++) { System.out.printf("%s %s", i, numb..
이번에는 코틀린의 다양한 클래스에 대해 알아보자! 1. Data Class 2. Enum Class 3. Sealed Class, Sealed Interface Data Class DTO(Data Transfer Object)를 통해 알아보겠다. Java package classes; import java.util.Objects; public class PersonJa { private final String name; private final int age; public PersonJa(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() {..
방송통신대학교 기말 시험 준비로 포스팅을 하지 못했는데, 3학년 1학기가 종강된 기념으로 오랜만에 글을 작성한다. 이번 포스팅에서는 코틀린에서 object 키워드를 다루는 방법에 대해서 알아보자! 1. static 함수와 변수 2. 싱글톤 3. 익명 클래스 static 함수와 변수 Java public class PersonJava { private static final int MIN_AGE = 1; public static PersonJava newPerson(String name) { return new PersonJava(name, MIN_AGE); } private String name; private int age; private PersonJava(String name, int age) { ..
접근 제한자는 객체가 공개 되어야 하는 범위를 정해주는 역할을 한다. 이번 포스팅에서는 코틀린에서 접근 제한자를 다루는 방법에 대해서 알아보자! 1. Java와 Kotlin의 가시성 제어 2. Kotlin 파일의 접근 제한자 3. 다양한 구성요소의 접근 제한자 4. Java와 Kotlin을 함께 사용할 경우 주의할 점 Java와 Kotlin의 가시성 제어 우선 자바의 접근 제한자는 아래와 같다. public : 모든 곳에서 접근 가능 protected : 같은 패키지 또는 하위 클래스에서만 접근 가능 default : 같은 패키지에서만 접근 가능 private : 선언된 클래스 내에서만 접근 가능 다음은 코틀린에서의 접근 제한자이다. public : 모든 곳에서 접근 가능 protected : 선언된 클..
이번 포스팅에서는 코틀린에서 예외를 처리하는 방법에 대해서 알아보자! 1. try catch finally 구문 2. Checked Exception과 Unchecked Exception 3. try with resources 구문 try catch finally 구문 주어진 문자열을 정수로 변경하는 예제 Java private int parseIntOrThrow(@NotNull String str) { try { return Integer.parseInt(str); } catch (NumberFormatException e) { throw new IllegalArgumentException(String.format("주어진 %s는 숫자가 아닙니다.", str)); } } Kotlin fun parseI..
- Total
- Today
- Yesterday
- 스프링부트
- 구현
- 자료구조
- leetcode
- mysql 8.0
- 파이썬
- MySQL
- 북클럽
- webflux
- 노마드
- spring boot
- 릿코드
- 스프링
- 코틀린
- Algorithm
- 노마드코더
- Real MySQL
- 김영한
- kotlin
- 그리디
- 인프런
- 스프링 부트
- 코테
- 문자열
- 알고리즘
- 백준
- Spring
- 데이터베이스
- 리팩토링
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |