이전부터 문제 많던 Enum의 values(). Kotlin v1.9.0에서는 드디어 Enum.values()를 대체하는 녀석인 entries property를 stable feature로 제공한다. 내부적인 구현은 다르지만, 사용하는 법은 values()와 같다고 보면 된다. fun main() { val americaBrand = Brand.entries.filter { it.country == "America" } println(americaBrand) } enum class Brand(val country: String) { SAMSUNG("Korea"), APPLE("America"), GOOGLE("America"), MICROSOFT("America"), } 릴리즈 문서에서는 이제 아예 va..
Spring boot - API Versioning API를 개발하다보면 API 버전에 대한 생각을 하게 된다. 버저닝(Versioning)을 하지 않으면 input/output이 변경되었을 때 이를 사용하고 있던 클라이언트에게 제대로 서비스할 수 없기 때문이다. 이러한 API Versioning을 하기 위해 지금까지 단순히 URI에 version을 명시하는 방향으로만 진행해왔는데, 더 다양한 방법이 있어 이를 정리해놓고자 한다. 모든 예제코드는 아래 Repository를 참고하자. GitHub - KimDoubleB/spring-learning: 🌱 •̀.̫•́✧ 🌱 •̀.̫•́✧ . Contribute to KimDoubleB/spring-learning development by creating a..
개요 / 문제 기존에 Spring fox를 사용하다가 deprecated 되어 springdoc openapi를 도입하게 되었습니다. Swggger 인터페이스는 두 라이브러리 다 맞추고 있었기에 의존성 교체와 몇가지 수정만으로도 대체가 가능했는데요. 근데 막상 개발서버에 배포를 해보니 다음 사진처럼 Failed to load remote configuration. 메시지와 함께 Swagger 실행이 불가능한 문제가 발생했습니다. 뭔가 요청이 제대로 전달되지 않은 것 같아 Chrome 개발자 도구로 확인해보니 Swagger 리소스에 대한 접근이 제대로 되지 않고 있는 것을 발견했습니다. 위 문제를 해결하기 위해 이슈를 찾기 시작했습니다. 원인 파악하기 1. swagger-config 접근 허용하기 제가 운..
사이드 프로젝트를 Spring boot 3.0으로 migration 하면서 정리한 글. 아주 러프하게 정리했다. - 다음에 Spring boot migration 3.0 문서를 번역해야겠다는 생각이 ... javax package name 변경 javax → jakarta IntelliJ에서 import javax. 을 import jakarta. 로 전체 replace하면 편하다. (검토필요) 왜? Java EE는 오라클에서 이클립스 재단으로 이관되었었음. 오라클이 JavaEE 프로젝트는 이관했지만, Java 상표권은 여전히 보유하고 있었기에 Java naming의 namespace 사용에는 제약이 있음. 이로 인해 Java EE는 Jakarta EE로, API package명은 javax.에서 jak..
최근에 Spring boot를 활용한 프로젝트를 보면 MyBatis(SQL Mapper)보다 JPA(ORM)/Hibernate/Spring data jpa를 사용하는 사례가 더 많은 것 같다. JPA, Hibernate, Spring data jpa를 모르는 분은 구글에서 찾아보길 바란다. 이후에는 JPA라고 약칭하겠다. Query Logging JPA/Hibernate를 사용하면 Query를 직접 작성해 활용하는 것이 아니기에 어떤 Query들이 구성되고 사용되고 있는지 확인하기 어려울 때가 있다. 그래서 이를 로깅 (Logging)을 통해 확인할 수 있도록 지원하고 있다. 근데 많이 알려진 방법이 좋지 않을 뿐더러 쿼리 결과도 정확히 나오지 않아 다른 방법을 제시하고자 한다. 일단 많이 알려진 방법대..
최근에 서비스 개발 코드들을 보면서 옛날 클래스 네이밍/아키텍처 패턴을 보고 있습니다. 예를 들어 DTO, DAO 같은 것들 말이죠. 대략적으로는 알지만, 오랜만에 봐서 그런지 헷갈려 정리해놓고자 합니다. 이 글에서는 일반적으로 이런 역할을 가진다라고 이야기하지만 무조건 적인 것은 아닙니다. 변질된 사례도 많고, 구현하는 사람마다 이해하는 바가 다르기 때문입니다. 그리고 개인적인 의견입니다만 최근에는 여기서 말하는 모든 네이밍/패턴은 많이 사용되지 않는다고 생각합니다. 여러 다른 프레임워크/구현체(ex. JPA/Hibernate 등)들이 어느정도 많이 사용되면서 다른 명명 패턴/추상화(ex. Repository 등)를 사용하고 있기 때문입니다. 하지만 그럼에도 팀 및 정해진 인원들이 어느정도 정해진 컨벤..
이번 글에서 R2DBC, Spring data r2dbc를 사용해 Join을 다뤄보자. 학습 기록용. 피드백은 언제나 환영입니다. 사용한 모든 예제코드는 github을 참고해주세요. 이전 글 R2DBC를 사용해보자 (1) - 왜 사용할까? 이번 글에서 R2DBC란 무엇이고, 왜 사용하고, 어떻게 사용했는지 경험에 대해 이야기해보고자 한다. 잘못된 내용이 있으면 피드백은 언제든지 환영입니다 :) R2DBC는 언제 사용할까? Reactive Programming binux.tistory.com R2DBC를 사용해보자 (2) - CRUD를 만들어보자 이번 글에서는 R2DBC, Spring data r2dbc를 사용해 코드를 작성해보자. 잘못된 내용이 있으면 피드백은 언제든지 환영입니다 :) 사용한 모든 예제코..
- Total
- Today
- Yesterday
- java
- 일상
- 이스티오
- 알고리즘
- 로그
- tag
- python
- boj
- r2dbc
- jasync
- Spring
- HTTP
- 하루
- WebFlux
- 백준
- MySQL
- gradle
- Intellij
- 비동기
- 쿠버네티스
- Log
- Istio
- Spring boot
- sidecar
- docker
- Algorithm
- c++
- container
- Kubernetes
- k8s
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |