(base) ryanchoi@Byungsoos-MBP 2.4 % sh scripts/vf_net_create_ vnet2.sh Library Loaded vmnetcfg: vnlvnetcfgadd - successfully added key:value - VNET_7_DHCP:no Library Loaded vmnetcfg: vnlvnetcfgadd - successfully added key:value - VNET_7_HOSTONLY_SUBNET:192.168.1.0 Library Loaded vmnetcfg: vnlvnetcfgadd - successfully added key:value - VNET_7_HOSTONLY_NETMASK:255.255.255.0 Library Loaded vmnetcfg: vnlvnetcfgadd - successfully added key:value - VNET_7_NAT:yes Library Loaded vmnetcfg: vnlvnetcfgadd - successfully added key:value - VNET_7_VIRTUAL_ADAPTER:yes Stopped DHCP service on vmnet1 Stopped DHCP service on vmnet8 Stopped NAT service on vmnet8 Stopped all configured services on all networks Backed up existing network settings to backup file "/tmp/vmware.UhNzLO" Restored network settings Stopped all configured services on all networks Enabled hostonly virtual adapter on vmnet1 Started DHCP service on vmnet1 Failed to start NAT service on vmnet7 Enabled hostonly virtual adapter on vmnet7 Started NAT service on vmnet8 Enabled hostonly virtual adapter on vmnet8 Started DHCP service on vmnet8 Failed to start some/all services 알려주신 대로, vmnet7 이 설치가 된 건 확인이 되었지만, Failed to start some/all services 이런 에러가 떠도 문제가 없는 걸까요? 감사합니다.
(base) ryanchoi@Byungsoos-MBP 2.4 % launchctl-load-vmware-utility Load failed: 5: Input/output error Try running launchctl bootstrap as root for richer errors. 이런 에러가 발생해서, sudo 를 써봐도 해결이 안되는데, 혹시 어떻게 해결할 수 있을까요? ***** 추가 (base) ryanchoi@Byungsoos-MBP k8s % vagrant up Bringing machine 'cp-k8s-1.30.0' up with 'vmware_desktop' provider... Bringing machine 'w1-k8s-1.30.0' up with 'vmware_desktop' provider... Bringing machine 'w2-k8s-1.30.0' up with 'vmware_desktop' provider... Bringing machine 'w3-k8s-1.30.0' up with 'vmware_desktop' provider... ==> cp-k8s-1.30.0: Box 'sysnet4admin/Ubuntu-k8s' could not be found. Attempting to find and install... cp-k8s-1.30.0: Box Provider: vmware_desktop, vmware_fusion, vmware_workstation cp-k8s-1.30.0: Box Version: >= 0 ==> cp-k8s-1.30.0: Loading metadata for box 'sysnet4admin/Ubuntu-k8s' cp-k8s-1.30.0: URL: https://vagrantcloud.com/api/v2/vagrant/sysnet4admin/Ubuntu-k8s ==> cp-k8s-1.30.0: Adding box 'sysnet4admin/Ubuntu-k8s' (v0.8.5) for provider: vmware_desktop (arm64) cp-k8s-1.30.0: Downloading: https://vagrantcloud.com/sysnet4admin/boxes/Ubuntu-k8s/versions/0.8.5/providers/vmware_desktop/arm64/vagrant.box Progress: 93% (Rate: 13.2M/s, Estimated time remaining: 0:00:04)^R ==> cp-k8s-1.30.0: Successfully added box 'sysnet4admin/Ubuntu-k8s' (v0.8.5) for 'vmware_desktop (arm64)'! ==> cp-k8s-1.30.0: Cloning VMware VM: 'sysnet4admin/Ubuntu-k8s'. This can take some time... ==> cp-k8s-1.30.0: Checking if box 'sysnet4admin/Ubuntu-k8s' version '0.8.5' is up to date... ==> cp-k8s-1.30.0: Verifying vmnet devices are healthy... The VMware "vmnet" devices are failing to start. The most common reason for this is collisions with existing network services. For example, if a hostonly network space collides with another hostonly network (such as with VirtualBox), it will fail to start. Likewise, if forwarded ports collide with other listening ports, it will fail to start. Vagrant does its best to fix these issues, but in some cases it cannot determine the root cause of these failures. Please verify you have no other colliding network services running. As a last resort, restarting your computer often fixes this issue. 이런 에러가 뜨는 건 launchctl-load-vmware-utility 이 부분 명령어가 제대로 처리가 안되어서 그런거죠?
rate는 초당 평균 증가율 (평균 변화율) irate 는 초당 순간 증가율을 나타낸다고 하네요 (미분계수) 12시 ~ 12시 5분 사이 에 얼마나 많은 변화가 있었는지 보고싶으면 rate 딱 정확히 12시 3분이 된 시점 에서 변화율을 보고싶으면 irate를 사용하면 되겠습니다.
public interface AppInit { void onStartup(ServletContext servletContext); } /** * 서블릿 컨테이너 모방 * 프로그래밍 방식을 서블릿 컨테이너에 등록 */ public class AppInitV1Servlet implements AppInit { @Override public void onStartup(ServletContext servletContext) { System.out.println("AppInitV1Servlet.onStartup"); // 순수 서블릿 코드 등록 ServletRegistration.Dynamic helloServlet = servletContext.addServlet("helloServlet", new HelloServlet()); helloServlet.addMapping("/hello-servlet"); } } /** * 서블릿 그 자체 * 애플리케이션 초기화 */ public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); resp.getWriter().println("hello servlet!"); } } hello.container.MyContainerInitV1 hello.container.MyContainerInitV2 이런식으로 강의를 따라 서블릿에 매핑 정보를 등록했는데, http://localhost:8080/hello-servlet 을 하게 되면 404 에러가 발생합니다. 어디서 문제가 생긴걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 1. 멀티스레드에 안전하게 처리하기 위해 Atomic.. 을 사용하셨는데, 실무에서는 데이터베이스같은곳에서 정보를 받아와야 하는데, 프로메테우스에서 데이터베이스의 테이블을 접근중일때 READ가 발생할텐데, 현재 유저한테 서비스되는 클라이언트단에서 READ, WRITE가 발생할때 lock이 발생하는 경우는 없나요? 2. 1번 질문과 이어서.. 아래와 같은 곳에서 정보를 수집하는데 동시성/데드락/경합 문제가 발생하지는 않나요? 아래에서 정보를 가져올때는 어떻게 하는게 best practice인지 궁금합니다 - State DB(Mysql, postgresql, mongodb) - InMemory DB(Redis) - Kafka Topics 3. 현재는 설치형으로 강의를 진행해주셨는데, docker나 k8s 환경에서 수집을 한다면 같은 네트워크에도 묶여야되는 등 신경써야 할 부분이 많은 것 같은데요.. 베어메탈에서 wget 등으로 받아서 띄우는거 말고 컨테이너 환경에서는 어떻게 하는지 또 궁금합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 좋은 강의 잘 듣고 있습니다!! 이번 강의를 들으면서 @EnableConfigurationProperties(MyDataSourcePropertiesV1.class)를 통해 MyDataSourcePropertiesV1.class 클래스를 스프링 빈으로 등록해야지 외부 설정을 읽어서 해당 클래스에 바인딩하고 Config에서는 그걸 주입 받아 DataSource에 주입하는 걸로 이해를 했습니다. 여기서 저는 단순히 스프링 빈으로 등록하는 거라면 @Import를 사용하거나 MyDataSourcePropertiesV1.class에 @Component를 붙여서 컴포넌트 스캔 대상이 되도록 하는 등의 방법으로 해도 잘 동작하는게 아닐까? 라는 생각에 2가지 다 사용해서 테스트를 진행했는데 별문제가 없었습니다. 분명히 @EnableConfigurationProperties을 만든 이유가 있을듯한데 저의 짧은 지식으로는 잘 모르겠습니다. @ConfigurationPropertiesScan은 @ConfigurationProperties가 붙은 클래스를 마치 컴포넌트 스캔과 같이 간편하게 스프링 빈으로 등록할 수 있다는 장점이 보이지만 @EnableConfigurationProperties 이 친구는 정말 모르겠습니다
cmd에 작성되어 있는 cp ./tabby-v1.0.207/config.yaml $env:APPDATA/tabby/ 이걸로 했을 때 tabby가 실행이 되지 않아서 전에 다른 분이 질문하셨던 글의 댓글을 통해 cp ./tabby-v1.0.207/config.yaml $env:APPDATA/tabby/ config.yaml 을 추가했더니 tabby가 실행되었어요. 그런데 문제는 tabby 실행후 처음에는 cp-k8s에 접속이 되었는데 그 이후로 다시 접속하려고 할때 접속이 안되더라구요. Tabby를 아무리 삭제하고 재설치해도 접속이 안됩니다. 어떻게 해결해야 할 지 확인 부탁드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]말 그대로입니다. 띄어쓰기 두 번 규칙 잘 적용했는데 튕기는 현상이 발생합니다. 어떤 것이 문제일까요?? yml을 다음 아래와 같이 복붙했습니다. # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [' localhost:8080 ']
모니터링이란, 테스트로 잡지 못한 버그들이 발생했을 때 그 버그의 원인들을 빠르게 알게 해주는데 목적이 있다고 생각합니다. (비즈니스 지표 모니터링은 여기에선 고려하지 않겠습니다.) 그런데, 어디까지 테스트로 해결해야하고 어디서부터는 모니터링으로 해결해야 할까요? 버그를 꼼꼼히 잡겠다고 가능한 모든 루트를 테스트 하려는 것도 생산성 측면에서 옳은 방법은 아니라고 생각합니다. 또한, 서비스의 규모가 작을 때와 서비스의 규모가 클 경우 어떻게 테스트하고 모니터링 할 지 또한 바뀐다고 생각합니다. 제가 생각하는 방법은 중요하거나 복잡한 도메인 로직은 유닛테스트로 꼼꼼히 테스트한다 프레임워크 및 외부 장치들과 잘 통신하는지는 통합테스트로 happy path 정도만 테스트한다. 그 외에 못잡는 버그들은 모니터링을 통해 해결한다. 이렇게인데요, 제가 맞는 방향으로 생각하고 있는건지 궁금합니다. 또한 서비스의 규모의 차이에 따라 어떻게 테스트하고 모니터링 하는 방법이 달라지는지가 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] "C:\Program Files\Java\jdk-17\bin\java.exe" --spring.profiles.active=prod -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2\lib\idea_rt.jar=58809:C:\Program Files\JetBrains\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath C:\study\spring-boot\external\build\classes\java\main;C:\study\spring-boot\external\build\resources\main;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.24\13a394eed5c4f9efb2a6d956e2086f1d81e857d9\lombok-1.18.24.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.0.2\a9426629b5a83ad64fbe4e1d24081cccf4cdab14\spring-boot-starter-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.0.2\42ad589ec930e05a2ed702a4940955ff97b16a8c\spring-boot-autoconfigure-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.0.2\69d2e0a07f7df180a4aacdc47c47a3db656857dc\spring-boot-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.0.2\1c5c71058a0297534d5c5f33a5d125bbbdb6a390\spring-boot-starter-logging-3.0.2.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\2.1.1\48b9bda22b091b1f48b13af03fe36db3be6e1ae3\jakarta.annotation-api-2.1.1.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.0.4\8e24ad493887023cf5fac93541c72516f8ed9f6a\spring-core-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.0.4\4fffcbb7eb4f1e9f1a4c9d3ca60098f7c063fc05\spring-context-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.5\28e7dc0b208d6c3f15beefd73976e064b4ecfa9b\logback-classic-1.4.5.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.19.0\30f4812e43172ecca5041da2cb6b965cc4777c19\log4j-to-slf4j-2.19.0.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.6\c4d348977a83a0bfcf42fd6fd1fee6e7904f1a0c\jul-to-slf4j-2.0.6.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.0.4\2d6523d00fc40cdb2c2f409113447940d2c872b5\spring-jcl-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.0.4\c47b65c09a5a6fc41293b6aa981fcbe24a3adcd0\spring-aop-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.0.4\7d903607ecfcdefccd0d48aea8724632479b3e83\spring-beans-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.0.4\a908e6d3c46fcd6b58221d8427bbaf284bbbee0c\spring-expression-6.0.4.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.5\e9bb2ea70f84401314da4300343b0a246c8954da\logback-core-1.4.5.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.6\88c40d8b4f33326f19a7d3c0aaf2c7e8721d4953\slf4j-api-2.0.6.jar;C:\Users\lgh80\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.19.0\ea1b37f38c327596b216542bc636cfdc0b8036fa\log4j-api-2.19.0.jar hello.ExternalApplicationUnrecognized option: --spring.profiles.active=prodError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.Process finished with exit code 1다음과 같은 에러가 뜨는데 Chat GPT로 해도 이해가 안돼서 질문 남깁니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] sec2 -1에 톰캣 설치 강의를 보면서 따라하는 중입니다. 강의에서 알려주신 방법, 질문창, 구글 다 참고해서 해봤는데요 어떻게 해도 톰캣 설치가 안되고 오류만 뜹니다. 해결방법 좀 알려주셨으면 좋겠습니다. <오류 코드> startup.bat : 'startup.bat' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + startup.bat + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (startup.bat:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] System.out.println("Hello"); resp.getWriter().println("Hi"); 위와 같이 브라우저와 로그에 다르게 찍히는걸 보고 싶은데 코드 수정후 톰캣 재시작을 해도 여전히 로그에는 TestServlet.service이, 브라우저에는 test가 찍힙니다. war을 삭제 후 다시 시작해도 같아요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 외장 톰켓을 사용하여 서버를 띄우는데 프로젝트 코드가 변경이 되면 프로젝트 재빌드 후 배포해야 하는 것으로 알고 있는데 코드가 변경되었는데도 재빌드를 안하고도 서버를 다시 띄우는 것만으로도 코드가 반영이 되는 이유가 궁금합니다.