컨트롤러에서 Map 타입 region의 값을 넣어주는데 @ModelAttribute("regions") public Map<String, String> regions() { Map<String, String> regions = new LinkedHashMap<>(); regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JEJU", "제주"); return regions; } Item 객체의 regions에는 값을 언제 넣어주는 지 궁금합니다. @Data public class Item { private List<String> regions; //등록 지역 } 아래 질문을 보면 https://www.inflearn.com/questions/298992/regions-%ED%95%84%EB%93%9C%EC%9D%98-%EA%B0%92%EC%9D%B4-%EC%B6%94%EA%B0%80%EB%90%98%EB%8A%94-%EB%8F%99%EC%9E%91%EB%B0%A9%EC%8B%9D%EC%9D%B4-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4 스프링이 List 타입으로 선언한 regions에도 컬랙션 객체를 만들어서 자동으로 값을 넣어준다고 말씀하셨는데 하나는 Map이고 다른하나는 LIst로 서로 다른 컬랙션 객체인데 어떻게 값을 넣어 주는 지 궁금합니다. 정리하면 아래 addForm.html 코드에서 <!-- multi checkbox --> <div> <div>등록 지역</div> <div th:each="region : ${regions}" class="form-check form-check-inline"> <input type="checkbox" th:field="*{regions}" th:value="${region.key}" class="form-check-input"> <label th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">서울</label> </div> </div> <input type="checkbox" th:field="*{regions}" th:value="${region.key}">에서 item.regions에 값을 넣어주지도 않았는데 item.regions와 region.key가 어떻게 비교할 수 있는 지 궁금합니다.
제가 무신사 웹 크롤링을 진행하고 있는데 다른 항목들은 아래와 같은 방법으로 수집을 했는데 리뷰데이터만 수집이 안되고 빈 리스트로 수집이 되더라고요 혹시 어떤 부분이 문제이고 어떤 방식으로 해결해야할까요? review-contents__text 부분을 크롤링하고 싶습니다 !
안녕하세요, 강사님~ 질문1. 숫자 계산 하는 함수들은(예:sum,max,sumif 등) 지정된 범위 안에 문자값이 있어도 알아서 제외하고 숫자들만 계산을 해주나요? 질문2. (이미 표로 만들었는데) 표 이름을 설정할 때, 표 전체를 지정한 뒤 해야하나요? 표 중에서 한개의 셀만 선택한 뒤 표 이름을 설정하면 문제가 되나요? 질문3 . 표영역을 늘렸다가 줄였을 때 생긴 데이터는 자동으로 삭제가 안되나요? 그리고 섹션8에서 사용하는 예제파일에서 각 사업소별 상/하반기 총합계 수식이 이상한 것 같아요. 확인 부탁드립니다. 항상 감사합니다!
안녕하세요 11:45초 경의 payment를 평가하는 과정에서 발행하는 과정을 제가 이해한대로 정리해 보았는데 틀린 부분이 있는지 궁금합니다. go() 를 통해 함수들을 연달아 수행하게 한다. 그 내부에는 L.range, L.map , L.takeUntil, _.flat이 들어가 있다. L.range, L.map , L.takeUntil은 모두 Lazy 함수이므로, 제너레이터를 생성한다. 즉, next()로 값을 요구하기 전까지는 리턴하는 값이 없다. _.flat()은 Lazy 함수가 아닌 일반 함수이다. 따라서 리턴값을 내 놓기 위해 리턴에 해당하는 배열을 모두 채워야 한다. flat이 값을 채우기 위해 takeUntil에 next()를 요청한다. takeUntil은 flat에서 주기 위한 값을 만들기 위해 map 에 next()를 요청함. map도 마찬가지로 range에 next 요청 range는 next()를 통해 1을 반환한다. map은 받은 1을 가지고 Impt.getPayments를 실행시키고, 반환되는 promise를 takeUntil에 넘김 takeUntil은 받은 프로미스를 해결되면 조건식에 넣어서 판단할 것이라는 새로운 프로미스를 생성하여 리턴값으로 반환함. flat은 takeUntil로 부터 받은 프로미스가 해결되면 그 값을 자신의 결과 배열에 넣을 것이라는 프로미스를 생성하여 반환함. (* 이때 console.log를 찍게되면, 여기서 반환되는 프로미스가 출력되는 것 ) 잠시후에 프로미스 체인에 연결된 모든 프로미스가 resolve 되고, resolve 된 값은 flat의 결과 배열에 넣어짐. 끝나지 않은 상태이므로 flat은 takeUntil에 또 값을 요청함 ( flat 에서 해결된 프로미스는 (끝나지 않았을 경우) 다시 프로미스를 반환함. 즉, flat이 어떤 조건을 만족해서 더 받아오는 것이 끝나야 비로소 promise가 완전히 resolve 되고, 비로소 res를 리턴할 수 있음 - (* flat~takeAll~take 이므로 FxJS / Strict /take.js 코드 참조 ) 6~12 번의 반복 flat이 takeUntil에 값을 요청했는데, takeUntil이 조건문을 만족하지 못하는 값을 받은적이 있어 false로 마감되었음. 따라서 next()를 해도 반환되지 못하고, 상태는 done임. flat은 더이상 받을 값이 없으므로, 최종 프로미스가 resolve 되고 그 동안 받아서 정리해온 배열을 리턴값으로 반환함
안녕하세요 선생님 강의 듣고 프로그램 배포해서 잘 운영하고 있습니다. 다름이 아니라 운영중에 데이터가 점차 쌓이면서 데이터가 많아지니 배치 속도가 조금씩 느려지더라고요. 아직 운영에 큰 이슈는 없지만 나중에는 문제가 될 수도 있겠다 싶어 질문드립니다. 보통 이런 경우에는 어떤 방법으로 속도를 개선 하는지 궁금합니다. 당장 생각 나는 방법이 오래된 날짜의 데이터는 지우는 방법인데 BATCH_JOB_EXECUTION 의 CREATE_TIME을 기준으로 지우려고 합니다. 메모리에 JOB_INSTANCE_ID를 저장하지 않고 처리 하려면 데이터 삭제 순서가 BATCH_JOB_INSTANCE 테이블이 먼저가 되는 상황이 되는데 외래키를 지우고 배치 프로그램을 운영해도 문제가 되지 않을지 궁금합니다. 쿼리 DELETE FROM BATCH_JOB_INSTANCE WHERE JOB_INSTANCE_ID IN ( SELECT DISTINCT JOB_INSTANCE_ID FROM BATCH_JOB_EXECUTION) 진행중인 프로젝트에 바로 사용한다고 시간이 없어 급하게 띄엄띄엄 들어서 못들은 강의가 많습니다. 혹시나 강의에 언급하신 내용이라면 죄송합니다. 훌륭한 강의 덕분에 프로젝트 무사히 완료 할 수 있었습니다. 감사합니다.
섹션 6. 스프링 DB 접근 기술 의 순수 JDBC 강의 수강 중, 코드 작성 후 16분에 재기동을 하는데 다음과 같은 오류가 떠 원인과 해결 방법을 질문합니다. 윈도우 회사 PC로 실습 중이며, h2 db는 권한 없음으로 bat 파일 기동되지 않아 javaw -jar h2-1.4.200.jar 명령어로 기동했습니다. 해당 명령어로 기동 시 http://192.168.70.178:8082/login.jsp?jsessionid=5137fb26224e404a43f0ac762325f8d5 주소로 접속됩니다. 2023-05-09 16:53:54.867 ERROR 17292 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed java.lang.IllegalArgumentException: Unresolvable class definition for class [org.springframework.boot.devtools.autoconfigure.DevToolsDataSourceAutoConfiguration$DatabaseShutdownExecutorEntityManagerFactoryDependsOnPostProcessor] at org.springframework.util.ClassUtils.resolveClassName( ClassUtils.java:331 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.adapt( TypeMappedAnnotation.java:474 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.getValue( TypeMappedAnnotation.java:397 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.TypeMappedAnnotation.asMap( TypeMappedAnnotation.java:283 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes( AbstractMergedAnnotation.java:193 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes( AnnotatedTypeMetadata.java:106 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes( AnnotatedTypeMetadata.java:81 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor( AnnotationConfigUtils.java:285 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation( AnnotationBeanNameGenerator.java:103 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName( AnnotationBeanNameGenerator.java:82 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass( ConfigurationClassBeanDefinitionReader.java:169 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass( ConfigurationClassBeanDefinitionReader.java:150 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions( ConfigurationClassBeanDefinitionReader.java:129 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions( ConfigurationClassPostProcessor.java:343 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry( ConfigurationClassPostProcessor.java:247 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support .PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors( PostProcessorRegistrationDelegate.java:311 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support .PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors( PostProcessorRegistrationDelegate.java:112 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support .AbstractApplicationContext.invokeBeanFactoryPostProcessors( AbstractApplicationContext.java:748 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:564 ) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh( ServletWebServerApplicationContext.java:147 ) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1303 ) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:1292 ) ~[spring-boot-2.7.11.jar:2.7.11] at juney.juneyspring.JuneySpringApplication.main( JuneySpringApplication.java:10 ) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run ( RestartLauncher.java:49 ) ~[spring-boot-devtools-2.2.10.RELEASE.jar:2.2.10.RELEASE] Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/autoconfigure/data/jpa/EntityManagerFactoryDependsOnPostProcessor at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na] at java.base/java.lang.ClassLoader.defineClass( ClassLoader.java:1016 ) ~[na:na] at java.base/java.security.SecureClassLoader.defineClass( SecureClassLoader.java:174 ) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass( BuiltinClassLoader.java:800 ) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull( BuiltinClassLoader.java:698 ) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull( BuiltinClassLoader.java:621 ) ~[na:na] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( BuiltinClassLoader.java:579 ) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass( ClassLoaders.java:178 ) ~[na:na] at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:521 ) ~[na:na] at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass( RestartClassLoader.java:144 ) ~[spring-boot-devtools-2.2.10.RELEASE.jar:2.2.10.RELEASE] at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:521 ) ~[na:na] at java.base/java.lang.Class.forName0(Native Method) ~[na:na] at java.base/java.lang.Class.forName( Class.java:398 ) ~[na:na] at org.springframework.util.ClassUtils.forName( ClassUtils.java:284 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.util.ClassUtils.resolveClassName( ClassUtils.java:324 ) ~[spring-core-5.3.27.jar:5.3.27] ... 30 common frames omitted Caused by: java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.data .jpa.EntityManagerFactoryDependsOnPostProcessor at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass( BuiltinClassLoader.java:581 ) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass( ClassLoaders.java:178 ) ~[na:na] at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:521 ) ~[na:na] ... 45 common frames omitted Process finished with exit code 0
Intellij 기반으로 공부하고 있는 맥북 유저입니다. 원래는 terminal로 "idea ." 명령어로 Intellij를 실행하고 공부하고 IntelliJ 내부 터미널로 git 명령어를 통해 백업하고 있었습니다. 그런데 오늘 intellij를 삭제 후 재설치하고 나니 intellij를 터미널에서 "idea ." 명령어로 실행되는 것이 불가능해졌습니다. 해당 환경설정하는 방법은 시도해봤습니다. (IntelliJ 실행 -> Tools -> Create Command-Line Launcher) 이걸 누르고 나면 아래와 같은 에러가 뜹니다. 환경변수에 설정하라는 뜻인 거 같은데 저 경로를 환경변수에 넣으라는 뜻인 거 같아서 시도해봤는데 별 효과가 없었습니다. (intellij -> 환경설정 -> terminal -> Path Variable에 추가해봤습니다.) 그리고... IntelliJ 내부에 자체적으로 있는 터미널도 말썽입니다. git 명령어 자체도 못 알아듣고요. (PC 내부에 있는 Terminal에서는 git이라는 명령어가 잘 작동합니다.) 그 외에 ls 명령어도 못 알아듣는 상황입니다. 해결 방법 아시는 분 계신다면 공유 부탁드립니다...
안녕하세요! 좋은 강의 잘 듣고 있습니다. 네트워크 부분에서 TCP vs UDP 부분을 듣고 있는데, 앞부분에서는 OSI 7계층과 TCP/IP 4계층을 설명해주실 때 하위 계층 중 데이터 링크 계층과 물리 계층이 네트워크 인터페이스 계층으로 통합된 형식으로 그림이 나와있었는데, 뒷 부분에서 TCP/IP 전송 계층에 대해 설명해주실때는 5계층으로 데이터 링크 계층과 물리 계층이 존재하는 것으로 나옵니다. 혹시 두 가지가 다른 경우인지, 4계층과 5계층 둘 다 있다고 생각하면 될지 궁금합니다.
안녕하세요! models 구성하고, app.js 로 db import도 다 했는데, node app.js 실행하면 다음과 같은 에러 메세지가 뜹니다. Post.belongsToMany called with something that's not a subclass of Sequelize.Model models에서 user, hashtag export 가 잘못된거 같아서 다 확인했는데, 문제를 못찾았습니다. 어떤 부분이 잘 못된걸까요? 감사합니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
안녕하세요 강사님! 다름이 아니라 지금 강의에서는 probability를 백분율 기준으로 세팅한다고 하셨는데 만분율이나 1억만분율 기준으로 세팅하고 싶으면 코드의 어느부분을 손대야하는건지 궁금합니다. 사실 지금 백분율 기준으로 세팅했다고 하셨는데 그 부분도 어디서 세팅하는건지를 모르겠어서..ㅠㅠ 급한 마음에 질문이 앞서 이와 관련해 뒷 강의 부분에 나오면 그거 참고해서 하겠습니다!