Kotlin 5

연습용 주문 서버 만들기 02 멤버십 발급 API 작성하기

연습용 주문 서버 만들기 git repository 01 Kotlin/Spring 멀티모듈 프로젝트 구성 02 멤버십 발급 API 작성하기 03 메뉴 목록 조회 API 가장 간단한 아이디 발급 API부터 만들겠습니다. 지난 번 글에도 말했듯이 편의상 회원가입없이 아이디 발급 요청하면 임의의 UUID를 발급하겠습니다. 이 아이디를 membership이라고 하겠습니다. 사용자는 나중에 발급받은 membership를 가지고 포인트를 충전하거나 결제할 수 있습니다. 구현할 요구사항은 아래와 같습니다. 사용자는 누구나 membership 발급 API를 통해 멤버십 번호를 발급받을 수 있다. 따로 무엇을 검증하지 않을 것이므로 매우 간단한 구현이 되겠습니다. 아이디 발급은 실패하는 케이스가 없다고 가정하겠습니다. ..

Spring 2023.01.15

kotlin generic variance

다음과 같은 제네릭 클래스가 있다. class Cup 위 코드에서 타입 파라미터 T 는 variance 한정자(out 또는 in )가 없다. 이럴 때는 기본적으로 invariant(불공변성)이다. invariant라는 건 제네릭 타입으로 만들어지는 타입들이 서로 관련성이 없다는 뜻. 말하자면 Cup 과 Cup , Cup 은 전혀 관계없다. 불공변성 관계 fun main() { val anys: Cup = Cup //Error: Type mistach val nothings: Cup = cup() // Error } 만약 어떤 관련성을 원한다면 out 또는 in 이라는 variance 한정자를 붙인다. out 은 타입 파라미터를 covariant(공변성)로 만든다. 이는 A가 B의 서브타입일 때 Cup 가..

Kotlin 2022.02.27

[Kotlin] 코틀린이 null을 다루는 방식 ? 연산자와 ?: 엘비스 연산자

Kotlin ? keyword Java에서는 객체의 메서드를 호출할 때 NP가 발생할 수 있으므로 메서드 호출 전 null체크가 필요하다. if(foo != null) foo.bar 코틀린은 안전한 null 체크를 위한 ?연산자를 제공한다. foo?.bar() //null이라면 null, null아니라면 결과 값이 출력된다. 하지만 역시 안전한 호출의 결과 타입도 null이 될 수 있으므로 유의해야 한다. 이를 테면 String.toUpperCase의 결과는 String을 반환한다. 반면 String?.toUpperCase식의 결과 타입은 String?이 된다. ?연산자를 연속해서 사용하는 것도 가능하다. class Address(val streetAddress: String, val zipCode: I..

Kotlin 2021.05.15

인프런 Kotlin으로 개발하는 Spring Boot Web MVC - Web개론

Web이란? 웹은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간이다. 웹의 용도는 다양하게 나눌 수 있다. Web site(google, naver, ...) User Interface(Browser) API(ex.Open API) 이 세 가지 정도가 가장 흔하게 접할 수 있는 웹의 형태다. 웹의 기반 HTTP HTML을 주고 받기 위한 규약 URI 리소스 식별자다 HTML XML을 바탕으로 한 범용 문서 포맷. 브라우저는 HTML을 사용자가 알아볼 수 있는 형태로 표현하는 도구다. REST Client, Server 클라이언트와 서버가 서로 독립적으로 분리되어야 한다. Stateless 요청에 대해 클라이언트의 상태가 서버에 저장하지 않는다. Cache 클라이언트..

Study 2021.05.15