안녕하세요 part.02 강의 완강했습니다👍 너무 좋은 강의라 다음 강의 스크롤트리거 관련 질문겸 반영됐으면 하는 부분이 있어서 질문을 올립니다 part.03 강의에서 스크롤트리거 강의시 반응형으로 제작하는 강의도 포함되어있을까요? 예를 들어 pc에서는 스크롤시 위에서 아래로 내려가는 모션이 모바일에선 좌에서 우로 가는것모션처럼 코드자체는 여기저기 검색해서 구현은 가능하지만 선생님강의처럼 효율적으로 작성하는 방법이 있을까 하는 궁금에서 질문드립니다 이번강의에서 타임라인을 효율적으로 관리하시는거보고 꼭 포함되면 좋을것 같아서 없다면 포함해주시면 감사합니다ㅠㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요? 컴포넌트 스캔에 대한 강의를 듣던 중 궁금해서 테스트를 해보던 중에 이해가 안가는 부분이 있어서 질문을 드립니다. @Configuration @ComponentScan public class AutoAppConfig { } 강의에서 excludeFilters 설정한 것을 빼고 디폴트 @ComponentScan 을 적용해서 테스트를 해봤습니다. ... if(beanDefinition.getRole() == BeanDefinition. ROLE_APPLICATION ) { System. out .println("beanDefinitionName = " + beanDefinitionName + " value = " + beanDefinition); } 바로 위와 같이 전에 테스트했던 코드를 참고해서 내용을 찍어봤는데... beanDefinitionName = autoAppConfig value = Generic bean: class [hello.core.AutoAppConfig$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null beanDefinitionName = applicationContextExtendsFindTest.TestConfig value = Generic bean: class [hello.core.beanfind.ApplicationContextExtendsFindTest$TestConfig$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [D:\400.Projects\01.SpringCore\core\out\test\classes\hello\core\beanfind\ApplicationContextExtendsFindTest$TestConfig.class] beanDefinitionName = applicationContextSameBeanFindTest.SameBeanConfig value = Generic bean: class [hello.core.beanfind.ApplicationContextSameBeanFindTest$SameBeanConfig$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [D:\400.Projects\01.SpringCore\core\out\test\classes\hello\core\beanfind\ApplicationContextSameBeanFindTest$SameBeanConfig.class] beanDefinitionName = statefulServiceTest.TestConfig value = Generic bean: class [hello.core.singleton.StatefulServiceTest$TestConfig$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [D:\400.Projects\01.SpringCore\core\out\test\classes\hello\core\singleton\StatefulServiceTest$TestConfig.class] beanDefinitionName = appConfig value = Generic bean: class [hello.core.AppConfig$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [D:\400.Projects\01.SpringCore\core\out\production\classes\hello\core\AppConfig.class] beanDefinitionName = coreApplication value = Generic bean: class [hello.core.CoreApplication$$SpringCGLIB$$0]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [D:\400.Projects\01.SpringCore\core\out\production\classes\hello\core\CoreApplication.class] beanDefinitionName = rateDiscountPolicy value = Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=applicationContextExtendsFindTest.TestConfig; factoryMethodName=rateDiscountPolicy; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [hello/core/beanfind/ApplicationContextExtendsFindTest$TestConfig.class] ... 위와 같이 root 패키지 내의 모든 빈이 등록되는 것 같았습니다. 예상으로는 @Component, @Configuration 이 붙어 있는 빈들만 등록될 줄 알았는데 왜 이렇게 나오는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] jdbc:h2:~/test로는 접속이 잘되고 home에 test.mv .db 가 있는 것 까지 확인했습니다. 이후에 jdbc:h2:tcp:// localhost/~/test 로 접속하려고 하니 다음과 같이 연결 거부가 뜹니다. 어떻게 해결해야 할까요 ?
ERROR in ./node_modules/caver-js/packages/caver-ipfs/src/index.js Module not found: Error: Can't resolve 'fs' in 'C:\Users\user\Desktop\sidejobs\klaytn1\addition-game-starter\node_modules\caver-js\packages\caver-ipfs\src' @ ./node_modules/caver-js/packages/caver-ipfs/src/index.js 21:11-24 @ ./node_modules/caver-js/packages sync ^\.\/.*\/src\/index\.js$ @ ./node_modules/caver-js/index.js @ ./src/index.js @ multi (webpack)-dev-server/client? http://localhost:8080 ./src/index.js 1.에러가 발생한다 뭐가 문제인가? 2.로그를 보니 caver-js 가 어쩌고 저쩌고 fs 가 어쩌고 하면서 문제가 발생한다. 3. 아마도 기존에 설치된 것들과의 버전 호환 문제가 아닌가 싶었다 4. 모르겠고 그냥 caver 다시 설치해보자 싶었다 5. npm install caver-js 하고 엔터를 갈긴다 6. 잘된다.
트랜잭션이 커밋이 일어나면 영속 컨텍스트가 어떻게 되는지 궁금해서 질문드립니다. 비슷한 질문이 있어 해당 글의 답을 보니, "커밋되는 시점에는 영속성 컨텍스트를 삭제한다."라고 되어있습니다. 그런데 어떤 블로그 글에서는 커밋되더라도 영속 컨텍스트의 1차 캐시는 남아있고, 쓰기 지연 SQL 저장소의 내용은 사라진다고 되어있습니다. Q1. 정확히 어떻게 되나요? 그리고 "컨텍스트의 삭제"의 정확한 의미가 이해가 되지않아서 이 부분도 궁금합니다! Q2. 영속 컨텍스트 자체가 삭제되는거라면, 커밋될 때 영속 컨텍스트의 삭제와 엔티티 매니저를 close()할 때 영속 컨텍스트가 닫히는것의 차이가 무엇인지 궁금합니다! Q3. 그리고 트랜잭션 커밋과 종료의 차이가 무엇인지 궁금합니다. 찾아보니 "COMMIT을 수행하면 하나의 트랜잭션 과정을 종료하는 것이다"라고 봤는데, 워딩의 차이이지 결국 같은 의미인가요? 아니면 커밋하지않고 트랜잭션이 종료될 수 도 있는건가요? 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. public class BeanLifeCycleTest { @Test public void lifeCycleTest(){ ConfigurableApplicationContext ac1 = new AnnotationConfigApplicationContext(LifeCycleConfig.class); // ConfigurableApplicationContext ac2 = new AnnotationConfigApplicationContext(LifeCycleConfig.class); NetworkClient client1 = ac1.getBean("networkClient",NetworkClient.class); NetworkClient client2 = ac1.getBean("networkClient",NetworkClient.class); System.out.println(client2); System.out.println(client1); Assertions.assertThat(client1).isSameAs(client2); ac1.close(); ac1.close(); } // @Configuration static class LifeCycleConfig{ // @Bean @Bean(initMethod = "init" , destroyMethod = "close") public NetworkClient networkClient(){ NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http:://hello-spring.dev"); me(); return networkClient; } public void me(){ System.out.println("test"); } } } 다음과 같이 @Configuration을 지웠다 넣었다 해보면서 이전에 배운 싱글톤에 대한 테스트를 해보고 있는데요 제 생각에 @Configuration을 빼면 빈에 등록 한번 등록된 객체의 값을 참조해서 가져오기만 하는 싱글톤 방식과 다르게 객체를 계속 생성해서 테스트 코드도 통과하면 안되고 connect도 두번 일어야 한다고 생각했습니다. 하지만 계속 테스트 코드를 통과하는 상황입니다. 제가 왜 이런걸까요?
안녕하세요. 두 로직이 같은 것 같은데 하나는 맞고 하나는 틀려서 질문드립니다. 부분합 계산하는 로직은 똑같은데, 답지 풀이와 다르게 처음에 부분합을 구하고 한 칸씩 옮기면서 다음 값들을 빼고 더하는 로직입니다. <맞는 코드> http://boj.kr/71648b379df54b9da80fe0b80ec8ca33 #include<bits/stdc++.h> using namespace std; int N, K, num; vector<int> temperatures; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> K; for (int i = 0; i < N; i++) { cin >> num; temperatures.push_back(num); } int sum = 0; for (int i = 0; i < K; i++) { sum += temperatures[i]; } int ret = -10000000; ret = max(sum, ret); for (int j = K; j < N; j++) { sum = sum + temperatures[j] - temperatures[j - K]; ret = max(sum, ret); } cout << ret << "\n"; } <틀린 코드> http://boj.kr/c2a7e69a69f6426d87429b3920570c4c #include<bits/stdc++.h> using namespace std; int N, K, j; vector<int> temperatures; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N >> K; for (int i = 0; i < N; i++) { int num = 0; cin >> num; temperatures.push_back(num); } int sum = 0; for (int i = 0; i < K; i++) { sum += temperatures[i]; } int ret = -10000000; ret = max(sum, ret); j = K; do { sum = sum + temperatures[j] - temperatures[j - K]; ret = max(sum, ret); j++; } while (j < N); cout << ret << "\n"; } 사실 변경점이 do-while문을 for문으로 바꾼 것 밖에 없는데 맞더라구요... 혹시 제가 발견하지 못한 차이점이 있을까요? 좋은 강의 감사합니다. ㅎㅎ