728x90
728x90
자프링(=자바 + 스프링)진영에서는 외부의 요청을 검증하기 위해서 Validation을 많이 사용한다. 의존성 설정만해두면... (몇 버전인지 기억이 잘 안나지만 스프링부트 특정 버전 이후부터는 Validation을 따로 추가해줘야한다... 그전에는 스프링부트에 자동으로 포함됐었다 😢) Controller단에서는 DTO로 외부 요청을 받아오고 외부의 요청이 DTO에 할당되는 순간 Validation을 통해 검증이 진행된다. (순서가 정확한지는 모르겠다) 자바에서는 DTO의 필드 위에 `@`로 시작되는 애너테이션을 붙여서 처리한다. 그 사용법도 간단하고 애너테이션 각각의 네이밍이 직관적(@NotNull, @NotBlank, @Pattern, @Size etc..)이라 하나라도 사용을 해봤다면 다른 기능들도..
코틀린의 클래스와 인터페이스는 자바 클래스, 인터페이스와는 약간 다르다. 이번장에서는 코틀린의클래스, 객체, 인터페이스에 대해 알아본다. 클래스 계층 정의 코틀린에서 클래스 계층을 정의하는 방식과 자바 방식을 비교한다. 그후 코틀린의 가시성과 접근 변경자에 대해 살펴본다. 코틀린 가시성/접근 변경자는 자바와 비슷하지만 아무것도 지정하지 않는 경우 기본 가시성은 다르다. 또한 코틀린에 새로 도입한 sealed 변경자에 대해 설명한다. sealed는 클래스 상속을 제한한다. 코틀린 인터페이스 인터페이스를 정의하고 구현하는 방법을 살펴보자. 코틀린 인터페이스는 자바 8 인터페이스와 비슷하다. 코틀린 인터페이스 안에는 추상 메서드뿐 아니라 구현이 있는 메서드도 정의할 수 있다(이는 자바 8의 디폴트 메서드와 비..
3장에서는 모든 프로그램에서 핵심이라 할 수 있는 함수 정의와 호출 기능을 코틀린이 어떻게 개선했는지 살펴본다. 추가로 확장 함수와 프로퍼티를 사용해 자바 라이브러리를 활용하면 코틀린과 자바를 함께 쓰는 프로젝트에서 코틀린의 장점을 최대한 살릴 수 있다. 이번 장에서 설명하는 내용이 더 유용하기 (그리고 덜 추상적이기 위해)위해서 코틀린 컬렉션, 문자열, 정규식(regulear expression)만으로 문제 영역을 한정한다. 우선 코틀린에서 컬렉션을 만드는 방법을 살펴보자. 코틀린에서 컬렉션 만들기 일단 컬렉션을 만드는 방법을 배워보자. 앞에서 setOf 함수로 집합을 만드는 방법을 살펴본 적이 있다. val set = hashSetOf(1, 7, 53) 비슷한 방법으로 리스트와 맵도 만들 수 있다. ..
이번 장에서는 모든 프로그램의 필수 요소인 변수(variable), 함수(function), 클래스(class) 등을 코틀린에서 어떻게 선언하는지 살펴보고 프로퍼티(property)라는 개념을 배운다. 또한 코틀린의 여러 제어 구조를 배운다. 대부분의 코틀린 제어 구조는 자바와 비슷하지만 몇 가지 중요한 개선이 이뤄졌다. 그런 다음 스마트 캐스트(smart cast)에 대해 설명한다. 스마트 캐스트는 타입 검사와 타입 캐스트, 타입 강제 변환을 하나로 엮은 기능이다. 마지막으로 예외 처리(exception handling)를 살펴본다. 이번장을 다 읽고 나면 기본적인 코틀린 개념을 활용해 코드를 작성할 수 있다. (한 가지 주의할 점은 여기서 배운 내용만으로 작성할 수 있는 코드는 코틀린 다운 코드라고 ..