준호씨의 블로그
코틀린 마이크로서비스 개발 - 오타 등 정리. 정오표는 어디에? 본문
얼마 전부터 온라인 스터디를 통해 스터디하고 있는 책입니다. 책을 보다 보면 좀 이상한 부분들이 보여서 오류 수정 또는 개인적인 생각들을 정리해 보고 있습니다.
도서 오류 신고, 정오표
일부는 에이콘 출판사 홈페이지에 "도서 오류 신고"에 신고하기도 했는데요.
http://www.acornpub.co.kr/book/microservices-kotlin
어떤 신고들을 했는지 이력을 볼 수 없어서 불편합니다.
신고한 내용이 정오표에 추가되었습니다.
몇 개 더 신고했으니 계속 추가될 거 같습니다.
원서 정오표
원서 사이트는 https://www.packtpub.com/web-development/microservices-kotlin 입니다.
https://www.packtpub.com/support/code-downloads에서 원서 제목인 "Hands-On Microservices with Kotlin"를 검색하면 기 등록된 Errata를 확인할 수 있는 거 같은데요. 아직 하나도 등록된 게 없네요. 원서에는 정말 오타나 오류가 없으려나요?
아무튼 다음부터는 직접 정리한 오타들입니다. 스터디하면서 확인된 부분들은 계속 추가해 나가려고 합니다.
들어가며
p26
도서 정보 페이지인 http://acornpub.co.kr/book/ml-with-kotlin -> 도서 정보 페이지인 http://www.acornpub.co.kr/book/microservices-kotlin
1장
p36
UI 컴포턴트조차도 -> UI 컴포넌트조차도
p41
느스한 결합 -> 느슨한 결합
p45
모터니텅 -> 모니터링
4장
p195
override fun createCustomer(customerMono: Mono<Customer>): Mono<*> {
return customerMono.subscribe {
customers[it.id] = it
}.toMono()
}
이렇게 구현하고 요청을 아래처럼 날리고
$ curl -X POST http://localhost:8080/customers/ -H 'content-type: application/json' -d '{"id": 18, "name": "New Customer", "telephone": {"countryCode": "+44", "telephoneNumber": "7123456789"}}'
{"disposed":false,"scanAvailable":true}
http://localhost:8080/customers를 띄워보면
[
{
"id": 1,
"name": "Kotlin"
},
{
"id": 2,
"name": "Spring"
},
{
"id": 3,
"name": "Microservice",
"telephone": {
"countryCode": "+44",
"telephoneNumber": "7123456789"
}
}
]
id: 18 이 생성되지 않습니다.
intellij에서는 non-blocking scope에서 부른다고 뭐라고 합니다.
혹시 springboot 버전이 책에서는 2.1.2인데 2.3.1로 사용해서 생기는 문제인가 해서 다시 낮춰보았지만 마찬가지입니다. non-blocking 영역에서 subscribe를 호출하면 로직이 제대로 실행되지 않는 거 같습니다. 관련 설명이 있으면 좋을 거 같습니다.
p198
override fun createCustomer(customerMono: Mono<Customer>): Mono<*> =
customerMono.map {
customers[it.id] = it
// it
Mono.empty<Any>()
}
명시적으로 빈 객체를 리턴하는 부분인데 빈 객체가 리턴되지 않고 scanAvailable이 나타납니다.
$ curl -i -X POST http://localhost:8080/customers/ -H 'content-type: application/json' -d '{"id": 18, "name": "New Customer", "telephone": {"countryCode": "+44", "telephoneNumber": "7123456789"}}'
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 22
{"scanAvailable":true}
빈 객체가 리턴되어야 될 거 같은데 저만 그런 건지 좀 이상하네요.
p199
오타
컴포넌트 스캔에 통해 -> 컴포넌트 스캔을 통해
URL 표기 이상
(X) https://kotlinlang.org/docs/reference/typesafe-builders.html
https://kotlinlang.org/docs/reference/type-safe-builders.html
다음은 오타는 아니고 개인적인 의견입니다.
RESTful API 작성 시 단수형/복수형이 혼합되어 있음. 개인적으로 복수형을 선호
여기뿐 아니라 수많은 부분에서 단수형을 사용하는 부분이 보입니다. 사실 이 부분은 취향의 문제일 수도 있어서 오류라고는 할 수 없습니다. 다만 여러 RESTful API 가이드에서 복수형을 사용하라고 가이드하고 있고 저도 복수형이 여러모로 편리하다고 생각하고 있어서 책에서 단수형으로 된 부분도 일부러 복수형으로 고쳐서 실습하고 있습니다.
가이드 예
https://restfulapi.net/resource-naming/
'개발이야기' 카테고리의 다른 글
python2 설치. 소스코드 빌드 해서 설치 하기 (0) | 2020.09.16 |
---|---|
2020년 1월 1일 python2 지원 종료. 마지막 버전은 2.7.18 2020년 4월 20일 출시? (0) | 2020.09.11 |
Java - D-Day 구하기. Java8이상 버전과 이전 버전 방식 (0) | 2020.08.22 |
Java - OffsetDateTime 문자열 날짜 파싱 (0) | 2020.08.21 |
Jackson - Json String Escape (0) | 2020.08.13 |