본문 바로가기

반응형

전체 글

(235)
[Kotlin] 영역 함수 (Scope functions) 코틀린은 특정 객체의 컨텍스트안에서 코드 블럭을 실행하도록 하는 함수들을 제공한다. 특정 객체에 대해서 영역 함수 (scope function) 들을 사용하면 임시적으로 영역 (scope) 가 형성되며, 영역안에서는 객체의 이름이 없이 컨텍스트 객체에 접근이 가능하다. scope function 에는  let, run, with, apply, also, 이렇게 5개 함수들이 포함되며 이러한 함수들을 사용하여 코드를 더욱 간결하고 가독성 좋게 작성할 수 있다.1. Scope functions 비교scope functions 는 기본적으로 코드 블럭을 실행한다는 점에서 동일하지만, 블럭안에서 컨텍스트 객체에 접근하는 방법과 표현식의 결과 등이 서로 다르다. - Context object: this or it..
[Kotlin] 튜토리얼 따라가기 (5) (Null safety) 프로그래밍을 하다보면 null 값을 만나는 경우가 있다. null 값으로 인해서 예외가 발생하는 경우가 많은데, 코틀린에서는 null 값을 방지하는 null safety 기능을 가지고 있다. 이를 통해서 코틀린은 런타임이 아닌 컴파일 타임에 null 값으로 인한 잠재적 위험을 탐지할 수 있다. null safety 기능을 통해서 null 값이 가능한 곳을 명시적으로 선언하거나, null 값을 확인하거나, null 값을 반환할 여부가 있는 프로퍼티나 함수를 안전하게 호출하기, null 값이 발견되었을 때 수행할 동작 설정 등을 할 수 있다.1. Nullable types코틀린에서는 기본적으로 null 을 허용하지 않는다. 하지만 명시적 타입 뒤에 '?' 기호를 붙여서 nullable type 으로 선언할 ..
[Kotlin] 튜토리얼 따라가기 (4) (Classes) 1. Classes코틀린은 Class 와 Object 를 통해 객체지향을 제공한다. 클래스 선언에는 다음과 같이 Class 키워드를 사용하여 선언한다. class Customer2. Propertiesclass Contact(val id: Int, var email: String)class Contact(val id: Int, var email: String = "example@gmail.com") { val category: String = "work"} 클래스 객체는 프로퍼티를 가진다. 프로퍼티는 클래스 선언시 선언부의 () 괄호 또는 구현부의 {} 괄호에 선언할 수 있다. 선언부의 프로퍼티는 함수에서와 같이 기본값을 정의할 수 있다. 프로퍼티는 var 과 val 모두로 선언할 수 있는데, 런타..
[Kotlin] 튜토리얼 따라가기 (3) (Functions) 1. Functionsfun sum(x: Int, y: Int): Int { return x + y}fun main() { println(sum(1, 2)) // 3} 코틀린에서는 fun 키워드를 사용하여 함수를 선언한다. 매개변수는 타입과 함께 () 괄호 안에 선언되고, 함수 본문은 {} 안에 작성된다. 함수의 반환 타입은 함수 선언부의 매개변수 괄호 다음에 정의된다.2. Named arguments코틀린은 함수를 호출할 때 매개변수의 이름을 지정하여 인자를 입력할 수 있다. 이를 named argument 라고 하며, 이때는 매개변수의 순서와 상관없이 지정한 매개변수로 인자가 입력된다. fun printMessageWithPrefix(message: String, prefix: Str..
[Kotlin] 튜토리얼 따라가기 (2) (Control flow) 1. Control flow- Conditional expressions코틀린은 if 와 when 을 이용한 조건문 기능을 제공한다.1) ifval d: Intval check = trueif (check) { d = 1} else { d = 2}println(d)// 1 () 괄호 안의 조건과 그에 따른 행동을 {} 괄호 안에 작성한다. 조건문은 if - else 를 이용하여 구성한다. val a = 1val b = 2println(if (a > b) a else b) // Returns a value: 2 코틀린은 삼항 연산자 'condition ? then : else' 를 제공하지 않는다. 대신 위의 예제와 같이 {} 괄호를 생략하고 한 줄로 조건문을 작성할 수 있다.2) whenval..
[Kotlin] 튜토리얼 따라가기 (1) (Hello World, Variable, Collection) 코틀린 공식 문서에 있는 Kotlin Tour 를 읽어보고 기본 문법을 정리한다.1. Hello World- Hello Worldfun main() { println("Hello, world!") // Hello, world!} "Hello World!" 를 출력하는 간단한 예제이다. 코틀린에서는 함수를 선언할 때 fun 키워드를 사용한다. 자바와 동일하게 main() 함수가 프로그램의 시작점을 의미한다. 문자열 출력은 println() 또는 print() 함수를 통해 수행한다.- Variablesval popcorn = 5 // There are 5 boxes of popcornval hotdog = 7 // There are 7 hotdogsvar customers = 10 /..
[Java] Record 1. Record 란?Record 는 JDK 14 에서 preview feature 로 처음 추가된 기능으로 불변 데이터 전달을 위한 클래스 타입이다. Record 는 생성자와 getter, equals(), hashCode(), toString() 과 같이 일반적인 데이터 클래스가 가지게 되는 기능을 자동으로 가지게 되어 boilerplate 코드들을 제거해준다. Record 의 선언부의 헤더를 통해서 필드가 선언된다. 이때 Record 의 필드는 모두 불변이기 떄문에 내부적으로 final 로 선언된다. record Rectangle(double length, double width) { }public final class Rectangle { private final double length; ..
[Spring] Spring 과 Tomcat 스프링을 사용하다 보면 톰캣  (Tomcat) 이라는 이름을 듣게된다. 예전에 공부했었던 웹서버, WAS 등의 기억을 더듬어서 막연하게 스프링에 내장되어 있는 WAS 정도로 이해하고 넘어갔었다. 이번 글에서는 톰캣이 무엇인지, 스프링과 톰캣이 어떤 관계를 가지는지에 대해서 정리해보려 한다.1. Web Server 와 WAS (Web Application Server)톰캣에 대해서 본격적으로 알아보기 전에 Web Server 와 WAS 의 개념부터 정리해보자. 일반적인 웹 서비스에서 클라이언트는 서버의 규격에 맞는 HTTP 요청을 보내고 서버로부터 응답을 받는다. Web Server 와 WAS 는 둘다 클라이언트의 요청에 알맞은 응답을 보내는 역할을 하는데, 이때 어떤 요청에 대응하는지 목적과 기능에 따라..

반응형