https://www.acmicpc.net/source/share/60c52b6bc2b540bb8d1b1a57d4ce090d 기존에 문제를 풀었던 2109번과 동일한 로직이라고 생각되어 처음풀때 사용했던 제 로직을 이용하니 문제가 틀렸다고 나와서요, 추후에 큰돌님이 2109번강의해주셨을때 사용했던 로직도 같은로직이라 생각되어 해당 소스를 사용시 정답이 되어서 이부분이 잘이해가 안가서 질문을 남깁니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의를 쭉 따라왔습니다. 궁금한 점이 있는데 통합 테스트 클래스인 MemberServiceIntegrationTest에서 필드 주입 방식으로 @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; 이렇게 선언했잖아요? 그런데 SpringConfig에서 MemberService랑 MemberRepository를 스프링 빈으로 등록했으니깐 여기서도 @Autowired를 빼도 될 것 같았는데 오류가 나더라구요. 이유를 뭔가 알 것 같기도 하면서 개념이 좀 헷갈리는데 @Autowired를 붙여야 하는 이유가 뭔가요?
org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Could not execute test class 'hello.member.MemberRepositoryTest'. at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53) at java.base@17.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base@17.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@17.0.8/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: org.gradle.internal.UncheckedException: java.lang.ClassNotFoundException: hello.member.MemberRepositoryTest at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:68) at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.loadClass(JUnitPlatformTestClassProcessor.java:112) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.access$100(JUnitPlatformTestClassProcessor.java:54) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:89) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.execute(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) ... 18 more Caused by: java.lang.ClassNotFoundException: hello.member.MemberRepositoryTest at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.loadClass(JUnitPlatformTestClassProcessor.java:110) ... 23 more
안녕하세요 dummyList라는 변수 선언이 App함수 밖에 선언이 되어있는데 App함수 안에 선언을 하는거랑 결과상으로는 같더라구요 jsx문법에서 보통 이런 변수선언은 함수 안에 하나요 밖에 하나요? 혹시 차이가 있을까요? 이런 변수선언을 함수 밖에 선언하는 경우와 안에 선언하는 경우의 차이가 궁금합니다
제가 이해한 게 확신이 안 들어서 질문드립니다. @RequestParam은 url을 통해서 데이터를 전달하는 방식인 거죠? 즉 vi/menu_up?no=8처럼 이렇게 데이터를 ?뒤에서 key=value 형식으로 나르는 거죠? 그리고 html에서 링크를 /v1/menu_del(no=..) 이런 식으로 지정하거나, html 태그 form+input이 저런 url을 만들어주는 거죠? (태그 안에 action="/v1/menu_ins"을 적어줄 경우 그 뒤 url에 ?no=8 이런 식의 데이터를 붙여주는 거죠?)
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 맛비님! 강의 잘 듣고 있습니다! 다름이 아니라 verilog 문법 강의를 막 듣고 이 강의를 바로 수강해서인지 .. 살짝 어려운 감이 없지 않아 있지만 그래도 재밌게 듣고 있습니다! 하지만,, 질문거리는 많네용.. 16~17장의 FSM 관련해서 질문을 드리려고 합니다! 17장에서 always @(*) begin n_state = S_IDLE; // To prevent Latch. case(c_state) S_IDLE: if(i_run) n_state = S_RUN; S_RUN : if(is_done) n_state = S_DONE ; else n_state = S_RUN; S_DONE: n_state = S_IDLE; endcase end 굵게 표시된 부분을 추가하셨는데 제가 알기로는 if 구문에서 else를 정의하지 않으면 이전 상태를 계속 유지하는 걸로 알고 있는데, 그럼 여기서 else를 정의하지 않으면 S_RUN 상태를 계속 유지하니까 굳이 else를 추가할 필요가 없지 않나요? // Step 4. Registering (Capture) number of Count reg [6:0] num_cnt; always @(posedge clk or negedge reset_n) begin if(!reset_n) begin num_cnt <= 0; end else if (i_run) begin num_cnt <= i_num_cnt; end else if (o_done) begin num_cnt <= 0; end end 17장에서 이 코드를 설명하실 때 굵게 표시한 부분을 '사용자가 i_num_cnt 를 쭉 100으로 유지 못하는 경우를 방지하기 위해 이렇게 코드를 작성했다' 라고 하셨는데 사실 이 부분이 이해가 잘 안 돼서.. 혹시 어떤 상황인지 좀 더 자세하게 설명 가능할까요?? 그리고 17장 코드 step 4,5에서 굳이 내부 F/F를 만들어서 input을 담는 이유가 궁금합니다. 제가 생각하기엔 F/F를 만들면 그만큼 delay가 생기게 되고 이는 손해라고 생각이 들어서요 num_cnt, cnt_always를 말씀 드린겁니다! 17장 DUT step5 코드 중에서 마지막에 else를 쓰지 않으셨던데 이유가 뭔지 알 수 있을까요?? 이때는 is_done, o_running 이외에 경우가 없어서 그런가요? 마지막으로 맛비님의 코딩 스타일을 알고싶습니다. 솔직히 counter 까지는 verilog 문법을 공부하면서 설계해봤던 모듈이고 직관적으로 이렇게 설계하면 되겠다! 라는 생각이 들었는데 FSM을 설계할 땐 step1,2 이런 식으로 code를 짜기 까지 어떤 생각의 흐름으로 coding 하셨는지가 궁금합니다! 읽어주셔서 감사하고 긴 글이지만 꼭 답변 부탁드리겠습니다 ㅜㅠㅜㅠ 감사합니다!!
GKE 클러스터에서 --replicas 옵션으로 컨테이너를 배포하면 ReplicaSet의 관리를 받나요? kubectl create deploy --image=consol/tomcat-7.0 --replicas=5 위 명령으로 컨테이너를 배포하였는데요. 배포된 컨테이너를 삭제하려고 delete 명령어를 수행했는데, 계속 파드가 재생성되네요.. describe 명령어로 확인해보니깐 ReplicaSet으로 컨트롤 되고 있어서 삭제가 되도 다시 파드를 재생성하는거 같은데, 완전히 삭제하는 방법이 있을까요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링 DB 1편 트랜잭션 이해 파트에서 질문입니다. "애플리케이션에서 DB 트랜잭션을 사용하려면 트랜잭션을 사용하는 동안 같은 커넥션을 유지해야한다. 그래야 같은 세션을 사용할 수 있다" 여기서 세션의 개념이 정확히 이해가 가지 않아 질문드립니다. 찾아본 결과 하나의 커넥션에는 여러 개 세션이 존재할 수도, 아예 없을 수도 있다고 하고, 세션은 전달된 SQL이 실행되는 하나의 논리적 단위라고 합니다. 강의 설명에 따르면 같은 세션을 유지해야만 트랜잭션이 하나의 단위로 처리되기 때문에 이를 위해 같은 커넥션을 사용해야 한다고 이해했습니다. 그렇다면 같은 커넥션을 사용하는 것을 보장했을 때 항상 같은 세션을 사용하는 것도 보장되는 것인가요? 한 커넥션이 여러 세션을 사용하는 경우는 어떤 경우인가요? 여러 세션을 사용하게 되면 여러 세션에서 여러 개의 트랜잭션이 실행될 수 있는 것인가요?
안녕하세요. 수업 잘 듣고 있습니다! 년 단위의 데이터를 가져오는 경우엔 1년에 딱 한 번만 코드를 작동하면 되는데, 이런 경우에도 에어플로우로 관리를 해주는 게 좋을까요? 태스크에 비해 너무 자원을 많이 쓰는 건지, 그래도 프로세스를 보기 편하게 관리할 수 있다는 점에도 활용하는 게 좋을지 고민이 많이 되네요. 강사님의 의견이 궁금합니다!
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 추상적인 내용을 코드로 먼저 보여드리고 질문하겠습니다. 먼저 정적인 클래스 의존관계는 다음과 같은데요 import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } 제가 이해한 바로는, DIP 원칙을 지키기 위해 생성자를 통한 인터페이스 주입을 해야 한다고 들었습니다. 다음은 동적인 인스턴스 의존관계 관련 코드입니다. public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } public DiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } } 먼저 앱을 실행하기 전인 정적인 클래스 의존관계 단계에서 생성자를 통한 인터페이스 의존성 주입으로 OrderService 객체가 MemberRepository와 DiscountPolicy 인터페이스를 사용할 것이라고 알린 후, 실제로 앱을 구동하면 런타임 환경에서 사용할 인스턴스를 생성하고 이전의 정적인 클래스 단계에서 주입한 것을 구현 객체로 반환하면서 의존성이 물리적으로 연결되었다고 볼 수 있나요? 그래서 정적인 단계와 동적인 단계로 구분한 것인가요?
지난시간에 배운 정규식 이용해서 풀어봤습니다. 항상 강의 잘 듣고 있습니다. 감사합니다. function sol(s) { let answer = ''; s = s.replace(/[^0-9]/g, ''); answer = s.indexOf(0); answer = s.substring(answer + 1, s.length); return answer; } console.log(sol('g0en2T0s8eSoft'));
안녕하세요 선생님! 강의 잘 듣고 있습니다. 한 가지 궁금한게 있어서 질문 남깁니다. 다름아니라, BookSearchAdapter의 onBindViewHolder에서 book의 position을 currentList에서 가져오시던데, val book = currentList[position]과 val book = getItem[position]의 차이점이 무엇인지 궁금합니다...! 기능적으로 차이가 없다면, 경우에 따라 어떤 것을 사용하는것이 더 효율적인지 궁금합니다! 감사합니다.
선생님 앞 강의에서 말씀 해 주신 s.length -i -1 로 풀고싶어서 아스키코드를 이용해봤는데 if 문을 열고 소문자 대문자 일 때만 돌게끔 범위를 설정해줬습니다. 이런 방법으로는 풀수없는걸까요 ? s[i] !== s[s.length -i -1] 일때는 'NO' 를 출력하게끔 했는데 맞는 문자열이 들어가도 'NO'를 출력하더라구요 ㅠㅠ function solution(s) { let answer = 'YES'; s = s.toLowerCase(); for (let i = 0; i < Math.floor(s.length / 2); i++) { if ( s[i].charCodeAt() >= 65 || s[i].charCodeAt() <= 90 || s[i].charCodeAt() >= 97 || s[i].charCodeAt() <= 122 ) { if (s[i] !== s[s.length - i - 1]) { return 'NO'; } } } return answer; } console.log(solution('found7, time: study; Yduts; emit, 7DnuoF'));