안녕하세요. skt에서 제공하는 api로 데이터를 받아서 원하는 데이터를 콘솔로그까지 뿌려보는 작업까지는 성공했습니다. const getData = async() => { try { const response = await axios(config); console.log(response.data['cin']['con']); } catch (error) { console.log('최근 데이터가 없습니다.'); } } 이 코드에서 response.data 저장된 값을 sequelize로 만들어진 mysql DB 테이블에 원하는 값만 저장하고 싶은데 예시로 짜본 코드는 다음과 같습니다. const saveData = async()=>{ try { const response = await axios(config); await db.db_test.create({ creator : response.data['cin']['cr'], location : response.data['cin']['ppt']['devl'], creat_time : response.data['cin']['ct'], lastest_time : response.data['cin']['lt'], expire_time: response.data['cin']['et'], contain_data : response.data['cin']['con'] }).then(resolved,rejected); } catch (error) { console.log(error); } } saveData(); 코드를 실행하면 테이블 만들어지는 화면만 나오고 데이터가 Db에 저장이 안됩니다. DB 싱크는 해놓은 상태입니다. 참고로 response.data['cin']에 들어가 있는 데이터는 다음과 같이 저장이 됩니다.
안녕하세요 영한님! 환경설정 - JPA와 DB 설정, 동작확인 파트에서 20분쯤에 jar로 빌드하는 부분에서 오류가 나서 문의드립니다! 환경은 윈도우이고 아래와 같이 build.gradle Settings-Build, Execution, Deployment-Build Tools-Gradle에서 Gradle-JVM Settings-Build, Execution, Deployment-Build Tools-Compiler-Java Compiler에서 Project bytecode version Project Settings-Project에서 Project SDK와 Project language level Project Settings-Modules에서 Language level 이 부분 모두를 11로 설정해주었는데도 다음과 같이 에러가 발생합니다. 동일한 오류가 났던 분들이 해결한 방법대로 설정을 바꾸어보고, 혹시 h2가 켜져있는 것의 문제인가 싶어서 끄고도 해보고 켜보고 해보았지만 해결이 되지 않아서 혹시 다른 방법이 있을까 하여 질문 드리게 되었습니다. 감사합니다! C:\workspace\jpa-shop>gradlew build --stacktrace > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileJava'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:200) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:198) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) Caused by: java.lang.IllegalArgumentException: Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. at org.gradle.api.internal.tasks.AbstractJavaToolChain$UnavailableToolProvider.newCompiler(AbstractJavaToolChain.java:108) at org.gradle.api.tasks.compile.JavaCompile.legacyCompiler(JavaCompile.java:317) at org.gradle.api.tasks.compile.JavaCompile.createToolchainCompiler(JavaCompile.java:309) at org.gradle.api.tasks.compile.JavaCompile.createCompiler(JavaCompile.java:301) at org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:235) at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:209) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104) at org.gradle.api.internal.project.taskfactory.IncrementalInputsTaskAction.doExecute(IncrementalInputsTaskAction.java:32) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:555) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:540) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:523) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:271) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:260) at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:33) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26) at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67) at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44) at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54) at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38) at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:42) at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159) at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72) at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24) at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92) at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39) at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40) at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28) at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:187) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) * Get more help at https://help.gradle.org BUILD FAILED in 2s 1 actionable task: 1 executed
Controller DTO SERVICE Book Entity 위와 같은 DTO를 만들어 넘겨주는 형태가 1.Controller->Service로 넘어가는 파라메터가 많을경우 최적화가 잘 되어있는 형태가 맞는지 궁금합니다! 2.BookForm 과 DTO의 분리 이 예제에서는 BookForm 과 ItemUpdateDTO 과 같지만, 실무에서는뷰에서 사용하는 객체와, DTO 객체는 필드가 다르거나 다른 로직이 들어가게 되므로 분리하는것으로 이해하였습니다. 만약 뷰와 서비스에서 필요로하는 필드가 같다면, 뷰에서 받는 파라메터를 BookForm이 아닌 UpdateItemDTO로 받아도 괜찮은지 궁금합니다
안녕하세요. 깔끔한 수업 정말 감사드립니다. Spring에 익숙하지 않아, DI 관련하여 질문 드리고자 합니다. DI를 통해 수정 없이 조립 만으로 구현 변경이 가능하여 이 부분이 장점이라고 말씀주셨습니다. 구현이 바뀐 뒤 그 구현을 사용하기 위해 변경하는 코드가 적다는 부분은 확실한 장점으로 보입니다. 하지만, config를 수정하는 것 역시 재컴파일하여 재배포하는 과정이 필요하지 않나요? 만약 이렇게 재컴파일 & 재배포가 필요한 과정이라면, 객체 주입을 그냥 main에서 programmer가 new를 통해 해주는 것과 어떠한 부분이 다른 지도 궁금합니다. 또, config를 통해 runtime에서 수정이 되거나 하는 등 재컴파일 없이 수정할 수 있는지 궁금합니다. 또한, 다른 장점이 있는지 궁금합니다. (제가 이해한 바로는, 객체 지향적인 프로그래밍을 강제하기 위해, 그리고 그 강제성을 통해 위와 같은 조립이 손쉽게 이루어질 수 있도록 하기 위해. 라고 이해했습니다.) 업무도 있어 바쁘실텐데, 답변 주시면 감사하겠습니다. :)
4분 28초 부분에서 28번째줄 설명해주시는 부분이 잘 이해가 안되네요. 교수님의 예제에서는 7번째 줄에서 사용자의 입력을 c = getchar()로 받아왔으니까 사용자의 입력은 c 에 담겨있죠. 그러면 28번쨰 줄은 while (c != '\n') continue; 가 되어야 하는거 아닌가요? 왜28번쨰 줄을 while(getchar() != '\n') 으로 써야하는건가요? while(getchar() != '\n') 로 쓰면 getchar()를 사용자가 엔터를 한번 더 누르기 전까지 7번째 줄로 돌아가지 않아야 하지 않나요?
안녕하세요. 정말 감사하게 강의 잘 듣고 있습니다. 어려운 알고리즘도 너무 쉽게 설명을 잘 해주셔서 감사합니다. 추가로 계획된 알고리즘 강의도 기대됩니다. 개설하시면 바로 신청할 예정입니다. 저지사이트에 LIS 문제를 선생님이 알려주신 코드를 적용하여 잘 해결했는데요.. n<=100,000 인경우에는 O(n^2)알고리즘으로는 해결할 수 없다고 문제에 나와 있어서...시간초과가 납니다. 어떤 알고리즘을 적용하면 좋을지 조언을 구합니다. 감사합니다.~
안녕하세요, 질문 드리겠습니다. 롬복에 의해 만들어지는 생성자를 사용하면 굉장히 편리할 것 같네요. 그런데 롬복이라는 녀석이 @Autowired까지 전부 해결해주는 것인가요? 아니면 생성자가 하나만 있어서 @Autowired 를 생략해도 되기 때문에 자동주입이 이뤄지는 것인가요? 만약 롬복을 사용한 상태에서 생성자가 여러개있다면, 롬복에의해 만들어진 생성자가 @Autowired의 기능을 수행할 수 있나요?
calcValues() 함수 부분에서 조금 머리가 안따라주고있는데요.. // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 let scrollRatio = currentYOffset / sceneInfo[currentScene].scrollHeight; rv = scrollRatio * (values[1] - values[0]) + values[0]; 위의 코드부분이 이해가 잘안갑니다. 1. scrollRatio는 스크롤된 범위를 비율로 구한다고하는데. 현재 활성화된 씬 높이 / 현재 씬의 높이 이 공식이 원래 있는 수학 공식인가요? 스크롤 된 범위 <<< 이게 제가 보고있는 현재 화면을 말하는걸까요? 2. rv = scrollRatio * (values[1] - ..... ) 이 코드를 풀어보면 현재 활성화된 씬 * 내가 활성화 시킬 요소의 범위 + 활성화시킬 요소의 값 으로 풀어봤는데.. 맞나요? 이것또한 1번과 같이 원래 있는 수학공식인건가요? 간단한 수학이겠지만.. 저한테는 너무 어렵네요 ㅠㅠㅠ 조금 더 설명이 가능하실까요? 죄송합니다.ㅜㅜ
DB에 대한개념이 좀 딸리는거같아 질문드립니다. 음식으로 예를 들겠습니다. 가게들이 만약 여러개가있으면 A라는 가게와 B라는 가게 C라는가게 등 업종이 비슷한 가게가있으면 메뉴도 비슷할것인데 가격은 미세하게 다를거라고 생각됩니다. 이거를 저장하려고 하니 식당이름들을 모은 테이블1과 메뉴를 모은 테이블1을 다대다로 하면 가격은 어디다가 저장을 해야할지 모르겠어서 가격이적힌테이블을 하나더 만들고 여기다가 메뉴테이블과 식당이름 테이블을 외래키로 지정해야할까요? 만들다가보니 계속 이런방식의 테이블 구조가 계속나오는거 같습니다. 중복적인 부분이 계속나와서 빼려고하니 몇개의 중복이 더생기는부분을 원래는 어떤방법으로 해결하는지 궁금합니다. 여기 강의에서는 comment부분테이블과 비슷하게 테이블을짜야하는건지라고 생각되는데 맞을까요
PS C:\Users\82102\Desktop\myfirstmap> express --ejs myfirstmap express : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\82102\AppDa ta\Roaming\npm\express.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_ Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조 하십시오. 위치 줄:1 문자:1 + express --ejs myfirstmap + ~~~~~~~ + CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Users\82102\Desktop\myfirstmap>