묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 부트 - 핵심 원리와 활용
autoconfiguration 관련 질문
[질문 내용]강의 예제에서 스프링부트에서 DBConfig 클래스 생성해서 @Configuration을 달고 안에서 관련 빈들을 스프링컨테이너에 등록을 하니 기존 자동구성에 의해 등록되는 빈은 이미 개발자가 등록한 빈에 의해 따로 추가적으로 등록이 안되는 걸로 이해했습니다. 그러면 이러한 빈을 등록하는 순서가 추가적인 설정이 없다면 항상 개발자가 등록한 빈부터 등록하고 이후에 스프링 부트의 자동 구성에 의한 빈등록이 일어나는건가요?? starter와 같은 라이브러리를 gradle에 사용해서 추가해주면 자동으로 수많은 빈들이 생성해서 스프링 컨테이너에 등록되는 걸로 이해했습니다. 해당 라이브러리 내에 있는 수많은 빈들 중에 사용을 원하지 않는 것들도 있을텐데, 그러한 것도 모두 등록이 되는건가요?? 아니면 사용을 안하는 빈들은 따로 등록이 되지 않는 기능들도 스프링 부트에 있나요??감사합니다 !
-
미해결스프링 부트 - 핵심 원리와 활용
실전 스프링부트 강의를 수강하기전에
커리큘럼에 있는 전 강의들을 전부 수강하는게 필수일까요 ...ㅠㅠ? 시간이 애매해서 스프링부트부터 수강하고 나중에 스프링 보충하는 식으로 하고 싶은데 어떻게 해야할지 도저히 감이 잡히질 않습니다..
-
미해결스프링 부트 - 핵심 원리와 활용
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로 노출시키는게 아닐까? 라는 생각이 드는데 공식적인 레퍼런스를 아직은 찾지 못했습니다. 해당 질문에 대한 답변 또는 참고할만한 레퍼런스가 있다면 답변을 부탁드립니다.좋은강의 항상 감사드립니다.
-
미해결스프링 부트 - 핵심 원리와 활용
코드 소스
[질문 내용]수업 자료 코드 소스는 어디서 받을수있나요??
-
미해결스프링 부트 - 핵심 원리와 활용
오타 수정
외부설정과 프로필 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']
-
미해결스프링 부트 - 핵심 원리와 활용
promethus가 추가 작성한 spring-actuator를 인식 못해요
몇 일 전에 인식 안된다고 했었던 수강생입니다.다름이 아니라 당시, 회사일로 확인 못하다가 방금 확인했는데도 spring-actuator라는 job-name을 인식을 못하네요. 다시 한번 코드 첨부 드립니다. application.yml management: server: port: 8081 info: java: enabled: true os: enabled: true env: enabled: true endpoint: shutdown: enabled: true health: show-details: always endpoints: web: exposure: include: prometheus info: app: name: hello-actuator company: house server: tomcat: mbeanregistry: enabled: true servlet: encoding: charset: UTF-8 enabled: true force: true port: 8081 logging: level: web: debug prometheus.ymlglobal: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_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:8081' ] build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' runtimeOnly 'io.micrometer:micrometer-registry-prometheus' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 현재는 window 환경에서 실행 중인데도 안되네요..ㅠㅠㅠ prometheus 버전 2.48.1 버전과 혹시 싶어 2.45 버전 둘 다 써봤는데도 안돼요.. 이런거에 경험해보신 분 있을까요? 더 이상 진도를 못나가고 있어요.. 😭😭
-
해결됨스프링 부트 - 핵심 원리와 활용
@Value 검증 적용 관련 질문드립니다.
@Value를 적용한 필드에 @Min(1) 과 같은 검증을 적용할 수는 없을까요?아래 소스코드처럼 작성해 MyDataSourceValueConfig를 빈으로 등록하면 @Validated가 동작해 검증될 줄 알았는데 적용되지 않습니다. 원인이 무엇인지 궁금합니다...(코드 내 $가 포함되면 이상하게 동작해,$를 #로 변경하였습니다.)package hello.datasource; import hello.datasource.MyDataSource; import jakarta.validation.constraints.Min; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.validation.annotation.Validated; import java.time.Duration; import java.util.List; @Slf4j @Configuration @Validated public class MyDataSourceValueConfig { @Value(“#{my.datasource.url}") private String url; @Value(“#{my.datasource.username}") private String username; @Value(“#{my.datasource.password}") private String password; @Value(“#{my.datasource.etc.max-connection}") @Min(1) private int maxConnection; @Value(“#{my.datasource.etc.timeout}") private Duration timeout; @Value(“#{my.datasource.etc.options}") private List<String> options; @Bean @Validated public MyDataSource myDataSource1() { return new MyDataSource(url, username, password, maxConnection, timeout, options); } @Bean public MyDataSource myDataSource2( @Value(“#{my.datasource.url}") String url, @Value(“#{my.datasource.username}") String username, @Value(“#{my.datasource.password}") String password, @Value(“#{my.datasource.etc.max-connection}") int maxConnection, @Value(“#{my.datasource.etc.timeout}") Duration timeout, @Value(“#{my.datasource.etc.options}") List<String> options ) { return new MyDataSource(url, username, password, maxConnection, timeout, options); } }
-
미해결스프링 부트 - 핵심 원리와 활용
프로메테우스 configuration, target에 springboot-actuator가 인식되지 않습니다.
강의를 따라하는 중 localhost:9090/config를 들어가면global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15s alerting: alertmanagers: - follow_redirects: true enable_http2: true scheme: http timeout: 10s api_version: v2 static_configs: - targets: [] scrape_configs: - job_name: prometheus honor_timestamps: true track_timestamps_staleness: false scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http follow_redirects: true enable_http2: true static_configs: - targets: - localhost:9090로 나옵니다.추가적으로 강의를 따라하고 있는 yml파일과 prometheus.yml 파일도 첨부하겠습니다. # actuator 설정 management: server: port: 8080 info: java: enabled: true os: enabled: true env: enabled: true endpoint: shutdown: enabled: true # shutdown 기능 킴 health: show-details: always endpoints: web: exposure: include: "*" info: app: name: hello-actuator company: house server: tomcat: mbeanregistry: enabled: true servlet: encoding: charset: UTF-8 enabled: true force: true logging: level: h.actuator.controller: debug 프로메테우스.ymlglobal: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_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']입니다. 혹시 제가 잘못 따라간 부분이 있을까요?마지막으로 mac os m1 사용 중이고, spring boot 3.2 jdk 17 버전입니다!
-
미해결스프링 부트 - 핵심 원리와 활용
향후 강의 계획 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시 시스템 이나 서비스 설계에 관한 강의는 계획이 없으신지 궁금합니다^^
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
metric-server 이중화로 인한 grafana 대시보드 이중 출력 문의
[질문 하기]안녕하세요 해당 실습을 진행하면서 metric-server가 이중화되어 파드가 2개 구성되어있는데, Grafana 메트릭을 검색할 경우 대시보드가 2개가 출력되고 있습니다.(HPA 설정으로 인해 이중화 구성) 혹시 위와 같은 경우 1개만 출력하고 싶은데, 특정 파드에 대한 label을 명시하는 방법말고 다른 방법이 있을까요?## PromQL 제외 sum(kube_deployment_spec_replicas{deployment="metric-server", instance="172.31.41.80:8080"})감사합니다.
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
Grafana PromQL 관련 질문
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]안녕하세요 실습으로 배우는 프로메테우스에 이어 그라파나도 수강하고 있습니다. 실무에서 프로메테우스 PromQL을 사용할때 해당 데이터를 참고하여 가공(relabel, join 등)을 하고싶은데 각 exporter 공식홈페이지에서 제공하는 Github Docs에 있는부분도 있고 없는 exporter도 있습니다.질문이 모호할수 있지만 혹시 그라파나 PromQL을 작성할때 기본적인 exporter(kube-metric, node-exporter 등) 참고할만한 사이트나 문서나 팁(?)이 있을까요? 예를들어 제가 CPU에 대한 Request, Limit을 조정하여 60% 이상일 경우에 Grafana에 알림을 표기하고 싶은데, 해당 PromQL을 찾기까지 시간이 오래 소모되어 여쭤보고자 하였습니다. 감사합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
라이브러리 스프링 빈 등록시 타 라이브러 사용 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 표제와 같이 라이브러리 등록에 관해 궁금한점이 있어서 문의 드립니다.예제에서 메모리 기능 관련하여 기능을 구현후에 라이브러리로 만든 파일을 사용자가 import하는 예시를 들어주셨는데요. 혹시 협업 과정에서 누군가가 메모리 기능을 구현해야 하는데 해당 메모리 기능 중에서 import 될 프로젝트에서 특정 기능을 불러와서 사용해야 한다면 어떠한 방법으로 접근가능한가요??Main 프로젝트의 기능(특정 데이터 또는 서비스 호출)을 메모리 라이브러리에서 사용하고(Main프로젝트 없이) 별도로 개발 후(메모리 라이브러리)에 Main 프로젝트에서 해당 라이브리를 사용하고 싶은 케이스인데 가능한가요? 감사합니다^^
-
미해결스프링 부트 - 핵심 원리와 활용
강의자료 오탈자 제보입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]선생님 좋은 강의 항상 감사합니다.!스프링 부트 라이브러리 강의 듣던 도중에 오탈자가 있는것 같아서 제보 드립니다.4. 스프링 부트 스타터와 라이브러리 관리.pdf 의 5페이지.버전정보 - BOM 의 설명 중, "id 'org.springframework.boot' version '3.0.2' : 여기에저징된스프링부트버전참고" 에서'저징된' 이라는 오탈자가 있습니다. 아마도 설명 흐름 상'지정된' 이 오탈 처리 된 것 같습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
build.gradle 변경
강의를 듣던 중 프로젝트 설정이 사진처럼 바뀌면서 실행이 되지 않습니다 이 문제는 어떻게 해결할 수 있을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
spring boot 강의
스프링부트 강의를 먼저 듣는게 좋을까요스프링 고급편 먼저 듣는게 좋을까요??