묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 배치
멀티스레드 환경에서의 트랜잭션 및 lock 관련 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님! 강의를 듣고 정말 많은 도움을 받고 있습니다! 멀티스레드 환경 부분을 듣고 직접 이것저것 해보면서 몇가지 질문 사항이 있습니다. 1) 트랜잭션 스프링 배치에서 시작하는 트랜잭션 외에 ItemProcessor에서 다른 service(@Transactional)를 호출하여 데이터 처리를 하게 되는 경우 앞서서 배치가 생성해놓은 트랜잭션에 함께 포함되는 것이 아니라 별도로 트랜잭션이 열리게 된다는 다른 질문의 답변을 보았습니다! 그렇다면 배치의 트랜잭션이 끝나는 시점이 서비스 트랜잭션이 끝나는 시점과 다를텐데요. 이 때 배치의 트랜잭션이 종료되는 시점은 service처리가 다 이후 write처리까지 다 끝난 이후 인지, service 트랜잭션의 종료와는 상관 없이 트랜잭션이 종료 되게 되는 것인지 궁금합니다. + 트랜잭션의 종료 시점이 다르게 될 경우 발생될 수 있는 문제들은 어떻게 처리하게되는 걸까요?(배치를 돌릴때 최대한 다른 트랜잭션을 열면 안되는 것인지 궁금합니다!) ( org.hibernate.LazyInitializationException : failed to lazily initialize a collection of role 예외, 트랜잭션을 닫을 시점에 entity manger is null (AbstractItemCountingItemStreamItemReader.close)예외가 발생하였는데 이것과 관련되어있는지도 궁금합니다...!)2) 멀티스레드 환경의 chunk 배치 멀티스레드 환경에서 chunk 배치를 사용하는 경우 JpaPagingItemReader를 사용한다고 가정하였을때, '스레드 동기화를 보장'한다는 것에 대해 궁금한데요. 예를 들어, 쓰레드가 5개인 환경에서 조회할 값이 isSample 컬럼이 false인 데이터 100개라고 가정하고 pagingItemReader를 이용해서 offset을 0으로 두고 10개씩 (chunksize = 10, pageSize = 10) 읽고 processor가 isSample 컬럼을 true로 바꾸는 역할을 수행하는 것을 가정합니다. 먼저 1~10번의 아이템을 각각의 1~5번의 스레드가 10개의 각각의 아이템을 할당 받는 과정에서 동기화(중복된 아이템을 스레드가 겹쳐서 읽지 않음)를 이루고 처리후 다음 10개를 읽고 처리하는 과정을 반복한다고 이해하였는데요. 이때, 만약 처음 1~10번의 아이템을 읽고 처리하는 과정에서 한 스레드가 처리과정에서 오랜 시간이 소요되는 병목지점이 발생한다면 commit이 이루어지지 않고, 다음 아이템 11~20번을 읽을때 앞서서 처리되지 않은 아이템을 다시 읽어오고 또다시 병목 지점이 발생할 수도 있고, 결과적으로 같은 아이템을 다른 스레드가 중복으로 처리하게 될 수도 있을 텐데 이럴경우 어떻게 처리가 이루어지는지 궁금합니다. (이런 부분에서는 동기화가 이루어지지 않는 것인지, 제가 이해한 과정이 맞는지도 궁금합니다...!) 3) synchronizeditemstreamreader를 사용하는 경우 lockSynchronizedItemStreamReader를 사용하는 경우에는 동기화를 위해서 쓰레드가 lock을 획득하고 처리하는 과정이 이루어진다면, DB connection의 갯수는 항상 쓰레드의 갯수보다 많게 유지해야 하는 걸까요? ( 작게하면 Connection is not available, request timed out after 오류가 뜨고 있습니다...!)강의 정말 잘 보고 있습니다! 감사합니다 강사님!
-
해결됨홍정모의 따라하며 배우는 C언어
4.3 질문
str3에서 배열의 크기가 10이고 hello, world를 입력했을떄 끝에 /0을 제외하고 9글자가 출력된다고 치면hello, wo 까지가 9글자인데 왜 r까지 출력되는지 이유를 모르겠습니다. 비주얼스튜디오로 해봤는데도 똑같이 나옵니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
validator 질문입니다!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]여기에 질문 내용을 남겨주세요.ValidationItemControllerv2 addItemV6부터itemValidator.validate(item, bindingResult);이코드를 없애고 (@Validated추가) 이유가이제 직접 등록하는 ItemValidator 을 안쓰고어노테이션 기반의 validate를 ex)@Max(999) 이용함이라고이해했는데 맞나요 ?
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의자료 요청드립니다:)
안녕하세요필기 및 공부를 위해 교안 요청 드립니다.이메일은 wan2535@naver.com 입니다.유익한 강의 감사합니다~
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
안녕하세요. 갑자기 프로젝트가 실행되지 않아 질문 올립니다.
2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 서버 버전 이름: Apache Tomcat/8.5.842월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: Server 빌드 시각: Nov 16 2022 13:34:24 UTC2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: Server 버전 번호: 8.5.84.02월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 운영체제 이름: Windows 112월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 운영체제 버전: 10.02월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 아키텍처: amd642월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 자바 홈: C:\Program Files\Java\jdk1.8.0_351\jre2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: JVM 버전: 1.8.0_351-b102월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: JVM 벤더: Oracle Corporation2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: CATALINA_BASE: C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp02월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: CATALINA_HOME: C:\Program Files\tomcat\apache-tomcat-8.5.84-windows-x64\apache-tomcat-8.5.842월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 명령 행 아규먼트: -Dcatalina.base=C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp02월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 명령 행 아규먼트: -Dcatalina.home=C:\Program Files\tomcat\apache-tomcat-8.5.84-windows-x64\apache-tomcat-8.5.842월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 명령 행 아규먼트: -Dwtp.deploy=C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 명령 행 아규먼트: -Djava.endorsed.dirs=C:\Program Files\tomcat\apache-tomcat-8.5.84-windows-x64\apache-tomcat-8.5.84\endorsed2월 04, 2023 8:46:56 오후 org.apache.catalina.startup.VersionLoggerListener log정보: 명령 행 아규먼트: -Dfile.encoding=UTF-82월 04, 2023 8:46:56 오후 org.apache.catalina.core.AprLifecycleListener lifecycleEvent정보: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\Program Files\Java\jdk1.8.0_351\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_351/bin/server;C:/Program Files/Java/jre1.8.0_351/bin;C:/Program Files/Java/jre1.8.0_351/lib/amd64;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files\Java\jdk-11\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Bandizip\;C:\Users\신명상\AppData\Local\Microsoft\WindowsApps;;C:\eGovFrame_inflearn\eGovFrameDev-3.7.0-64bit\eclipse;;.]2월 04, 2023 8:46:57 오후 org.apache.coyote.AbstractProtocol init정보: 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다.2월 04, 2023 8:46:57 오후 org.apache.catalina.startup.Catalina load정보: Initialization processed in 490 ms2월 04, 2023 8:46:57 오후 org.apache.catalina.core.StandardService startInternal정보: 서비스 [Catalina]을(를) 시작합니다.2월 04, 2023 8:46:57 오후 org.apache.catalina.core.StandardEngine startInternal정보: 서버 엔진을 시작합니다: [Apache Tomcat/8.5.84]2월 04, 2023 8:46:57 오후 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom경고: [SHA1PRNG] 알고리즘을 사용하여, 세션 ID를 생성하기 위한 SecureRandom 객체를 생성하는데, [535] 밀리초가 소요됐습니다.2월 04, 2023 8:47:00 오후 org.apache.jasper.servlet.TldScanner scanJars정보: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.2월 04, 2023 8:47:00 오후 org.apache.catalina.core.ApplicationContext log정보: No Spring WebApplicationInitializer types detected on classpath2월 04, 2023 8:47:01 오후 org.apache.catalina.core.ApplicationContext log정보: Initializing Spring root WebApplicationContext2023-02-04 20:47:01,920 INFO [org.springframework.web.context.ContextLoader] Root WebApplicationContext: initialization started2023-02-04 20:47:02,145 INFO [org.springframework.web.context.support.XmlWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Sat Feb 04 20:47:02 KST 2023]; root of context hierarchy2023-02-04 20:47:02,259 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-aspect.xml]2023-02-04 20:47:02,409 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-common.xml]2023-02-04 20:47:02,550 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-datasource.xml]2023-02-04 20:47:02,559 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-idgen.xml]2023-02-04 20:47:02,567 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-mapper.xml]2023-02-04 20:47:02,576 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-properties.xml]2023-02-04 20:47:02,584 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-sqlMap.xml]2023-02-04 20:47:02,591 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-transaction.xml]2023-02-04 20:47:02,632 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-validator.xml]2023-02-04 20:47:03,077 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] JSR-330 'javax.inject.Inject' annotation found and supported for autowiring2023-02-04 20:47:03,644 DEBUG [egovframework.rte.fdl.cmmn.aspect.ExceptionTransfer] count of ExceptionHandlerServices = 22023-02-04 20:47:03,856 WARN [org.springframework.web.context.support.XmlWebApplicationContext] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-datasource.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [egovframework/spring/mybatis.xml] cannot be opened because it does not exist2023-02-04 20:47:03,901 ERROR [org.springframework.web.context.ContextLoader] Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-datasource.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [egovframework/spring/mybatis.xml] cannot be opened because it does not exist at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) ~[spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) [spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) [spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4759) [catalina.jar:8.5.84] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5229) [catalina.jar:8.5.84] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:8.5.84] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1424) [catalina.jar:8.5.84] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1414) [catalina.jar:8.5.84] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_351] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_351] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_351] at java.lang.Thread.run(Thread.java:750) [?:1.8.0_351]Caused by: java.io.FileNotFoundException: class path resource [egovframework/spring/mybatis.xml] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172) ~[spring-core-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:361) ~[mybatis-spring-1.2.3.jar:1.2.3] at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:343) ~[mybatis-spring-1.2.3.jar:1.2.3] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] ... 21 more2월 04, 2023 8:47:03 오후 org.apache.catalina.core.StandardContext listenerStart심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [C:\Users\신명상\Desktop\교육\framework_inflearn\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Egov_WEB\WEB-INF\classes\egovframework\spring\context-datasource.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [egovframework/spring/mybatis.xml] cannot be opened because it does not exist at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4759) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5229) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1424) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1414) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)Caused by: java.io.FileNotFoundException: class path resource [egovframework/spring/mybatis.xml] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172) at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:361) at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:343) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ... 21 more2월 04, 2023 8:47:03 오후 org.apache.catalina.core.StandardContext startInternal심각: 하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다.2월 04, 2023 8:47:03 오후 org.apache.catalina.core.StandardContext startInternal심각: 이전 오류들로 인해 컨텍스트 [/Egov_WEB]의 시작이 실패했습니다.2월 04, 2023 8:47:03 오후 org.apache.catalina.core.ApplicationContext log정보: Closing Spring root WebApplicationContext2월 04, 2023 8:47:03 오후 org.apache.coyote.AbstractProtocol start정보: 프로토콜 핸들러 ["http-nio-8080"]을(를) 시작합니다.2월 04, 2023 8:47:03 오후 org.apache.catalina.startup.Catalina start정보: Server startup in 6920 ms이런 에러와 함께 프로젝트가 갑자기 실행이 안되는데 해결책을 찾을 수 없어 문의 올립니다.
-
미해결홍정모의 따라하며 배우는 C++
10.6 컨테이너 클래스 숙제 피드백
안녕하세요 강의를 듣고있는 학생입니다.10.6에서 컨테이너 클래스의 개념을 설명해주시고IntArray를 직접 구현해보는 숙제를 내주셔서 직접 머리를 짜내서 코드를 구현해봤습니다.이 글을 보신 숙련자 분들께 제가 구현한 intArray를 피드백 받고싶어서 글을 작성합니다.#include <iostream>#include <vector>using namespace std;class IntArray{private: int m_length = 0; int* m_data = nullptr; public: IntArray(const int length) :m_length(length) { m_data = new int[m_length]; } IntArray(const std::initializer_list<int>& list) :IntArray(list.size()) { int count = 0; for (auto& ele : list) { //cout << "list" << endl; m_data[count] = ele; count++; } } ~IntArray() { delete[] m_data; } void initialize(const std::initializer_list<int>& list) { delete[] m_data; m_length = list.size(); m_data = new int[m_length]; if (m_data != nullptr) { int count = 0; for (auto& ele : list) { m_data[count] = ele; count++; } } } void reset() { delete[] m_data; m_data = nullptr; } void resize(const int size) { m_length = size; } void insertBefore(const int & value, const int & ix) { m_length += 1; int *n_data = new int[m_length]; int i = ix; for (int n = 0; n < ix; n++) n_data[n] = m_data[n]; n_data[ix] = value; for (i; i < m_length; i++) { n_data[i + 1] = m_data[i]; } delete[] m_data; m_data = n_data; } void remove(const int& ix) { m_length -= 1; int* n_data = new int[m_length]; int count = ix; for (int i = 0; i < ix; i++) { n_data[i] = m_data[i]; } for (count; count < m_length; count ++) { n_data[count] = m_data[count+1]; } delete[] m_data; m_data = n_data; } void push_back(const int& value) { this->m_length += 1; int* n_data = new int[m_length]; for (int i = 0; i < m_length; i++) n_data[i] = m_data[i]; n_data[m_length-1] = value; delete[] m_data; m_data = n_data; } friend ostream& operator << (ostream& out, IntArray& ia) { for (int i = 0; i < ia.m_length; i++) out << ia.m_data[i] << " "; out << endl; return out; }};int main(){ IntArray my_arr{ 1, 3, 5, 7, 9 }; cout << my_arr << endl; my_arr.insertBefore(10, 1); cout << my_arr << endl; my_arr.remove(2); cout << my_arr << endl; my_arr.push_back(13); cout << my_arr << endl; my_arr.initialize({ 1, 2, 3 }); cout << my_arr << endl; return 0;}피드백 받고싶은 이유는 함수를 구현할 때 Array에 int를 추가, 삭제, 수정을 할때새로 동적할당을 받은 뒤에 그 공간에 기존 데이터를 복사해주며 추가,삭제,수정 해줄 부분을 해주고기존 동적할당 공간은 지우고 기존 객체가 가르키는 포인터를 새로 할당한 공간으로 설정 해주었습니다. 선생님 께서 예시로 작성하는 코드 짜임새와 코드라인수에 비해제 머리속에서 나온 그대로를 코드로 담은거라 너무 조잡 난해하다는 생각이 들었습니다.그래서 코드를 더 간단하게 짜려면 이 내용을 어떤식으로 수정하면 좋을지 피드백 받고싶습니다.혹은 코드에 아쉬운점들을 고수분들의 관점으로 보고 말씀해주시면 배워보고싶습니다 감사합니다.
-
미해결엑셀로 마케팅 데이터 분석, 예측하기
샘플데이터
구매고객 재구매 주기 예측하기 강의에서 사용하는 샘플데이터는 어디서 다운받나요? 김신입의 마케팅 용어집은 더 이상 구매가 안되나요?좋은 강의 감사합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
case 2번 질문드립니다.
안녕하세요 선생님 질문드립니다.2번 케이스 인풋이 아래와 같습니다AKDEF5AYKGDHEJAQKWDERTFYPCTFKSBDEAASKGHDEFWOPASFKGHDEF저는 문제를푸니no,yes,no,yes,yes 로 나오는데마지막 WOPASFKGHDEF 이건 yes 아닌가요?정답은no,yes,no,yes,no 여서 2번만 wrong 앤서가 나와서요..문제를 제가 잘못이해한걸까요? 아래는 제코드입니다.import sys from collections import deque sys.stdin = open("in2.txt",'r') need = input() n = int(input()) for i in range(n): plan = input() dq = deque(need) for x in plan: if len(dq) != 0: if dq[0] == x: dq.popleft() if len(dq) == 0: print("#%d YES" %(i+1)) else: print("#%d NO" %(i+1))
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
insert 문제
질문에 defer-datasource-initialization: true 추가하라해서 했는데도 안됩니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 1992: 쿼드 트리 문제에서 quard함수 탐색 범위 질문입니다.
http://boj.kr/3dd3ee851f2a4530928260c354dd2deb우선, 소스 공유합니다.강사님 께서는 quard함수의 탐색 범위를 for(int i = y; i < y+ size; i++){ for(int j = x; j < x + size; j++){이렇게 잡으셨고저는 for(int i = 0; i < size; i++){ for(int j = 0; j < size; j++){이렇게 잡았는데요. 의미적으로 같지 않나 생각합니다.답이 다른 걸로 보아 문제가 있기는 한거 같은데 뭐가 잘못 된지 모르겠습니다. 도와주세요.
-
미해결홍정모의 따라하며 배우는 C언어
강의 영상이 대부분 중간중간에 다시 되감기 되는 오류가 있습니다.
0.3 운영체제가 해주는 일들 강의에 04:11초에 되감기 되길래 강의를 다 보고 다시 확인 해보니까 계속 오류났던 구간의 되감기 오류가 없어졌더라구요강의를 처음 수강할 때는 원래 이렇게 되감기가 되는 건가요? 해결방법이 있다면 알려주시면 감사하겠습니다.+) 강의를 다 본 후에도 여전히 다른 구간에서 또 되감기 오류가 발생합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
제네릭스 질문이있습니다.
기존에 제네릭스를 사용하기 위해Wrapper클래스를 사용하여 Integer, Double과 같이 정의한 뒤에 사용했었는데 현 강의에서는 public static <T, V> void orderCoffee(T name, V coffee){ System.out.println(coffee + " 준비 완료 : "+name); }이와같이 선언 한뒤orderCoffee(27, "라떼")와 같이 호출을 하는데 Wrapp를 사용해주어야하는 경우와 아닌 경우가 구분이 잘 가지 않습니다...
-
미해결홍정모의 따라하며 배우는 C++
15.4 std::move
#pragma once#include<iostream>template <class T>class AutoPtr{public:T *m_ptr = nullptr;AutoPtr(T *ptr = nullptr): m_ptr(ptr){std::cout << "auto default constructor" << std::endl;}~AutoPtr(){std::cout << "autoptr destructor" << std::endl;if ( m_ptr != nullptr )delete m_ptr;}Autoptr(const AutoPtr &a){std::cout << "autoptr copy constructor" << std::endl;//deep copym_ptr = new T;m_ptr = a.m_ptr;}AutoPtr &operator = (const AutoPtr &a){std::cout << "autoptr copy assignment" << std::endl;if ( &a == this ) return *this;if ( m_ptr != nullptr ) delete m_ptr;m_ptr = new T;m_ptr = a.m_ptr;return*this;}//AutoPtr(const AutoPtr &a) = delete;//AutoPtr &operator=(const AutoPtr &a) = delete;AutoPtr(AutoPtr &&a):m_ptr(a.m_ptr){a.m_ptr = nullptr;std::cout << "AutoPtr move constructor" << std::endl;}AutoPtr &operator=(AutoPtr &&a){std::cout << "autoptr move assignment" << std::endl;if ( &a == this )return*this;if ( !m_ptr )delete m_ptr;m_ptr = a.m_ptr;a.m_ptr = nullptr;return*this;}T &operator*()const { return *m_ptr; }T &operator->()const { return m_ptr; }bool isNull()const { return m_ptr == nullptr; }};#pragma once#include<iostream>class Resource{public:int *mData = nullptr;unsigned mLength=0;Resource(){std::cout << "default constructed" << std::endl;}Resource(unsigned length){std::cout << "resource length constructed" << std::endl;this->mData = new int[length];this->mLength = length;}Resource(const Resource &res){std::cout << "copy constructed" << std::endl;Resource(res.mLength);for ( unsigned i = 0; i < mLength; i++ ){mData[i] = res.mData[i];//deep copy}}Resource &operator=(Resource &res){std::cout << "copy assignment" << std::endl;if ( &res == this )return *this;if ( this->mData != nullptr )delete[]mData;mLength = res.mLength;mData = new int[mLength];for ( unsigned i = 0; i < mLength; i++ ){mData[i] = res.mData[i];}return *this;}~Resource(){std::cout << "resource destroyed" << std::endl;if ( mData!=nullptr ){delete[]mData;}}void Print(){for ( unsigned i = 0; i < mLength; i++ ){std::cout << mData[i] << " ";}std::cout << std::endl;}};#include"autoPtr.h"#include"resource.h"int main(){using namespace std;AutoPtr<Resource> res1(new Resource(10000000));cout << res1.m_ptr << endl;AutoPtr<Resource> res2 = res1;cout << res1.m_ptr << endl;cout << res2.m_ptr << endl;}코드를 따라친거 같은데AutoPtr<Resource> res2 = res1;이부분에서 컴파일에러가 납니다 강의에서 코드를 빨리 넘겨서 잘 안보여서 어떤게 에러인지 모르겠습니다
-
미해결iOS SwiftUI AR 증강현실
Experience 장면 불러오기
강사님!rcproject 파일 로드하기 영상에서loadExperience메서드를 통해Experience.rcproject 파일 내의 장면들을 로드하여 보여주잖아요? 제게 안되서 강사님 파일로도 실행해 보았는데'장면'들이 나타나지가 않네요? ㅜㅜxcode가 업데이트 되면서 발생한 문제일까요?나머지 createText나 createImage, createVideo 는 잘 동작해요!!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
[상태관리] Riverpod을 쓰신 이유가 있으신가요?
안녕하세요 상태관리 라이브러리 관하여 여쭤볼게 있습니다.상태관리 라이브러리가 많은데 그중 riverpod을 쓰시는 이유가 있으신가요?다른 상태관리 라이브러리 (Provider, Bloc, Get 등)을 사용해도 강의에 나온것과 같은 기능, 같은 패턴으로 구현할수 있나요?
-
미해결[따라하면 취업되는 게임기획]실전 농장 SNG 게임
플로우 차트 질문있습니다.
sng 기획하기 12강 가판대, 광고판11분 30초 화면입니다.친구 가판대 선택 마지막 과정에서 '판매가격 >= 보유골드'가 yes일 경우 골드 소비 후 상품 획득인데 그것보다 판매 가격보다 보유골드가 많을 경우 즉,'보유골드 >= 판매가격'일 때, 골드 소비 후 상품 획득 과정이 더 올바르지 않나요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
목서버, "usageLimitError"
안녕하세요 콘솔에 404 에러가 떠서 목서버를 확인해보니 아래와 같은 오류가 떴는데 이러한 경우 어떻게 해결할 수 있을까요..{ "error": { "name": "usageLimitError", "header": "Usage limit reached", "message": "Your team plan allows 1000 mock server calls per month. Contact your team Admin to up your limit." } }
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
프로젝트 2 이미지 깨짐 현상
강사님이 올려주신 파일 그대로 열었는데 이런식으로 깨집니다.어떻게 해결해야하나요?<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="/assets/css/app.css"> <title>My Second Web</title> </head> <body> <header id="header" class="wrapper"> <section id="navTop" class="nav-top py-2 d-none d-md-block"> <div class="container"> <div class="row align-items-center justify-content-center"> <div class="col-3 text-start lead fast-counsel"> <a href="#" class="btn btn-outline-dark">Contact</a> </div> <div class="col-4 logo"> <a href="index.html" class="navbar-brand d-flex"> <img src="/assets/images/dummy-logo.png" alt="" class="img-fluid ms-auto" width="200px" data-bs-toggle="tooltip" data-bs-placement="bottom" title="My amazing website!!"> </a> </div> <div class="col-5 text-end socials"> <a href="#" class="mx-1 text-decoration-none"> <img src="/assets/images/icon-phone.png" alt="Phone" width="40px" class="shadow-box"> </a> <a href="#" class="mx-1 text-decoration-none"> <img src="/assets/images/icon-kakao-channel.png" alt="Kakao Channel" width="40px" class="shadow-box"> </a> <a href="#" class="mx-1 text-decoration-none"> <img src="/assets/images/icon-facebook.png" alt="Facebook" width="40px" class="shadow-box"> </a> <a href="#" class="mx-1 text-decoration-none"> <img src="/assets/images/icon-twitter.png" alt="Twitter" width="40px" class="shadow-box"> </a> <a href="#" class="mx-1 text-decoration-none"> <img src="/assets/images/icon-youtube.png" alt="Youtube" width="40px" class="shadow-box"> </a> </div> </div> </div> </section> <nav id="navPrimary" class="navbar navbar-expand-md navbar-dark"> <div class="container-xxl"> <a class="navbar-brand d-block d-md-none" href="index.html"> <img src="/assets/images/dummy-logo.png" alt="Logo" class="img-fluid"> </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navPrimaryContent"> <ul class="navbar-nav mx-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="index.html">Home</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Intro </a> <ul class="dropdown-menu" aria-labelledby="navbarDropdown"> <li><a class="dropdown-item" href="page.html">About us</a></li> <li><a class="dropdown-item" href="page.html">Find us</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Documents</a> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Gallery</a> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Blog</a> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Events</a> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Reviews</a> </li> <li class="nav-item"> <a class="nav-link" href="page.html">Reservation</a> </li> <li class="nav-item"> <a class="nav-link btn btn-outline-secondary" href="#"><i class="fa fa-search"></i></a> </li> </ul> </div> </div> </nav> </header> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script> <!-- Kakao map appkey here --> <script src="/assets/js/app.js"></script> </body> </html>
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
sort 할 때 문자열은 자동으로 유니코드값으로 변환되어 계산되지 않나요?
timeLine.sort((a, b) => a[0] == b[0] ? a[1] - b[1] : a[0] - b[0] ); sort는 문자열을 값으로 가진 비교는 자동으로 유니코드값으로 변환되어 비교하는줄 알았는데 저렇게 하니 [ [ 5, 's' ], [ 12, 's' ], [ 14, 's' ], [ 14, 'e' ], [ 15, 'e' ], [ 15, 's' ], [ 18, 'e' ], [ 20, 'e' ], [ 20, 's' ], [ 30, 'e' ] ]이렇게 s가 먼저 나올 때도 있고 e가 먼저 나올때도 있고 하더라구요 원래 sort 할 때 문자열은 자동으로 유니코드값으로 변환되어 비교되지 않나요?
-
미해결실용적인 웹 프로그래밍
i 테그인 경우 입력방법
안녕하세요.'자바 스크립트로 뉴스 기사 본문만 보이게 하기' 강의목차를 수강하는 중간에 궁금한 점이 생겨서 이렇게 질문남깁니다.querySelector는 #이나 . 을 이용하는 걸로 알고있는데, 제가 사용하려는 부분이 i 태그인 경우에는 어떻게 입력해야하는지 모르겠습니다..