묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
AppInitV3SpringMvc
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AppInitV3SpringMvc 클래스 구현한 내용이 web.xml에서 DIspatcherServlet 설정하고 동일한거죠??
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
Mac m3, vmware fusion k8s, prometheus 설치 문제
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기] 안녕하세요 강사님 mac m3 사용중이고 퓨전에 vagarant up으로 설치 후 helm으로 프로메테우스를 설치한 뒤 ui에 접속해서 up으로 상태를 확인하다가 문제가 발생해서 공유드립니다. 해결 방법 알 수 있을까요?calico-node 1개가 정상적으로 안 올라옴Readiness probe가 실패했다고 나오네요 어떤 문제일까요?Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refusedprometheus-kube-state-metric pod가 정상적으로 안올라옴 -> 인증서 유효기간이 타임존이 잘못 설정되어 생기는 문제로 보입니다. 제가 12-25일 18시 KST로 설치를 했는데,, 12-25일 18시 UTC 부터 사용이 가능해보입니다 이건 내일 다시 하면 유효기간이 맞아서 될 것 같기도 합니다.Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "c96d9675d52942e0290ac2843c8113dfff43b53b756ce7c5cac9212d36482059": plugin type="calico" failed (add): error getting ClusterInformation: Get "https://10.96.0.1:443/apis/crd.projectcalico.org/v1/clusterinformations/default": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2024-12-25T18:37:35+09:00 is before 2024-12-25T18:10:21Z 프로메테우스 ui에서 다음과 같은 warning이 뜹니다Warning: Error fetching server time: Detected 32191.573999881744 seconds time difference between your browser and the server. Prometheus relies on accurate time and time drift might cause unexpected query results.
-
미해결스프링 부트 - 핵심 원리와 활용
실시간으로 로거 레벨을 바꾸는 기능
[질문 내용]1. 실시간으로 로그 레벨을 바꾸는 게 굉장히 신기한데 어떤 원리로 저게 가능한건가요? 강의에 나온 것처럼 POST 방식으로 보내서 로그 레벨 변경이 가능하다면 보안에 취약할 수도 있을 것 같다는 생각이 드는데(서비스를 운영하는 입장에서는 원치 않은 동작일 수도 있음) 보안을 강화하는 방법은 어떤 것이 있을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
actuator 경로 질문
만약 컨트롤러를 설정할 때 actuator 경로를 쓰고 싶다면 어떻게 해야되는건가요?제가 테스트를 해보니 @Getmapping(/actuator) 했을 때 제가 설정한 컨트롤러를 타지 않고, 강의에서 알려주시는 액츄에이터 웹이 나오는 것을 확인했습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
커넥션 팬딩 질문
이런 팬딩 상황이 많은 사용자 접근으로 인해 흔히 서버가 터졌다는 상황인건가요??
-
미해결스프링 부트 - 핵심 원리와 활용
스프링부트가 설정파일을 인식하는 방법(application.properties 파일이름)
[application.properties 파일이름]1. 해당 파일 이름을 스프링 부트가 어떻게 설정 파일인지 알고서 설정하는 것인가요? 설정 파일명을 변경하고 싶으면 어떻게 해야하는지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
MyContainerInitV1 실행 시 오류
04-Dec-2024 22:31:59.700 심각 [main] org.apache.catalina.startup.ContextConfig.processServletContainerInitializers 이름이 []인 컨텍스트를 위한 ServletContainerInitializer들을 탐지하지 못했습니다. java.io.IOException: java.lang.ClassNotFoundException: hello.container.MyContainerInitV1 at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:234) at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:202) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1756) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1256) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:961) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:290) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4311) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:566) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:653) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:599) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1853) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:494) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:385) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1593) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:267) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:743) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1170) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:866) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) at org.apache.catalina.startup.Catalina.start(Catalina.java:755) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:470) Caused by: java.lang.ClassNotFoundException: hello.container.MyContainerInitV1 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1212) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1043) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:231) ... 45 more 04-Dec-2024 22:31:59.702 심각 [main] org.apache.catalina.startup.ContextConfig.configureStart 이전 오류(들)로 인하여, 이 애플리케이션이 가용하지 않은 것으로 표시합니다. 04-Dec-2024 22:31:59.720 심각 [main] org.apache.catalina.core.StandardContext.startInternal 하나 이상의 구성요소(들)이, 해당 컨텍스트가 올바로 설정되지 않았다고 표시했습니다. 04-Dec-2024 22:31:59.728 심각 [main] org.apache.catalina.core.StandardContext.startInternal 이전 오류들로 인해 컨텍스트 []의 시작이 실패했습니다.MyContainerInitV1 클래스와 resources 파일 아래에 정확하게 파일을 생성하였는데 다음과 같은 오류가 발생합니다. 어떻게 해결할 수 있는지 확인해주시면 감사하겠습니다 ㅠㅠ
-
미해결스프링 부트 - 핵심 원리와 활용
내부 클래스 static 안할 시 오류
[ImportSelectorTest 시 StaticConfig 내부 클래스 static 사용이유]안녕하세요. 테스트할 때 StaticConfig 내부 클래스에 static 키워드를 붙이지 않고 테스트를 하니 아래와 같은 오류가 발생하는데요. 이유가 무엇인가요?Error creating bean with name 'importSelectorTest.StaticConfig': Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.selector.ImportSelectorTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'importSelectorTest.StaticConfig': Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.selector.ImportSelectorTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
-
미해결스프링 부트 - 핵심 원리와 활용
6 자동구성 부분
plugins { id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' id 'java' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() }위와 같이 build.gradle을 구성하고 강의대로 따라가고 있는데 여기에 있는 외부라이브러리 (롬복,테스트라이브러리)가 인식이 되지 않고 있습니다. 롬복까지는 수동으로 다운로드해서 진행하고 있는데 계속 이러면 부트를 사용하는 의미가 없는것 같아서 문제를 해결하고 싶습니다!
-
미해결스프링 부트 - 핵심 원리와 활용
WAR, JAR 차이점 (구성하는 파일에 대해)
안녕하세요. 강사님 05:00 분에 WAR를 설명하십니다.WAR : 정적리소스(HTML) + 클래스파일 이라고 설명하십니다.JAR 도 WAR와 마찬가지로 위와같이 HTML, 클래스파일을 갖을 텐데요. 강사님께서는 HTML을 WAR설명때만 언급을 하십니다. WAR 와 JAR가 갖는 파일들에 대해 차이점을 구별하지 못하고 있습니다. 단순 내부구조가 복잡하거나 단순한 걸로 구별을 해야할까요?
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 컨테이너 등록 스프링 라이브러리 오류
가이드대로 스프링 mvc를 추가하는데 추가가 되지 않아서 이후 진행이 안되고 있습니다. 코드를 작성하고 저장하면 자동으로 라이브러리가 생성되는 방식이 아닌가요? 어떻게 해야하는지 알려주시면 감사하겠습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 부트 현재 버전 말고 다른 버전 확인하는 법
[질문 내용]스프링 부트 docs에서 현재 스프링 부트 버전에 대한 스프링이 관리하는 외부 라이브러리들의 버전을 확인할 수 있었습니다.그런데 스프링 부트나 스프링 프레임워크에서 현재 버전이 아닌 이전 버전에서 스프링이 관리하는 외부 라이브러리들의 버전을 확인하고 싶을 땐 어떻게 해야 하나요?
-
미해결스프링 부트 - 핵심 원리와 활용
서블릿 컨테이너, 스프링 컨테이너 질문
[질문 내용]안녕하세요. 서블릿 컨테이너와 스프링 컨테이너가 헷갈립니다.서블릿 컨테이너 위에서 스프링 컨테이너가 생성되고, 그 사이에 디스패처 서블릿이 스프링 MVC의 컨트롤러들을 매핑해주는 것이 맞나요? 스프링 컨테이너를 사용하지 않았을 땐, 서블릿을 개별적으로 등록하는 것만으로도 웹으로서 작동할 수 있는 것이 맞나요? 서블릿 초기화와 애플리케이션 초기화의 영역을 잘 모르겠습니다. 서블릿이 작동할 때 서블릿 초기화를 진행하게 되고, 그 이후에 애플리케이션 초기화가 진행되는 것으로 알고 있습니다. 그런데 이 두 영역을 왜 나눴는지 모르겠습니다. 예전에 공부할 때 서블릿 설정은 애플리케이션 전체 영역 범위 설정을 하는 것이고, 애플리케이션은 개별적인 영역을 설정하는 것으로 기억하고 있는데 제가 알고 있는 개념이 맞을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
Tomcat EE
[TOMCAT EE는 뭔가요?]질문 내용 그대로 입니다!
-
미해결스프링 부트 - 핵심 원리와 활용
편리한 부트 클래스 만들기 챕터에 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MySpringBootMain 클래스의 main 메서드에서 MySpringApplication.run()을 호출하면서 인자로 MySpringBootMain을 넘깁니다. 이 자리는 configClass인데, MySpringBootMain에는 @MySpringBootApplication 어노테이션만 붙어있고, Bean이나 기타 설정에 대한 내용은 전혀 없습니다. 또한 @Configuration 어노테이션도 없습니다. 그렇다면 @MySpringBootApplication을 통해서 Configuration 클래스의 역할을 하는 것 같은데 이 부분이 잘 이해가 되지 않습니다. 아마도 @ComponentScan 어노테이션이 MySpringBootMain가 configClass의 역할을 하도록 해주는 것 같은데 어떤 원리인지 잘 모르겠습니다. EmbedTomcatSpringMain를 사용할 때는 HelloConfig.class를 넘기는데, 이때는 @Configuration이 붙어있으니까 이해가 됩니다. @ComponentScan이 붙어있으면 해당 클래스의 패키지의 모든 컴포넌트를 읽는다고 하는데, 여기에 뭔가 생략된 설명이 있는 것 같은데 잘 모르겠습니다. 질문이 중언부언해서 죄송합니다!
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
Apple Silicon에서 버츄얼 박스 세팅
brew install --cask ./virtualbox-v7.0.18/virtualbox.rb위 명령 실행했을 때 아래와 같은 에러가 발생하는데요! 제 맥북으로는 버츄얼 박스 사용 불가능한 걸까요?
-
해결됨스프링 부트 - 핵심 원리와 활용
스프링 레거시에서 프로메테우스를 통한 메트릭 수집
강사님 안녕하세요. 만약 스프링부트가 아닌 스프링 레거시 프로젝트와 같은경우cpu 사용량확인 및 메모리 확인 엔드포인트, 메트릭api 를 직접 구현해서 프로메테우스에서 수집하도록 해야할까요? 스프링 레거시프로젝트에서는 Actuator 라이브러리를 못쓰는걸로 알거든요
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
prometheus 설치 방법 문의드립니다.
구글링해서 보면 prometheus를 설치하는 방법이 여러개 있는 것 같은데요, manifest 파일로? https://github.com/prometheus-operator/kube-prometheus/tree/main helm의 prometheus-community로?https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack bitnami의 kube-prometheus 차트로?강의에서 알려주신 edu/promethesu? 각각 설치되는 내용이 다른것인지?? 장단점이나 주의해야하는 부분이 있을지도 궁금합니다!
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
habor metric 노출 관련 질문
위 링크에 접속할 때 metric을 확인할 수 있었지만, 도대체 어떤 요소가 habor에 대한 metric을 노출 시켜주는지 이해가 가질 않습니다. 또한 꼭 harbor가 아니더라도 웹을 배포하고 url 뒤에 /metrics를 붙이면 메트릭을 확인할 수 있는것인가요?
-
미해결스프링 부트 - 핵심 원리와 활용
5장 자동구성) 자동 구성이 내부에서 컴포넌트 스캔을 사용하면 안되는 이유
자동 구성이 내부에서 컴포넌트 스캔을 사용하면 안되는 이유가 무엇인가요? 컴포넌트 스캔을 사용하면 패키지 구조에 의존적이게 돼서 그런걸까요?