Kotlin

    Gradle Kotlin, Java Project의 기본 구성 살펴보고, Gradle Task로 컴파일, 패키징 하기

    Gradle Kotlin, Java 프로젝트 만들기 우리는 이번 글에서 Gradle Kotlin, Java Project의 기본 구성을 살펴볼 것이다. 이를 위해 gradle init을 사용해 Kotlin 프로젝트를 생성하고 내부 구성을 볼 것이다. 다음 과정을 따라 Gradle Kotlin, Java Project를 만들도록 하자. 1. KotlinProject 폴더를 만든 후 현재 폴더를 KotlinProject 폴더로 바꾼다. 이후 gradle init을 하게 되면 총 6가지 질문이 나오게 된다. $ mkdir KotlinProject $ cd KotlinProject $ gradle init Starting a Gradle Daemon (subsequent builds will be faster)..

    [Kotlin] var과 val의 차이는 무엇인가?

    변수란 무엇인가? 변수는 값(데이터)을 저장하는 메모리 공간에 붙은 이름이다. 이름처럼 고전적인 변수는 값을 읽고 쓰는 것을 모두 지원한다. 실제로 다른 프로그래밍 언어인 Java나 Python등에서는 변수를 만들면 값을 쓰고 읽을 수 있다. 하지만 변수의 값이 바뀔 수 있는 부분이 많아진다는 것은 프로그램에 오류가 일어날 수 있는 부분이 많아진다는 것을 뜻한다. 때문에 최근 함수형 프로그래밍 패러다임에서는 값의 불변성을 중요하게 다룬다. 이에 대해 코틀린은 값이 변할 수 있는 가변 변수인 변수(var)와 값이 변할 수 없는 불변 변수(val) 두가지의 변수를 지원한다. 코틀린에서 지원하는 변수의 종류 : var, val 코틀린에서 지원하는 변수의 종류는 다음과 같다. val: 불변(Immutable) ..

    [Spring] Servlet에서 Request 처리해 Response 리턴하기

    Servlet에서 Request의 파라미터를 받아오는 방법 예를 들어 다음과 같이 user에 대한 쿼리를 넣어 http 요청을 한다고 해보자. http://localhost:8080/hello?user=devcho 서블릿 상에서 위 user을 받아오기 위해서는 HttpServletRequest 인터페이스의 getParameter 메서드를 이용하면 된다. getParameter은 인풋을 String으로 받으며 결과값을 리턴하는 메서드로 user 파라미터를 받아오기 위해 다음과 같이 사용할 수 있다. @WebServlet(name = "helloServlet", urlPatterns = ["/hello"]) class HelloServlet : HttpServlet() { override fun servic..

    [Spring] Servlet 만드는 방법 정리

    Spring에서 서블릿 만드는 방법 1. 서블릿 스캔을 위해 SpringBootApplication 위에 @ServletComponentScan Annotation을 붙인다. @ServletComponentScan // 서블릿 자동 등록 @SpringBootApplication class ServletExampleApplication fun main(args: Array) { runApplication(*args) } 2. 1에 의해 ServletExampleApplication 하위의 모든 패키지의 @WebServlet이 스캐닝 되므로 base 패키지를 추가하고 HelloServlet 클래스를 추가한다. 3. HelloServlet 클래스는 다음과 같이 작성한다. @WebServlet Annotatio..

    [Coroutine Flow] flatMapMerge 을 사용해 flow 변환 동시 처리하기

    flatMapMerge는 무슨 역할을 하는가? flatMapConcat과 flatMapLatest는 flow에서 발행된 데이터를 변환할 때 발행된 순서대로 순차적으로 변환한다. 반대로 flatMapMerge는 변환을 병렬로 수행한다. 대부분의 연산이 flatMapConcat이나 flatMapLatest를 이용한 순차 처리에 해당하지만 들어오는 데이터들을 동시에 수집한 후 수집한 값들이 가능한 빨리 방출 될 수 있도록 병렬로 처리되어야 할 때가 있다. 예를 들어 비용 처리를 위해 수십개의 지출 데이터를 취합하여 합치는 작업을 할 경우 굳이 순차적으로 처리하지 않고 병렬로 처리되는 것이 빠를 것이다. flatMapMerge는 이러한 병렬 연산을 지원하기 위해 만들어진 연산자이다. flatMapConcat과 ..