묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
@profile 여러개 설정방법
안녕하세요@Profile 어노테이션 사용할때 여러개의 환경일때 빈을 가져오고싶다하면@Profile(“test1”, “test2”), @Profile(“test1|test2”)위의 예시중에 어떤방식이 맞는건지 그리고 어떻게 가져오는건지 내부를 확인하고싶으면 어디를 확인하면 좋을지 질문드립니다
-
미해결스프링 부트 - 핵심 원리와 활용
HealthProperties 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 지난 강좌들 중에서 @ConfigurationProperties로 외부 설정 파일을 주입받아서 안전한 설정값 객체를 만들 수 있다는 것을 배웠습니다. 그리고 이번 강좌에서 management.endpoint.health 속성 하위에 show-componnents, show-details 속성에 대해서 설명해주셨는데, 실제로 어떤 객체가 생성되는지 궁금해서 살펴보니 HealthEndPointProperties 라는 클래스에 값들이 담기더라구요. 그런데 HealthEndPointProperties는 HealthProperteis를 상속받고 있고 HealthEndPointProperties의 inner class로 HealthProperteis를 상속받은 Group 클래스가 있고 Group 클래스는 HealthEndPointProperties의 필드에 Map의 제네릭으로 들어가있더라구요그러면 여기서 Group 클래스도 프로퍼티를 입력받아서 그 값이 저장되는 객체인가요? 외부 설정을 받을 수 있는 객체라면 저장되는 값들의 예시는 무엇일까요..?
-
미해결스프링 부트 - 핵심 원리와 활용
스프링부트 배포관련 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의 너무 잘 듣고 있습니다기초적인 질문드립니다^^;다수의 개발자가 하나의 웹 프로젝트를 진행하는데 스프링부트는 어떻게 배포해야되나요? 각각 jar 가 생성되니 jar별 port를 넣어서 띄워야 되는지? 아님 모든 개발자의 소스를 합쳐서 jar 를 생성해야되는지? 아님 다른 방식으로 하는지 궁금합니다너무 기초적인 질문이라 ^^;감사합니다
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 적용부터 오류가 납니다.
스프링 부트 섹션2 수업 듣고 있었는데 스프링을 적용하면서 부터 이런 오류가 납니다. 21-Jan-2024 15:54:59.610 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\Program Files\Java\jdk-17\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\NAT Service;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk-17\bin;C:\Users\LNH\AppData\Local\Microsoft\WindowsApps;C:\Users\LNH\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\LNH\AppData\Roaming\npm;C:\Program Files\nodejs;C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.2\bin;;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.2\bin;;C:\Users\LNH;C:\Program Files\Java\jdk-17\bin;;C:\Program Files (x86)\ESTsoft\ALSee\x64;.]21-Jan-2024 15:54:59.864 INFO [main] org.apache.coyote.AbstractProtocol.init 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다.21-Jan-2024 15:54:59.883 INFO [main] org.apache.catalina.startup.Catalina.load [507] 밀리초 내에 서버가 초기화되었습니다.21-Jan-2024 15:54:59.925 INFO [main] org.apache.catalina.core.StandardService.startInternal 서비스 [Catalina]을(를) 시작합니다.21-Jan-2024 15:54:59.926 INFO [main] org.apache.catalina.core.StandardEngine.startInternal 서버 엔진을 시작합니다: [Apache Tomcat/10.1.18]21-Jan-2024 15:54:59.940 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\LNH\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치합니다.21-Jan-2024 15:55:00.118 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\LNH\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치하는 중 오류 발생java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:643)at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1939)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:536)at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1661)at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)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:866)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)at org.apache.catalina.startup.Catalina.start(Catalina.java:795)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)... 이런 오류가 나고 404에러가 뜹니다. 이것저것 시도해봤지만 혼자서는 해결이 안 돼서요 ㅠㅠㅠㅠ
-
미해결스프링 부트 - 핵심 원리와 활용
게이지 관련 질문
[질문 내용]- 재고와 같은 것을 조회하기 위해서는 일반적으로 WAS 서버에 저장하기보다 DB에 저장을 하는것으로 아는데 그러면 게이지 측정할때마다 DB에 요청이 가게 되는건가요??? 실무에서는 어떻게 하는 지 궁금합니다 ! 매초마다 DB에 요청이 가게 되면 성능에도 문제가 갈수있을거같은데 redis와 같은 캐시를 사용하는건지... 어렵네요
-
해결됨스프링 부트 - 핵심 원리와 활용
현재 SpringBoot 3.2.1 부터 @ConfigurationProperties 를 사용한 설정값 바인딩에 이슈가 있는것 같습니다.
안녕하세요! 질문 내용은 제목과 같습니다. 스프링부트 3.2.1 부터 @ConfigurationProperties 가 동작하지 않는것 같습니다. 확실하지 않지만 스텍오버플로우에도 비슷한 이슈가 올라온 상태인것 같습니다. https://stackoverflow.com/questions/77703018/spring-boot-3-2-1-properties-binding 스프링부트 3.2.1 에서 저는 아래와 같은 익셉션이 발생합니다,plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' }token: expired: 20s secret-key: test-key@ToString @AllArgsConstructor @ConfigurationProperties(prefix = "token") public class TokenProperties { private Duration expired; private String secretKey; }@Slf4j @RequiredArgsConstructor @Component @EnableConfigurationProperties(TokenProperties.class) public class TokenConfiguration { private final TokenProperties tokenProperties; @PostConstruct void init() { log.info("tokenProperties = {}", tokenProperties); } }*************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under 'token' to revi1337.configurationpropertiesdemo.property.TokenProperties: Reason: java.lang.IllegalStateException: Unable to create instance for revi1337.configurationpropertiesdemo.property.TokenProperties This may be due to missing parameter name information Action: Update your application's configuration이 상태에서 스프링 버전을 3.1.5 으로 다운그레이드하면 정상동작합니다.plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.4' } 현재 스프링 3.2.1 에서 뭐 바뀐게 있을까요? 제가 무언가를 잘못했을 확률이 대단히 높지만 제가 찾아볼때는 명확한 해결방법이 3.1.5 로 다운그레이드하는 방법밖에 나오지가 않네요.. 확인좀 부탁드리곘습니다
-
미해결스프링 부트 - 핵심 원리와 활용
AppInitV2Spring 오류 및 AppInitV3SpringMvc 미동작 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]"스프링 컨테이너 등록" 강의에서 작성하는 코드HelloConfig, HelloController, AppInitV2Spring 이렇게 작성하게 되는데요. 무료버전의 톰캣 설정 문제가 아니라는 것은 이전 강의 V1까지는 제대로 실행이 완료된 상태입니다.그래서 V1까지는 잘 되었으나 AppInitV2Spring 코드를 작성하고 빌드하면IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 -> caused by LifecycleException: 구성요소[StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다.-> caused by java.lang.NoClassDefFoundError-> ClassNotFoundException 형태로 오류가 뜹니다.자세한 오류는 맨 아래 첨부합니다. 신기한건 기존에 war 파일 형태로 빌드($gradlew build)하여tomcat/libs/webapps에 ROOT.war 로 올리고 톰캣을 별도로 실행한다음에localhost:8080/spring/hello-spring주소를 입력하고 테스트 할 때는 잘뜨니까 미치겠습니다. ..ㅜㅜ 오류가 나니 AppInitV2Spring 내용은 주석처리하고 다음강의인 AppInitV3SpringMvc를 작성했는데요. 해당 onStartup()은 호출부터 안되네요... "AppInitV3SpringMvc.onStartup" 부터 로그가 안찍힙니다..이것 역시 혹시나...? 하고 war파일로 빌드하여 톰캣 webapps에 넣고 직접 톰캣 실행 후 localhost:8080/hello-springlocalhost:8080/spring/hello-spring.. 전부 잘됩니다.... ㅠㅠ MyContainerInitV1.onStartup MyContainerInitV1 c = null MyContainerInitV1 ctx = org.apache.catalina.core.ApplicationContextFacade@5a411614 MyContainerInitV2.onStartup MyContainerInitV2 c = [class hello.container.AppInitV1Servlet, class hello.container.AppInitV2Spring] MyContainerInitV2 ctx = org.apache.catalina.core.ApplicationContextFacade@5a411614 AppInitV1Servlet.onStartup 10-Jan-2024 19:59:26.303 SEVERE [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\oksu\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]을(를) 배치하는 중 오류 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:643) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1939) 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:536) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1661) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) 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:866) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) at org.apache.catalina.startup.Catalina.start(Catalina.java:795) 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:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) Caused by: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:419) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:186) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683) ... 37 more Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext at java.base/java.lang.Class.getDeclaredConstructors0(Native Method) at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373) at java.base/java.lang.Class.getConstructor0(Class.java:3578) at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2754) at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:22) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4850) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171) ... 38 more Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.WebApplicationContext at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165) ... 45 more 10-Jan-2024 19:59:26.312 INFO [main] org.apache.catalina.startup.HostConfig.deployDescriptor 배치 descriptor [C:\Users\oksu\.SmartTomcat\server\server\conf\Catalina\localhost\ROOT.xml]의 배치가 [747] 밀리초 내에 완료되었습니다. 10-Jan-2024 19:59:26.315 INFO [main] org.apache.coyote.AbstractProtocol.start 프로토콜 핸들러 ["http-nio-8080"]을(를) 시작합니다. 10-Jan-2024 19:59:26.491 INFO [main] org.apache.catalina.startup.Catalina.start 서버가 [996] 밀리초 내에 시작되었습니다. http://localhost:8080/ 10-Jan-2024 20:02:05.720 INFO [Thread-1] org.apache.coyote.AbstractProtocol.pause 프로토콜 핸들러 ["http-nio-8080"]을(를) 일시 정지 중 10-Jan-2024 20:02:05.748 INFO [Thread-1] org.apache.catalina.core.StandardService.stopInternal 서비스 [Catalina]을(를) 중지시킵니다. 10-Jan-2024 20:02:05.749 INFO [Thread-1] org.apache.coyote.AbstractProtocol.stop 프로토콜 핸들러 ["http-nio-8080"]을(를) 중지시킵니다. 10-Jan-2024 20:02:05.755 INFO [Thread-1] org.apache.coyote.AbstractProtocol.destroy 프로토콜 핸들러 ["http-nio-8080"]을(를) 소멸시킵니다.
-
미해결스프링 부트 - 핵심 원리와 활용
[공유]허용되지 않는 메서드 (http://localhost:8080/hello-servlet)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로그래밍 방식으로 서블릿 등록 후혹시 http://localhost:8080/hello-servlet 호출 할때 허용되지 않는 메서드 나오시는분들은 HelloServlet 에 super.service(req,resp); 호출 되고 있는지 확인 해보세요..!
-
해결됨스프링 부트 - 핵심 원리와 활용
autoconfiguration 관련 질문
[질문 내용]강의 예제에서 스프링부트에서 DBConfig 클래스 생성해서 @Configuration을 달고 안에서 관련 빈들을 스프링컨테이너에 등록을 하니 기존 자동구성에 의해 등록되는 빈은 이미 개발자가 등록한 빈에 의해 따로 추가적으로 등록이 안되는 걸로 이해했습니다. 그러면 이러한 빈을 등록하는 순서가 추가적인 설정이 없다면 항상 개발자가 등록한 빈부터 등록하고 이후에 스프링 부트의 자동 구성에 의한 빈등록이 일어나는건가요?? starter와 같은 라이브러리를 gradle에 사용해서 추가해주면 자동으로 수많은 빈들이 생성해서 스프링 컨테이너에 등록되는 걸로 이해했습니다. 해당 라이브러리 내에 있는 수많은 빈들 중에 사용을 원하지 않는 것들도 있을텐데, 그러한 것도 모두 등록이 되는건가요?? 아니면 사용을 안하는 빈들은 따로 등록이 되지 않는 기능들도 스프링 부트에 있나요??감사합니다 !
-
미해결스프링 부트 - 핵심 원리와 활용
실전 스프링부트 강의를 수강하기전에
커리큘럼에 있는 전 강의들을 전부 수강하는게 필수일까요 ...ㅠㅠ? 시간이 애매해서 스프링부트부터 수강하고 나중에 스프링 보충하는 식으로 하고 싶은데 어떻게 해야할지 도저히 감이 잡히질 않습니다..
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
6.3 강의 질문.
안녕하세요6.3 harbor를 configuration에 등록하는 부분에서job부분을- job_name: harbormetrics_path: /metricsrelabel_configs:- source_labels:- __address__action: keeptarget_label: __address__regex: (.+?)(\\:\\d+)?replacement: $1 위와 같이 kube-proxy처럼 등록해보려고 했는데 target에는 내용이 보이질 않아서요.혹시 안되는 이유를 알 수 있을까요?(harbor의 address label이 IP:port여서 replacement에는 포트는 따로 쓰진않았습니다.)
-
미해결스프링 부트 - 핵심 원리와 활용
window gradlew build 에러
The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files\Java\jdk-11.0.13\bin\java.exe에러위와 같은 에러가 발생합니다. 하지만 사진에서 보듯 JAVA_HOME은 jdk17로 설정이 되어있고,환경 변수 설정이 제대로 동작하고 있음을 확인할 수 있습니다. 그러나 gradlew build를 진행하면 변경전 jdk11을 계속 실행하려고 해서 오류가 발생합니다. settings -> gradle 도 17로 잘 설정되어있습니다.Project Structure -> Project에 들어가도 잘 설정되어있습니다. 삽질 중인데... 도와주시면 감사하겠습니다 === 질문을 하고 한번더 실행해봤는데 성공하였습니다.Q) 왜 성공했는지 알 수 있을까요? cache 떄문에 그런것이었는지.. 아니면 환경변수 변경이 적용되기까지 시간이 걸리는 것인지요? 이 질문은 다른 분들을 위해 남겨두겠습니다!
-
미해결스프링 부트 - 핵심 원리와 활용
순수 라이브러리 만들기에서 memory.jar의 의존성 문제
순수 라이브러리 만들기에서 memory.jar를 외부 라이브러리로 만들때, 여기서 참조된 라이브러리가 jar파일에 포함되지 않을 것 같은데요.만약 memory.jar안에서 사용된 라이브러리가 참조한 프로젝트에 없을때 참조 오류가 발생할텐데…memory.jar안에 참조로 사용된 라이브러리를 포함하려면 어떻게 해야 할까요?저의 경우 프로젝트를 작은 단위로 나누어 프로젝트로 구성하고 autoconfiguration을 적용하려고 하는데 .. 참조하는 프로젝트에서 사용하지 않는 참조를 사용하는 경우가 다수 발생합니다. 좀더 자세한 상황을 첨부 합니다. memory.jar 에서 이 프로젝트에서만 사용하는 inflearn.jar를 참고하고 있습니다. 이 경우 memory.jar를 패키징하면 spring에서 사용하는 기술을 사용하지 않기 때문에 jar에 jar를 포함하지 못하고 fat jar로 빌드하지 않으면 inflearn.jar가 포함되지 않을 텐데요.그렇게 되면 memory.jar를 참조하는 프로젝트에서 inflearn.jar가 없어 오류가 발생할 것 같습니다. 또한, 그 반대로 위 문제 때문에 fat jar로 패키징하는 경우 참조하는 쪽의 라이브러리와 같은 라이브러리로 사용으로 충돌이 발생하는 문제는 없는지요..? 죄송하게도 제가 두 경우를 충분하게 테스트 후 질문을 드리려고 했으나 샘플을 구성하고 여러가지 시도 후 질문 하려면 너무 많이 시간이 걸릴 것 같아 (제가 만들 샘플의 해답이 정답인지도 확인이 어려움) 먼저 질문 올리고 제 생각처럼 실제 오류가 발생하는지는 테스트 하고 문제를 해결할 수 있는지도 같이 보도록 하겠습니다. 감사합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
application.properties에서 spring.config.activate.on-profile에 빨간줄
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 이런 식으로 뜨는데 뭔가 설정이 잘못된 건가요?ㅠㅠ
-
미해결스프링 부트 - 핵심 원리와 활용
IntelliJ무료버전 톰캣 실행이 안됩니다.
Smart Tomcat을 사용해서 실행하는데java.io.FileNotFoundException: C:\Users\...\smart-tomcat\conf\server.xml (지정된 파일을 찾을 수 없습니다) 발생합니다.경로가 Catalina base에 자동으로 채워지는 부분이었어요..어떻게해야될까요?
-
미해결스프링 부트 - 핵심 원리와 활용
HTTP 방식의 actuator가 메트릭을 수집하는 방법
Actuator 강의를 수강하고 추가적으로 공부하다가 생긴 의문점입니다. Actuator는 크게 HTTP와 JMX 방식을 통해 모니터링을 제공한다고 알고 있습니다. 스프링부트 공식문서를 읽다보니, JMX 방식의 경우에는 MBean이라는 객체를 통해특정 메트릭들에 대한 정보를 노출 시킨다는 사실을 알았습니다.(https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.jmx) 그러면 HTTP 방식으로 노출된 메트릭들의 경우 어떤 방식으로 데이터가 수집되는지에 대한 의문이 생겨 질문드립니다. 뇌피셜로는 MBean으로부터 동일하게 정보를 가져와서 적절히 추상화 시킨 후 HTTP로 노출시키는게 아닐까? 라는 생각이 드는데 공식적인 레퍼런스를 아직은 찾지 못했습니다. 해당 질문에 대한 답변 또는 참고할만한 레퍼런스가 있다면 답변을 부탁드립니다.좋은강의 항상 감사드립니다.
-
미해결스프링 부트 - 핵심 원리와 활용
코드 소스
[질문 내용]수업 자료 코드 소스는 어디서 받을수있나요??
-
해결됨실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
ova 이미지 m-k8s-1.24.4 이미지 root 계정 암호 문의
[질문 하기]OVA 이미지로 실습하기 위해 이미지 다운로드 후 superputty에서 Sessions(k8s).XML 파일 session Import하여 접속하였으나, root 계정에 대해 password를 몰라서 접속이 안됩니다. 수업에서는 자동 접속되는데, 정보 관련 자료를 찾을 수 없어서 문의 드려요.
-
미해결스프링 부트 - 핵심 원리와 활용
오타 수정
외부설정과 프로필 2 pdf 파일 17 page에서 max-conneciton -> max-connection 오타 수정 필요해 보입니다 :)
-
해결됨스프링 부트 - 핵심 원리와 활용
프로메테우스가 요청을 보내고 서버에서 406에러를 반환합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================실습을 위해서 영상을 따라해서 프로메테우스를 실행시켰는데status가 down으로 뜨고 406을 반환한다는 내용이 잇었습니다. 로그를 확인해 보니resolved [org.springframework.web.httpmediatypenotacceptableexception: no acceptable representation]이렇게 뜨는데 왜 그러는 건가요 ㅠㅠ/actuactor/prometheus url로 접속시 데이터는 잘 반환하는데 프로메테우스에서 해석할 수 없는 형태로 포멧되고 있는 걸까요..? 영한님 영상과 비교했을 때 크게 다른 부분은 보이지 않았던 것 같습니다. 요청은 1초마다 잘 가는데 뭔가 문제가 있는 것 같습니다. yml은 내용 그대로 복사해서 아래처럼 작성했습니다..!global: scrape_interval: 15s evaluation_interval: 15salerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093rule_files:scrape_configs: - job_name: "prometheus" static_configs: - targets: [ "localhost:9090" ] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [ 'localhost:8080']