묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
rds read replica 접속 에러
시작 템플릿 - 유저 데이터에 write와 read 설정하고 오토스케일링 돌렸는데 에러가 납니다. 시작 템플릿에서 테스트로 인스턴스 생성해서 확인해보니 write는 문제 없는데 read에서 에러가 나옵니다. (여러번 설정해봄)ssh 접속해서 아래부분 실행 시 에러... 무슨 문제 일까요?java -jar build/libs/aws-msa-monolithic-prac-0.1.jar \ --spring.datasource.write.jdbc-url=jdbc:postgresql://goopang-rds-db.*****.ap-northeast-2.rds.amazonaws.com:5432:goopang_database \ --spring.datasource.write.username=postgres \ --spring.datasource.write.password=**** \ --spring.datasource.read.jdbc-url=jdbc:postgresql://goopang-rds-db-read-replica.****.ap-northeast-2.rds.amazonaws.com:5432:goopang_database \ --spring.datasource.read.username=postgres \ --spring.datasource.read.password=****2024-08-31T02:10:00.841Z ERROR 2333 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect') 2024-08-31T02:10:00.907Z ERROR 2333 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect') at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1156) ~[spring-context-6.0.9.jar!/:6.0.9] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:931) ~[spring-context-6.0.9.jar!/:6.0.9] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[spring-context-6.0.9.jar!/:6.0.9] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.0.jar!/:3.1.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:733) ~[spring-boot-3.1.0.jar!/:3.1.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:435) ~[spring-boot-3.1.0.jar!/:3.1.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ~[spring-boot-3.1.0.jar!/:3.1.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1305) ~[spring-boot-3.1.0.jar!/:3.1.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1294) ~[spring-boot-3.1.0.jar!/:3.1.0] at com.prac.monolithic.awsmsamonolithicprac.AwsMsaMonolithicPracApplicationKt.main(AwsMsaMonolithicPracApplication.kt:13) ~[classes!/:0.1] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[aws-msa-monolithic-prac-0.1.jar:0.1] at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[aws-msa-monolithic-prac-0.1.jar:0.1] at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[aws-msa-monolithic-prac-0.1.jar:0.1] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[aws-msa-monolithic-prac-0.1.jar:0.1] Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect') at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:277) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:239) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:216) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:229) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:197) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:166) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1380) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1451) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.0.9.jar!/:6.0.9] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) ~[spring-orm-6.0.9.jar!/:6.0.9] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.0.9.jar!/:6.0.9] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.0.9.jar!/:6.0.9] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) ~[spring-orm-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1816) ~[spring-beans-6.0.9.jar!/:6.0.9] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[spring-beans-6.0.9.jar!/:6.0.9] ... 24 common frames omitted Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect') at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:188) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:274) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:34) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:119) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264) ~[hibernate-core-6.2.2.Final.jar!/:6.2.2.Final] ... 39 common frames omitted 2024-08-31 02:10:01,061 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts) 2024-08-31 02:10:01,064 - util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python3.9/site-packages/cloudinit/config/cc_scripts_user.py'>) failed Cloud-init v. 22.2.2 finished at Sat, 31 Aug 2024 02:10:01 +0000. Datasource DataSourceEc2. Up 122.75 seconds [root@ip-10-0-1-8 aws-operation-prac]#
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
replicas 가 생기지 않는 문제
docker stack services my-stack 이러한 명령어로 스택에 있는 서비스를 확인했을 때, replicas가 생기지 않는 문제가 발생합니다. docker service logs my-stack_nginx으로 로그를 확인했을 때, "my-stack_nginx.1.e52u87cn5fsb@65b1999ee81f | exec /docker-entrypoint.sh: invalid argument" 라는 오류 메시가 발생합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
api 게이트 웨이 오류
user-service에선 정상적으로 실행되지만 api 게이트웨이 오류가 납니다. 403 오류입니다 인강에서 token secret값이 주석 처리 되어 있는데 실제로 인강에선 어떻게 실행된지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
[Docker] Kafka, Kafka connect 도커로 실행하기
Kafka, Kafka Connecet를 설치하기 부담스러우신 분들을 위해 제가 직접 이미지를 만들었습니다.https://hub.docker.com/r/didrkd684/inflearn-spring-cloud-kafka DB까지 docker compose로 사용하고 싶으신 분들은 아래 링크를 참고해 주시기 바랍니다.https://github.com/chocolaggibbiddori/spring-cloud/blob/main/kafka-docker/docker-compose.yml
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
마이크로 서비스 최종정리 msa 화면 흐름도?를보고 이해되지않아 문의드립니다
authentication-server는 어떤역활인가요?강의 마지막에 볼때..클라이언트가 GateWay-server에 요청할경우 config-server 와 Eureka-server를 보내고아이템서비스와 히스토리 서비스에 데이터 전달하는데authentication-server는 아이템서비스로 봐야하는지아니면 별도의 서버인지 궁금합니다.14장 pdf파일에 두번째 그림보고 궁금해서 문의드립니다.제가 느끼기엔 item-microservice와 유사한 기능이라 생각됩니다만.. 제가 이해하는게 맞을까요?
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
docker는 어떻게 macos에서 리눅스를 실행할 수 있는것일까요?
vmware는 os전체를 가상화하고docker는 hostos의 커널을 공유하고 os가 아닌 일부분만 가상화 한다고 했는데...어떻게 macos에서 리눅스가 실행될 수 있는것일까요?이론적으로 같은 운영체제만 가상화 가능할것 아닌가요?
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
Item-service에 접속이 안됩니다.
024-08-22T15:34:50.384+09:00 WARN [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] z.r.AsyncReporter$BoundedAsyncReporter : Timed out waiting for in-flight spans to send2024-08-22T15:34:50.386+09:00 INFO [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2024-08-22T15:34:50.412+09:00 INFO [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-08-22T15:34:50.427+09:00 ERROR [mstudy,,] 21188 --- [mstudy] [ restartedMain] [ ] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activeMQConfig': Injection of autowired dependencies failedat org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:514) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1421) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.2.7.jar:3.2.7]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.2.7.jar:3.2.7]at com.study.mstudy.MstudyApplication.main(MstudyApplication.java:12) ~[classes/:na]at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.7.jar:3.2.7]Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.activemq.broker.url' in value "${spring.activemq.broker.url}"at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.1.10.jar:6.1.10]at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:964) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1374) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:784) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.10.jar:6.1.10]at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508) ~[spring-beans-6.1.10.jar:6.1.10]... 20 common frames omittedProcess finished with exit code 0에러 나옵니다.이강의 요약하면..먼저config-server에서 active-mq.yml파일 생성합니다.activemq:broker:url: tcp://localhost:61616topic: mstudy그다음 history-server와 item-server에 import를 해줍니다.hisotry-server에 config환경설정하고item-server?에? config파일했습니다만.item-server만 저러는데..왜 연결이 안될까요?history-server는 잘 됩니다.저는 프로젝트 명칭만 변경한 상태입니다.로그를 보시고 무엇이 잘못되엇는지 한번 확인해주시고.지도 부탁드립니다.
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
docker -e 옵션에 대한 질문
안녕하세요 강의 항상 잘 보고 있습니다.처음으로 궁금증이 생겨 질문 드립니다.멀티 컨테이너 구성 2번 강의를 듣고 있습니다.여기서docker run -d -p 8088:8088 --network my-network-e "spring.datasource.url=jdbc:mariadb://my-mariadb:3306/mydb" ......이부분에서 -e을 사용할때 이미지에 딱히 옵션을 스프링으로 전달하는 방식이 안나와 있는것 같은데 어떻게 스프링 부트까지 옵션전달이 되는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
springboot eureka 부분 user service 구축시 오류
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scopedTarget.eurekaClient' defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.class]: Unsatisfied dependency expressed through method 'eurekaClient' parameter 3: No qualifying bean of type 'com.netflix.discovery.shared.transport.jersey.TransportClientFactories<?>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 해당 오류가 나는데 혹시 이유가 어떤건지 알 수 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
아래와 같이 실습 도중, No suitable driver found 에러가 나서 질문드립니다.
아래와 같이 실습 도중, No suitable driver found 에러가 나서 질문드립니다.docker-compose.yml을 통해 zookeeper, kafka broker, kafka connect, mariadb 컨테이너를 실행시켰습니다.version: '2' services: zookeeper: image: confluentinc/cp-zookeeper:7.2.1 hostname: zookeeper container_name: zookeeper ports: - "2181:2181" environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 broker: image: confluentinc/cp-server:7.2.1 hostname: broker container_name: broker depends_on: - zookeeper ports: - "9092:9092" - "9101:9101" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092 KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1 KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_JMX_PORT: 9101 KAFKA_JMX_HOSTNAME: localhost KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081 CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:29092 CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 CONFLUENT_METRICS_ENABLE: 'true' CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous' connect: image: cnfldemos/cp-server-connect-datagen:0.5.3-7.1.0 hostname: connect container_name: connect depends_on: - broker - mariadb ports: - "8083:8083" volumes: - ./kafka-connect-jdbc:/etc/kafka-connect/jars # JDBC 드라이버가 설치된 경로를 마운트 environment: CONNECT_BOOTSTRAP_SERVERS: 'broker:29092' CONNECT_REST_ADVERTISED_HOST_NAME: connect CONNECT_GROUP_ID: compose-connect-group CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000 CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-7.2.1.jar CONNECT_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor" CONNECT_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor" CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components,/etc/kafka-connect/jars" CONNECT_LOG4J_LOGGERS: org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR,org.reflections=ERROR mariadb: image: mariadb:10.5 container_name: mariadb hostname: mariadb environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: testdb MYSQL_USER: testuser MYSQL_PASSWORD: testpassword ports: - "3306:3306" volumes: - ./mariadb_data:/var/lib/mysql확인 결과, kafka connect 컨테이너 내부의 /etc/kafka-connect/jars 경로 아래에 kafka-connect-jdbc-10.6.3.jar, mariadb-java-client-2.7.2.jar 가 잘 위치해있습니다.mariadb 컨테이너 내부로 접속하여 users 데이터베이스를 잘 생성하였고, 테스트 데이터도 잘 삽입해주었고 결과까지 확인했습니다.postman으로 아래와 같이 source 생성 요청 결과 201 응답이 정상적으로 잘 도착하였습니다.[POST] 127.0.0.1:8083/connectors { "name": "my-source-connector3", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url": "jdbc:mysql://mariadb:3306/testdb", "connection.user": "testuser", "connection.password": "testpassword", "mode": "incrementing", "incrementing.column.name": "id", "table.whitelist": "users", "topic.prefix": "my_topic_", "tasks.max": "1" } }5. 그러나 127.0.0.1:8083/connectors/my-source-connector/status 으로 요청을 보내면 아래와 같은 오류가 발생합니다.{ "name": "my-source-connector", "connector": { "state": "FAILED", "worker_id": "connect:8083", "trace": "org.apache.kafka.connect.errors.ConnectException: java.sql.SQLException: No suitable driver found for jdbc:mysql://mariadb:3306/testdb\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:59)\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:94)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:141)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:118)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://mariadb:3306/testdb\n\tat java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)\n\tat java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getConnection(GenericDatabaseDialect.java:250)\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.newConnection(CachedConnectionProvider.java:80)\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:52)\n\t... 12 more\n" }, "tasks": [], "type": "source" }
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
ci/cd 항목이 없습니다.
강의 따라 하고있습니다만.. ci/cd 지식이 없는경우??기존에는 깃만 사용하다가 강의들으면서 처음 사용하게되었습니다.강의내용 처럼 ci/cd메뉴를 설정하는것을따라하는 방법이 있을까요?아래는 제가 깃러너?랑 깃랩 설치한 부분입니다.따로 추가 설정해야 하는 부분이 있을까요?동영상의 내용과 비슷하게 진행할수가 없습니다.깃 런너 설치도 여러번 해야지 설치가 생각보다 잘 안됩니다..깃랩을 처음 사용하는 사람이다보니까런너 부터 연결해서.gitlab-ci.yml? 그것을 한다음에..깃랩에 msa 프로젝트 올려야하는것같은데..처음부터 설명이 없으시니까 우왕자왕하게되네요..파이프라인 어떻게해야할지 모르겠습니다.진행이 어렵습니다.깃랩을 하는데 있어서 CI/CD메뉴가 처음부터 없으면 어떻게해야하면 좋을까요?
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
Prometheus 및 컨테이너 상태 메트릭 수집
Prometheus 설명 부분에서요,컨테이너 상태에 대한 Metrics 수집 부분에 대해서 질문있습니다.실무에서 컨테이너 환경에서 애플리케이션을 개발한적은 없고, Prometheus, Grafana, Loki, Promtail 정도만 컨테이너 기반에서 로그 수집하는 정도로만 활용해봤는데요,스프링 부트 환경에 액츄에이터, 마이크로미터 라이브러리 구성해서 N개의 서버(운영, 개발, 스테이징 서버 등)에서 프로파일에 따른 로그를 수집하고, Promtail도 각 서버에 설치하고, 별도의 모니터링 서버에 컨테이너 기반으로 Prometheus, Grafana, Loki 셋팅해서 사용하고 있습니다.(이렇게 구성한 아키텍쳐?가 베스트 프랙티스인지는 잘모르겠네요)그런데 해당 강의를 듣고 생각한게 컨테이너 기반의 애플리케이션을 올릴 경우 추가적으로 컨테이너 상태에 대한 메트릭 수집이 있을 것 같은데요, 컨테이너 실행/중지 같은 상태 제외하면 어떤 유의미한 데이터를 수집할 수 있는지 감이 안오는데, 어떤것들이 있을까요? CPU나 메모리 같은 리소스 정도가 있을꺼 같고..추가적으로 컨테이너 환경의 애플리케이션을 구성한다면 MSA 환경이 아니더라도 로그 정보를 별도의 로그 서버에서 관리하는게 일반적인가요? 이 강의를 듣기전에는 애플리케이션 서버가 당연히 로그도 수집하는거로 생각해서 Promtail도 각 로그파일이 있는 서버에 다 설치했거든요. 이전 섹션에서 로그를 별도 컨테이너에서 관리하는거 보고 궁금증이 생겼습니다.
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
인스턴스 타겟그룹 등록 언헬시
인스턴스 만들때 라우팅 테이블 어떻게 설정 되어 있나요 nat랑 연결되어있나요?
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
config파일이 생성이 되면.. item-service 프로젝트에서..
config파일이 생성이 되면.. item-service 프로젝트에서..만드는 과정중에 에러가 발생하였습니다.아래와 같은 이슈가 발생되는데..해결 방법이 있을까요?2024-08-13T23:22:04.431+09:00 DEBUG 50092 --- [mstudy] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : Application failed to start due to an exceptionorg.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:186) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getDriverClassName(PropertiesJdbcConnectionDetails.java:49) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:55) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:117) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.11.jar:6.1.11] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.11.jar:6.1.11] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.2.jar:3.3.2] at com.study.mstudy.MstudyApplication.main(MstudyApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.2.jar:3.3.2]2024-08-13T23:22:04.437+09:00 ERROR 50092 --- [mstudy] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : ***************************APPLICATION FAILED TO START***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (the profiles local are currently active).Process finished with exit code 0
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
제목을 입력하지않았는데 포스트맨에서 제목이 나오지 않습니다.
package com.study.mstudy.item.controller;import com.study.mstudy.item.dto.ItemDTO;import com.study.mstudy.item.dto.ResponseDTO;import com.study.mstudy.item.service.ItemService;import jakarta.validation.Valid;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping(value="v1/item")@Slf4j@RequiredArgsConstructorpublic class ItemController {private final ItemService itemService; @RequestMapping(value="/add",method= RequestMethod.POST)public ResponseEntity<ResponseDTO> add(@Valid @RequestBody ItemDTO itemDTO){ResponseDTO.ResponseDTOBuilder responseDTOBuilder = ResponseDTO.builder(); itemService.insertItem(itemDTO); log.debug("request add item id= {}",itemDTO.getId()); responseDTOBuilder.code("200").message("success"); return ResponseEntity.ok(responseDTOBuilder.build()); }}package com.study.mstudy.item.dto;import jakarta.validation.constraints.NotBlank;import jakarta.validation.constraints.Positive;import jakarta.validation.constraints.Size;import lombok.Data;@Datapublic class ItemDTO {@NotBlank(message = "ID는 필수 입력 값입니다.")@Size(max=10, message = "ID는 크기 10이하까지 작성가능합니다.")private String id; @Size(max=20, message = "이름은 20자까지 작성가능합니다.")private String name; @Size(max=200, message = "설명은 최대 200자까지 작성가능합니다.")private String description; @Positive private long count; private String regDts; private String updDts;}예제 보고 따라했으나..결과는 이미지 처럼 나오는데 저도 포스트맨으로설정하면 선생님처럼 나오게하고 싶은데 방법이 있을까요?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
ECS Fargate 배포후 504 time-out
안녕하세요, 회사에서 GCP에서 AWS로 인프라를 이관 중에 있습니다. 강의를 들으면서 개발 서버를 이관했고 ECS에 서비스를 작동 중입니다. 하지만, Deploy는 Failed 하고 504 timeout-error가 발생하면서 ALB의 IP들도 모두 unhealthy 상태입니다. 이상한 점은 ECS에서 서비스 로그를 확인하면 스케줄러로 등록해뒀던 작업들이 실행되는 로그를 확인할 수 있습니다. 이로 미루어 볼때 서버는 실행이 되고 있는 상태이나 외부에서 접근이 안되는 것 같아 security-group 과 vpc 설정, 포트도 확인을 해봤었는데요. 그래도 해결을 못하고 있어서 이렇게 질문 남겨 둡니다. ㅠㅠALB Resource map2. ECS service 상태서비스 이벤트 로그 service has started 1 tasks: task ******* Amazon ECS replaced 1 tasks due to an unhealthy status.service registered 1 targets in target-group *****service port 3000 is unhealthy in target-group *** due to (reason Health checks failed).service deployment *** deployment failed: tasks failed to start.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
쿠버네티스 버전에서의 토큰 검사
안녕하세요, 강의 잘 들었습니다.기존에 로그인 후 발급한 토큰을 apigateway에서 검사했었는데 k8s 버전에서는 별도로 토큰을 검사하지 않는 것 같습니다. 로그인하는 의미가 없어질 것 같은데 이부분을 추가하려면 각 서비스에 따로 추가를 하는게 좋을까요?아니면 중앙으로 처리하는 방법이 따로 있을까요?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
NAT gateway 비용 절감을 위한 NAT instance (실습) 수업노트 오타
네트워크 인터페이스 이름을 확인 명령어natstat -i오타 제보합니다!netstat -i
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
비용을 줄이거나 잠시 일시중지 하려면 어떤 서비스를 중지해야하나요?
안녕하세요!한번에 모든 실습을 진행하면 좋겠지만. 섹션 별로 실습을 하고있는데 현재는 Elastic Load Balancer까지 진행하였습니다.그런데 비용이 하루에 1달러 정도씩 나가는거같아서. 이걸 좀 줄이고 싶은데 어떤걸 중지시키면 될까요?혹 중지 시키더라도 다시 재시작 하면 실습을 이어가면서 할 수 있나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
zipkin.jar 윈도우용 파일 제공이 가능할지요?
먼저 좋은 강의 감사합니다. 현재 윈도우 환경에서 강의를 듣고 있습니다. 집킨 파트를 수강하는데 zipkin.jar 를 받을수 있는 방법이 없습니다. 윈도우에서는 강의에서 나온 curl 명령에서 bash 명령어가 먹지도 않고 해서 제대로 다운로드도 안됩니다. 해서 zipkin.jar 파일을 따로 올려주실수는 없으실지 문의 드립니다.