묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka producer/consumer test
해당 예제를 통해 주키퍼를 먼저 실행을 해볼려하지만 계속해서 해당 classpath를 찾지 못하고 있습니다. 비슷한 상황을 겪은 사람들의 경우 바이너리 파일이 아닌 소스 파일을 다운 받아 해당 문제를 겪었다고 했지만 저의 경우 알맞은 파일을 설치하여 압축을 해제하였는데 어떤게 원인일까요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요 싱크 커넥터로 DB에 적용이 안되어 질문드리게 되었습니다.
좋은강의 잘듣고있습니다! 다름아니라 현재 싱크 커넥터등록후 DB에 데이터가 등록되지 않고 있습니다.먼저 아래사진처럼 post요청을 통해 커넥터 등록을 하였습니다.토픽은 예제를 똑같이 따라하였을 때도 안되었어서 my-topic-orders로 새로 바꿔서 등록하였습니다.이에 맞게 테이블도 아래 사진처럼 생성하였습니다. post요청을 한 후 주문이 해당 토픽으로 전달했음에도 아래 사진처럼 DB에 적용이 되지않아 어디가 문제일지 커뮤니티를 뒤져도 잘모르겠어서 질문드립니다 ㅠㅠ (토픽도 "my_topic_orders"로 지정하였습니다.)현재 커넥터 등록상태입니다.추가로 kafka confluent에서 발생한 로그입니다
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
Transformations import 안됨
androidx.lifecycle 패키지에 Transformations 가 없어서 참조가 안됩니다! Unresolved reference라고 하네용..Deprecated 된것 같진 않은데 사용방법이 달라진걸까요?val userLD : LiveData<User> = ...; val userFullNameLD: LiveData<String> = userLD.map { user -> user.firstName + user.lastName }공식문서에 보니 이것처럼 먼저 생성한 LiveData나 MutableLiveData 를 참조해서 map 을 사용하는데 이런식으로 사용해야할까요?+) 그리고 transformations 를 사용하는 이유나 언제 사용해야하는지? 이해가 잘 안되는데, 예시처럼 prefix나 suffix 가 필요할 때 사용하기 좋은가요?MainActivity 에서 myViewModel.liveCounter.value = myViewModel.liveCounter.value?.plus(1) 이건 원본 데이터를 조작한게 아닌건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
유저서비스의 yml파일 관련 profile 설정방법이 궁금합니다.
안녕하세요 강의를 듣던중 profile이 어떻게 적용되는지 궁금하여 질문드리게 되었습니다. 현재 dev관련 설정파일이 왼쪽공통 항목 테스트를 위한 application.yml 파일이 오른쪽입니다.모두 같은 common이라는 환경변수로 어떤 .yml파일의 값을 사용하는지 확인하였는데요user-service의profile설정은 아래 사진처럼 하였습니다.health-check를 보내서 common값을 확인했을 때,아래사진 처럼 application.yml파일의 common값을 사용하는 것을 확인하였습니다. 공통으로 가져오는 application.yml파일의 common값과 ecommerce-dev.yml의 common값이 겹칠 때 profile을 dev라 설정했기 때문에health-check로 요청시common값에 common-dev 로 찍힐것이라 생각했었습니다. 혹시 common-dev로 안찍히는 이유가 공통으로 가져오는 application.yml값과 환경변수가 겹친다면 공통으로 가져오는 yml파일의 환경변수로 찍히는 것인지 제가 profile설정을 잘못한 것인지 궁금해 질문드렸습니다 ㅠㅠ
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
moshi관련 질문입니다.
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") } android { namespace = "com.example.booksearchapp" compileSdk = 34 defaultConfig { applicationId = "com.example.booksearchapp" minSdk = 23 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { buildConfig = true viewBinding = true } } dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0") implementation("androidx.constraintlayout:constraintlayout:2.1.4") implementation("androidx.legacy:legacy-support-v4:1.0.0") // Retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-moshi:2.9.0") // Okhttp // define a BOM and its version implementation(platform("com.squareup.okhttp3:okhttp-bom:4.12.0")) // define any required OkHttp artifacts without version implementation("com.squareup.okhttp3:okhttp") implementation("com.squareup.okhttp3:logging-interceptor") // Moshi implementation("com.squareup.moshi:moshi-kotlin:1.14.0") kapt("com.squareup.moshi:moshi-kotlin-codegen:1.14.0") // Lifrcycle implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0") implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3") // Coil implementation("io.coil-kt:coil:2.5.0") // RecyclerView implementation("androidx.recyclerview:recyclerview:1.3.2") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") } 위처럼 설정을 하고 빌드를 할때 아래와 같은 에러가 발생합니다.Execution failed for task ':app:kaptDebugKotlin'.> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction > java.lang.reflect.InvocationTargetException (no error message)jdk는 17을 사용하고 있습니다.11로 설정하면 아래와 같은 에러가 나옵니다.is project is configured to use an older Gradle JVM that supports up to version 11 but the current AGP requires a Gradle JVM that supports version 17. 어느 부분을 수정해야될 지 모르겠습니다.. ㅜㅜ
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래 코드를 private fun searchBooks() { var startTime = System.currentTimeMillis() var endTime: Long binding.etSearch.text = Editable.Factory.getInstance().newEditable(searchViewModel.query) binding.etSearch.addTextChangedListener { text: Editable? -> endTime = System.currentTimeMillis() if (endTime - startTime >= SEARCH_BOOKS_TIME_DELAY) { text?.let { val query = it.toString().trim() if (query.isNotEmpty()) { searchViewModel.searchBooksPaging(query) searchViewModel.query = query } } } startTime = endTime } }아래처럼 바꿔봤는데 입력 시마다 runnable을 매번 생성하는데 문제 되진 않을까요? 코틀린에 익숙치 않아서 더 좋은 방법이 있다면 알고 싶습니다. private var handler: Handler = Handler(Looper.getMainLooper()) var runnable: Runnable? = null private fun searchBooks() { binding.etSearch.addTextChangedListener { text: Editable? -> if (runnable != null) { handler.removeCallbacks(runnable!!) } // 텍스트 입력 후 N 초 간 입력 없으면 검색 실행 runnable = Runnable { text?.let { Log.d(TAG, "text:$it"); val query = text.toString().trim() if (query.isNotEmpty()) { bookSearchViewModel.searchBooks(text.toString()) bookSearchViewModel.query = query } } } handler.postDelayed(runnable!!, Constants.SEARCH_BOOKS_TIME_DELAY) } }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
method patch 설정시 404에러
- id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/** - Method=PATCH filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>.*), /$\{segment} - AuthorizationHeaderFilter 이렇게 작성했는데요@postmapping("/user/test")@patchmapping("/user/test")포스트는 잘동작하는데 패치는 404가 납니다뭐가 문제일까요?
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
안드로이드에서 아키텍처 패턴
안녕하세요. 강의 잘 듣고 있습니다.안드로이드 패턴에 대해서 몇 시간동안 듣고 검색도 해보면서 이해하는 중인데 어려움이 있어 질문을 드립니다. MVC에서 그림에서 이해가 안되는 부분이 있습니다. [1] 안드로이드에서 버튼은 결국 View가 가지고 있고 이벤트는 View에 있는 버튼을 눌러서 발생하기 시작할 것 같습니다. 그럼 뷰는 입력 받은 이벤트에 대해 컨트롤러에게 전달을 해줘야할 것이고 컨트롤러는 전달 받은 이벤트에 대한 작업을 수행하고 모델에 전달 후 모델의 변경을 다시 뷰에게 전달해주는 것인데 이런 생각으로 인풋은 뷰쪽으로뷰와 컨트롤러는 쌍방향 화살표가 되어야한다고 생각했습니다. [2] MVP에 경우에 View와 Model사이 간접적 화살표가 사라졌는데, MVP에 경우에도 프레젠트를 사이에 두고 모델에 데이터가 뷰쪽으로도 이동해야만 한다고 생각이 들고 그렇다면 간접적으로 이동하는 것은 똑같으니 MVC에서 M->V 점선 화살표가 유지되어야 하는 거 아닌가 하는 생각이 들었습니다. [3] MVP에서 프레젠트가 인터페이스를 통해 뷰와 모델을 거치게 되는데[MVC] V <-> C[MVP] V <-> Interface <-> Presenter한 단계를 추가해서 의존성 주입(관심사를 세분화)라고 이해해도 될까요? 혹시나 시간이 되신다면 설명 부탁드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ReWritePath필터의 세그먼트 식은 정규식일까요??
안녕하세요 선생님!강의를 잘 듣던 와중에 궁금증이 생겨 질문 드립니다. 게이트 웨이에 설정한 필터 중,요청 uri를 재정의 하기 위해서 RewritePath 라는 필터를 사용하잖아요. 이때 /user-service/(?<segment>.*), /$\{segment}는 정규식인가요??... 정규식표현에 segment라는 것이 찾아봐도 나오지 않아서요!!
-
해결됨Microservice 내부 아키텍처 와 EventStorming 설계
VO 관련 궁금한점
VO Money 에서 add(money:Money) 함수에 대해서 궁금합니다.VO는 불변인데 Money를 초기화 해서 값을 재할당 하는건지 어떤식으로 이해하면 좋을지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instance_id 설정이 적용되지 않고 있습니다.
안녕하세요 위 사진처럼 인스턴스의 ID가 아래의 yml파일로 설정한데로 적용되지 않고 있어 질문드렸습니다. 커서를 두었을 때 포트번호도 확인해서 해당 인스턴스인것도 확인하였습니다. 원인이나 해결방법을 알 수 있을까요 ㅠㅠ
-
해결됨아키텍처 패턴 with iOS - GUI Architecture Patterns(이론)
MVC의 본질에 대한 질문
안녕하세요! MVC의 본질에 대한 강의를 듣다가 문득 궁금증이 생겨서 글을 남깁니다. 강의자님께서 유저의 멘탈모델과 컴퓨터 모델을 일치시키는 것이 MVC의 본질이라고 하셨습니다. 또한, 유저의 멘탈모델이라는 것이 사용자가 애플리케이션을 사용하면서 "내부적으로 이렇게 되있을 것이다." 라고 생각하는 것이라고 설명해주셨습니다. 첫 번째 궁금증은 유저의 멘탈모델과 컴퓨터 모델을 일치시킨다는 것은 곧 '유저가 애플리케이션의 인터페이스만 봐도 어떤 일이 발생할지, 어떻게 동작될지 대충 예상이 될 정도로 애플리케이션을 유저 친화적으로 만든다'라고 해석해도 될까요? 두 번째 궁금증은 만약, 위의 저의 해석이 맞다면, "프레젠테이션 계층과 유저의 멘탈모델, 즉 내부 구현 계층이 분리되면 유저 친화적인 애플리케이션을 개발할 수 있다."로 귀결될 수 있는데, 사실 프레젠테이션 계층과 모델 계층의 분리는 어디까지나 개발자를 위한 분리인 줄 알았는데, 사용자를 위한 분리였다는 의미로 해석되어 상당히 혼란스럽니다... 좋은 강의 제공해주셔서 감사합니다! 좋은 답변 기대할께요~
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 업데이트 계획
강의 소개에 부트3버전으로 2024.01 업데이트라고 되어 있던데, 이전 질문 내용을 보니 작년 초부터 업데이트하신다고 하셨는데, 업데이트가 지속적으로 안되는 것 같더라구요. 이번 1월에는 업데이트 진행하시나요? 질의응답에서 매번 한다고 말씀하시고, 지속적으로 업데이트 안되는 것 같아 문의드립니다. 강사님 강의의 한 팬으로써 꼭 업데이트 되길 바랍니다. 1회독 끝낸상태라 한번 더 강의를 수강하려는데, 선문의 드립니다. Spring Boot 3.2 + Spring Cloud 2023.0.0업데이트 예정 (2024-01)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
업데이트 계획 및 커뮤니티 질문 답변 문의
강의 소개에Spring Boot 3.2 + Spring Cloud 2023.0.0업데이트 예정 (2024-01)쓰여 있는데 해당 계획 실습 예제 파일만 업데이트 하시는 건지 혹은 강의 녹화본까지 업데이트를 하시는 것이 유효한지 질문드립니다.또한 커뮤니티의 질문 글을 보면 강사님께서 8월 이후로 답변이 드문드문 한 상태인데인프런 AI의 답변이해당 질문 글에 대한 적절한 답변을 하여 답변을 하시지 않는 건지, 현재 바쁘셔서 답변을 하시지 않는 건지 질문드립니다. 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 정리 포스팅
혹시 복습차원에서 강의 정리해서 개인블로그에 포스팅 해도 될까요??만일 포스팅하게 된다면, 꼭 출처는 남기겠습니다!!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
apigateway-service 톰캣 서버로 실행시 안되는 이유
실수로 gateway-mvc라이브러리를 설치 후 실행 했을 때 톰캣으로 실행이 되었는데 이때는 게이트웨이url에 /first-service/welcome를 붙였을 때 실행이 되지 않았는데,gateway 라이브러리 다시 설치후 netty 에서는 정상적으로 동작 하는데 톰캣에서는 안되고, netty에서만 되는 이유가 뭔가요???
-
해결됨Microservice 내부 아키텍처 와 EventStorming 설계
VO에 대해서 질문있습니다.
Entity를 설계 하다가 자주 변하지만 응집도가 높은 값들은 어떻게 해야할까요?자주 변하지만 응집도가 높은 값들은 VO를 사용한다.VO로 선언된 값의 수정은 불가능 하지만 생성으로 값을 초기화 한다.그냥 이러한 상황에서는 응집도가 높아도 VO를 고려하지 하지 않는다.수정 기능이 필요하다면 VO가 아닌 Entity를 고려해야 한다?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
prometheus image 실행 시 에러가 발생합니다.
2024-01-02 15:45:16 ts=2024-01-02T06:45:16.877Z caller=main.go:487 level=error msg="Error loading config (--config.file=/etc/prometheus/prometheus.yml)" file=/etc/prometheus/prometheus.yml err="open /etc/prometheus/prometheus.yml: operation not permitted어떻게 해결해야할까요...?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
boot3 설정
spring boot3 에서 slueth를 사용할 수 없다고 합니다. 삽질 끝에 비슷하게 구현이 되긴 했는데 조금 다른 점 때문에 강사님이 의도하신바가 맞는지 정확히는 모르겠네요.첫 요청의 traceID와 spanID가 다른 점혹~시 필요하신분이 계시다면 참고해주세요!추가의존성 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-micrometer</artifactId> </dependency>기존 스타터 sleuth, zipkin 의존성 제거yml 변경점server: port: 0 spring: application: name: order-service # spring boot 3.0 이전 zipkin, sleuth 설정 # zipkin: # base-url: http://127.0.0.1:9411 # enabled: true # sleuth: # sampler: # probability: 1.0 jpa: hibernate: ddl-auto: update h2: console: enabled: true settings: web-allow-others: true path: /h2-console datasource: driverClassName: org.h2.Driver url: jdbc:h2:mem:testdb ## 추가 cloud: openfeign: micrometer: enabled: true eureka: instance: instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}} client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka management: endpoint: health: show-details: always endpoints: web: exposure: include: refresh, health, beans, busrefresh, info, metrics, prometheus ## 추가 tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: http://localhost:9411/api/v2/spans logging: level: com.example.orderservice: DEBUG ## 추가 pattern: level: "%5p [%X{traceId:-},%X{spanId:-}]"추가 주석 부분만 추가Config Bean 추가@Configuration public class MoniterConfig { @Bean public Capability capability(final MeterRegistry registry) { return new MicrometerCapability(registry); } }이 Config 를 추가하지 않으시면, 요청 마다 TraceID가 달라집니다.액츄에이터도 필수 몇 가지 글을 참고하여 세팅한거라 몇몇 의존성이나 설정은 없어도 될수도 있지만 거의 필요한거 같습니다.그 외에 오류나 추적하는거는 동일하게 동작하는거 같습니다! 혹시 누군가 도움이 되시길!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Custom Filter 적용2 수강중인데 CustomFilter클래스 apply가 호출이 안되네요.
CustomFilter 클래스는 기동될 때 로그로 찍어서 확인했는데 생성은 되는데 apply 함수가 호출이 안되네요. first ,second, apigateway 프로젝트 재빌드를 해도 호출이 안되네요. pre, post filter log가 호출이 안되는 이유가 무엇인가요?CustomFilter.java@Component @Slf4j public class CustomFilter extends AbstractGatewayFilterFactory<CustomFilter.Config> { public CustomFilter(){ super(Config.class); log.info("TEST TEST"); } @Override public GatewayFilter apply(final Config config) { log.info(" TEST 1 TEST 2"); // Custom Pre Filter return ((exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); log.info("Custom PRE filter : request id -> {}", request.getId()); // Custom post Filter return chain.filter( exchange ).then(Mono.fromRunnable(() -> { log.info("Custom POST filter : response code -> {}", response.getStatusCode()); })); }) ; } public static class Config{ // put the configuration properties } }application.ymlserver: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: mvc: routes: - id: first-service uri: http://localhost:8081 predicates: - Path= /first-service/** filters: # - AddRequestHeader=first-request, first-request-header2 # - AddResponseHeader=first-response, first-response-header2 - CustomFilter - id: second-service uri: http://localhost:8082 predicates: - Path= /second-service/** filters: # - AddRequestHeader=second-request, second-request-header2 # - AddResponseHeader=second-response, second-response-header2 - CustomFilter apigateway 로그 2023-12-31T01:50:27.862+09:00 WARN 2068 --- [apigateway-service] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' of type [org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.2023-12-31T01:50:28.212+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.CustomFilter : TEST TEST2023-12-31T01:50:28.216+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.GlobalFilter : TEST TEST2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [After]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Before]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Between]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Cookie]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Header]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Host]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Method]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Path]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Query]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [ReadBody]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [RemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [XForwardedRemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Weight]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [CloudFoundryRouteService]2023-12-31T01:50:29.564+09:00 INFO 2068 --- [apigateway-service] [ main] DiscoveryClientOptionalArgsConfiguration : Eureka HTTP Client uses RestTemplate.2023-12-31T01:50:29.922+09:00 WARN 2068 --- [apigateway-service] [ main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.2023-12-31T01:50:29.956+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING2023-12-31T01:50:30.008+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-12023-12-31T01:50:30.009+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Client configured to neither register nor query for data.2023-12-31T01:50:30.019+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1703955030017 with initial instances count: 02023-12-31T01:50:30.024+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application APIGATEWAY-SERVICE with eureka with status UP2023-12-31T01:50:30.314+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 80002023-12-31T01:50:30.320+09:00 INFO 2068 --- [apigateway-service] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 80002023-12-31T01:50:30.708+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.ApigatewayServiceApplication : Started ApigatewayServiceApplication in 5.877 seconds (process running for 6.826)