묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
post관련질문(깃헙링크남겨놨습니다.)
https://github.com/yunjunghun0116/myyoutubeapp_with_react 위 링크는 제 코드 링크입니다. 왜인지 모르겠으나 여러가지 수정을 해보아도 제자리걸음이기에 처음부터 다시 시작해보았으나 같은곳에서 오류가 생기네요 어제부터 거의 한 다섯시간은 구글링에 시간을 쓴듯하네요,, 아무리 알아봐도 제가 해결할수 없는것같아서 도움을 요청해봅니다. john ahn 님 무엇이 문제인지 알아봐주시길 바랍니다. 1.Failed to load resource: the server responded with a status of 404 (Not Found) 2.POST http://localhost:3000/video/api/video/uploadfiles 404 (Not Found) 이뿐아니라 504 error, 500 error도 나타날때도있고 안나타날때도있어서 참 의문입니다.
-
해결됨그림으로 배우는 자바, 파트2: 객체지향!
업캐스팅에 대해 질문드리고 싶습니다.
1.첫번째 내용에 업캐스팅후 해당 부모의 배열안에 넣는 내용을 배웠는데, 두번째 내용의 도형의 넓이를 구하는 과정에서 먼저 부모배열에 넣은 후 업캐스팅을 하여 메소드 오버라이딩을 보여주는것을 보았습니다. 해당 내용으로 복습하면서, 업캐스팅을 하지 않아도 부모 배열에 넣을 수 있는 것으로 결과물이 나왔습니다. public static void main(String[] args) { // 기사 객체 생성 및 초기화 Knight knight = new Knight(); knight.name = "아서스"; knight.hp = 180; knight.strength = 50; // 도적 객체 생성 및 초기화 Thief thief = new Thief(); thief.name = "발리라"; thief.hp = 120; thief.agility = 40; Adventurer[] advs = { knight, thief }; #toString 내용 출력 for (int i = 0; i < advs.length; i++) { System.out.println(advs[i]); } } 부모 배열에 자식 객체가 그냥 들어가는것으로 보이는데, 업캐스팅을 통해 부모 객체로 통일후 관리하면 어떤이점이 있는지 궁금합니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
EntityGraph 적용 시 account 조회 여부 다른 이유?
안녕하세요! 강의 너무 잘 듣고 있습니다. 배울수록 기억이 날라가는지 슬슬 헷갈려지기 시작하네요 ㅎㅎ 첫 질문 남겨봅니다. 최종 리팩토링된 조회 쿼리 기준으로,아래 두 쿼리의 account 조회결과의 차이가 어떤 이유로 달라지나요?(EntityGraphType 을 바꾸는 것으로 테스트해보니 이건 아닌거같네요..) - Study 조회할 때는 account 엔티티도 포함되어 조회됨 select study0_.id as id1_6_0_, tag2_.id as id1_11_1_, zone4_.id as id1_12_2_, account6_.id as id1_0_3_, account8_.id as id1_0_4_, study0_.closed as closed2_6_0_, study0_.closed_date_time as closed_d3_6_0_, study0_.full_description as full_des4_6_0_, study0_.image as image5_6_0_, study0_.path as path6_6_0_, study0_.published as publishe7_6_0_, study0_.published_date_time as publishe8_6_0_, study0_.recruiting as recruiti9_6_0_, study0_.recruiting_updated_date_time as recruit10_6_0_, study0_.short_description as short_d11_6_0_, study0_.title as title12_6_0_, study0_.use_banner as use_ban13_6_0_, tag2_.title as title2_11_1_, tags1_.study_id as study_id1_9_0__, tags1_.tags_id as tags_id2_9_0__, zone4_.city as city2_12_2_, zone4_.local_name_of_city as local_na3_12_2_, zone4_.province as province4_12_2_, zones3_.study_id as study_id1_10_1__, zones3_.zones_id as zones_id2_10_1__, account6_.bio as bio2_0_3_, account6_.email as email3_0_3_, account6_.email_check_token as email_ch4_0_3_, account6_.email_check_token_generated_at as email_ch5_0_3_, account6_.email_verified as email_ve6_0_3_, account6_.joined_at as joined_a7_0_3_, account6_.location as location8_0_3_, account6_.nickname as nickname9_0_3_, account6_.occupation as occupat10_0_3_, account6_.password as passwor11_0_3_, account6_.profile_image as profile12_0_3_, account6_.study_created_by_email as study_c13_0_3_, account6_.study_created_by_web as study_c14_0_3_, account6_.study_enrollment_result_by_email as study_e15_0_3_, account6_.study_enrollment_result_by_web as study_e16_0_3_, account6_.study_updated_by_email as study_u17_0_3_, account6_.study_updated_by_web as study_u18_0_3_, account6_.url as url19_0_3_, managers5_.study_id as study_id1_7_2__, managers5_.managers_id as managers2_7_2__, account8_.bio as bio2_0_4_, account8_.email as email3_0_4_, account8_.email_check_token as email_ch4_0_4_, account8_.email_check_token_generated_at as email_ch5_0_4_, account8_.email_verified as email_ve6_0_4_, account8_.joined_at as joined_a7_0_4_, account8_.location as location8_0_4_, account8_.nickname as nickname9_0_4_, account8_.occupation as occupat10_0_4_, account8_.password as passwor11_0_4_, account8_.profile_image as profile12_0_4_, account8_.study_created_by_email as study_c13_0_4_, account8_.study_created_by_web as study_c14_0_4_, account8_.study_enrollment_result_by_email as study_e15_0_4_, account8_.study_enrollment_result_by_web as study_e16_0_4_, account8_.study_updated_by_email as study_u17_0_4_, account8_.study_updated_by_web as study_u18_0_4_, account8_.url as url19_0_4_, members7_.study_id as study_id1_8_3__, members7_.members_id as members_2_8_3__ from study study0_ left outer join study_tags tags1_ on study0_.id=tags1_.study_id left outer join tag tag2_ on tags1_.tags_id=tag2_.id left outer join study_zones zones3_ on study0_.id=zones3_.study_id left outer join zone zone4_ on zones3_.zones_id=zone4_.id left outer join study_managers managers5_ on study0_.id=managers5_.study_id left outer join account account6_ on managers5_.managers_id=account6_.id left outer join study_members members7_ on study0_.id=members7_.study_id left outer join account account8_ on members7_.members_id=account8_.id where study0_.path=? - Event 조회 쿼리에서는 enrollment의 account id만 조회됨 select event0_.id as id1_4_0_, enrollment1_.id as id1_3_1_, event0_.created_by_id as created10_4_0_, event0_.created_date_time as created_2_4_0_, event0_.description as descript3_4_0_, event0_.end_date_time as end_date4_4_0_, event0_.end_enrollment_date_time as end_enro5_4_0_, event0_.event_type as event_ty6_4_0_, event0_.limit_of_enrollments as limit_of7_4_0_, event0_.start_date_time as start_da8_4_0_, event0_.study_id as study_i11_4_0_, event0_.title as title9_4_0_, enrollment1_.accepted as accepted2_3_1_, enrollment1_.account_id as account_5_3_1_, enrollment1_.attended as attended3_3_1_, enrollment1_.enrolled_at as enrolled4_3_1_, enrollment1_.event_id as event_id6_3_1_, enrollment1_.event_id as event_id6_3_0__, enrollment1_.id as id1_3_0__ from event event0_ left outer join enrollment enrollment1_ on event0_.id=enrollment1_.event_id where event0_.study_id=? order by event0_.start_date_time asc N+1 관련내용은 이해가 되었는데 account 를 보니 좀 헷갈려서.. 확실히 알고 싶어 질문 드립니다!!
-
미해결만들어 가면서 배우는 JAVA 플레이그라운드
배열로 구구단 다시구현
반복문안에 반복문 사용에 관한 부분을 해결할 수 없어서 질문드려요 public class Gugudan{ public static void main(String[] args) { int[] result = new int[9]; for(int j = 2; j < 10; j++) for(int i = 0; i < result.length; i++) { result[i] = j * (i + 1); } for(int i = 0; i < result.length; i++) { System.out.println(result[i]); } } }
-
미해결iOS12 앱 개발 퍼펙트 가이드
Stop Watch 질문
Stop Watch 강의도중 시간, 분, 초를 출력해보고 싶어서 코드를 짯습니다. 근데 start 버튼을 누르면 바로 hour부분이 09가 됩니다. 코드입니다. import UIKit class ViewController: UIViewController { @IBOutlet weak var labelHour: UILabel! @IBOutlet weak var labelMinute: UILabel! @IBOutlet weak var labelSecond: UILabel! @IBOutlet weak var startStopButton: UIButton! @IBOutlet weak var resetButton: UIButton! var isStart = false var timer = Timer() var startTime = 0.0 var elapsed = 0.0 @IBAction func startStop(_ sender: Any) { if isStart{ startStopButton.setTitle("Start", for: .normal) timer.invalidate() }else{ startStopButton.setTitle("Stop", for: .normal) startTime = Date().timeIntervalSince1970 - elapsed timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true) } isStart.toggle() } @IBAction func reset(_ sender: Any) { labelHour.text = "00" labelMinute.text = "00" labelSecond.text = "00" elapsed = 0.0 startTime = Date().timeIntervalSince1970 - elapsed startStopButton.setTitle("Start", for: .normal) timer.invalidate() isStart.toggle() } override func viewDidLoad() { super.viewDidLoad() labelHour.text = "00" labelMinute.text = "00" labelSecond.text = "00" startStopButton.setTitle("Start", for: .normal) resetButton.setTitle("Reset", for: .normal) } @objc func updateTime(){ elapsed = Date().timeIntervalSince1970 - startTime let df = DateFormatter() let date = Date(timeIntervalSince1970: elapsed) df.dateFormat = "HH" labelHour.text = df.string(from: date) df.dateFormat = "mm" labelMinute.text = df.string(from: date) df.dateFormat = "ss" labelSecond.text = df.string(from: date) } } 아래 사진은 5분 28초 경과 사진입니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
올려주신 코트 그대로 실행하는데 실행이 안됩니다.
강의자료에 있는 코드 chapter02_02.py를 vscode로 실행하는데 문법이 틀렸다고 나오는데 어디가 문제인지 모르겠습니다.
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 조회 - 동일한 타입 둘 이상 강의 질문 입니다.
스프링 빈 조회 - 동일한 타입 둘 이상 강의 질문 입니다. SameBeanConfig 내부 클래스 같은 경우 왜 static으로 해야만 하나요?? static으로 하지 않으면 에러가 발생하는데원인을 찾지 못해서요 ㅜ.ㅜ기본 자바로 봤을 때는 static으로 안해도 전혀 문제가 없어야 하는데 말이에요 ㅜ.ㅜ
-
해결됨Node.js에 TypeScript 적용하기(feat. NodeBird)
passport관련 에러가 있습니다
안녕하세요! 제로초님! 좋은 강의 항상 감사드립니다. < passport/index.ts > 질문과 답변란에 저와 같은 passport 에러가 있는 분이 있어 저렇게 제너릭을 사용했었습니다. 그래도 안되서, 제로초님이 질문란에 조언주신대로 tsc돌리고 에러확인해봤는데, console창에 ts파일에서의 에러와 같은 에러가 출력됩니다. 일단 계속 구글링 해보고 있습니다..! < model/user.ts >
-
미해결자바 입문자를 위한 강의
강사님 질문드립니다!
강사님의 강의를 듣기 시작한 열정 불타오르는 학생입니다! 머나먼 이야기지만 제 목표는 풀스택 개발자입니다. 현재 학원에서는 프론트 엔드수업으로 html css javascript jquery에 대하여 배우면서 포트폴리오를 만드는 요령에 대해 배우고 있습니다. 저녁시간에는 자바에 입문하고 나중에는 스프링까지 배우면서 포트폴리오를 두가지 유형으로 만들 생각을 하고있습니다. (6개월 목표) 학업 시간은 평일 9~6시까지 학원수업, 9시부터 12시까지 자바강의듣기 입니다 제가 6개월안에 두개의 포트폴리오를 현실적으로 만들 수 있을지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Address 관련 질문입니다.
안녕하세요, 강의 잘 듣고 있습니다. Address의 경우, 값 변경이 불가능하게 하기 위해 Setter를 제공하지 않고 전체 필드를 사용하는 생성자를 통해서만 값을 변경할 수 있도록 설계하셨는데요. 이와 같은 방법이 @Embeddable을 사용하지 않고 Member와 Delivery에 city, street, zipcode를 직접 매핑해서 사용하는 방법과 비교해 어떤 장점이 있는지 혹은 어떤 차이가 있는지 궁금합니다. 제가 현재 이해한 바로는 @Embeddable을 사용하더라도 결국, Address객체를 새로 만들어서 Member와 Delivery의 주소정보를 변경할 수 있고, 이는 @Embeddable을 사용하지 않았을때와 다른 점이 없어보여서 궁금증이 생겼습니다. @Embeddable을 사용하는 이유에 대해서 좀 더 자세히 알고 싶습니다. (추가로 이뮤터블하게 설계한다는 것이 구체적으로 와닿지 않아 해당 부분도 설명해주시면 감사하겠습니다.)
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
springboot sign-up test 질문드립니다.
안녕하세요 백기선선생님. 현재 강좌를 잘보고 있습니다. 저는 타임리프를 사용하지 않고 기존에 만든 프로젝트가 있어서 jsp로 예제를 따라하는 중인데요 스프링시큐리티 적용하고 jsp 페이지를 컨트롤러에서 호출해서 정상적으로 로드되는 것은 확인 하였습니다. 그런데 테스트를 진행시에 404에러가 뜨면서 호출이 되지 않는데요 원인을 잘 모르겠습니다. application.properties 파일 spring.mvc.view.prefix= /WEB-INF/views/spring.mvc.view.suffix= .jsp 따라서/user/sign-up 을 리턴하구요 @GetMapping("/sign-up")public String signUpForm(Model model) { return "/user/sign-up";} 컨드롤러에서는 위에 url을 호출시에 정상적으로 페이지가 열립니다. 아래는 컨트롤러 테스트입니다. package com.seongbindb.recipe.controller;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.web.servlet.MockMvc;import static org.junit.jupiter.api.Assertions.*;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;@SpringBootTest@AutoConfigureMockMvcclass UserControllerTest { @Autowired private MockMvc mockMvc; @DisplayName("회원 가입 화면 보이는지 테스트") @Test void signUpForm() throws Exception { mockMvc.perform(get("/sign_up")) .andExpect(status().isOk()) .andExpect(view().name("/user/sign-up")); }} 아래는 콘솔 로그입니다. java.lang.AssertionError: Status expected:<200> but was:<404> Expected :200 Actual :404 <Click to see difference> at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:59) at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:122) at org.springframework.test.web.servlet.result.StatusResultMatchers.lambda$matcher$9(StatusResultMatchers.java:627) at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:196) at com.seongbindb.recipe.controller.UserControllerTest.signUpForm(UserControllerTest.java:24) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53) 2021-02-15 21:20:56.279 INFO 11843 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' Process finished with exit code 255
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
동전분배하기 (DFS)
안녕하세요 동전분배하기 문제를 풀고 있는데 in1.txt 에서 [5, 300, 10, 10, 10, 10]이 주어진다면 (300), (10, 10, 5), (10, 10)으로 분배해서 최소차가 280인게 가장 작은 차 아닌가요? 제가 착각한거 일 수 있는데 답이 290이라 어떻게 이렇게 나오는지 궁금합니다.
-
미해결페이스북 클론 - full stack 웹 개발
class 와 id 의 차이
전부다 클래스 혹은 아이디로 써도 되나요? 저렇게 구분지어서 사용하는 이유가 무엇인가요!?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
안녕하세요 선생님 lock과 spinlock에 대해서 질문드립니다.
예전 스핀락 설명 하실때 메모한 내용입니다. 락을 걸고 있는 상대방이 조금만 기다리면 놔줄 것 같다는 확신이 있을 때는 굳이 Context-Switching까지 가지 않고 무식하게 대기하는 SpinLock이 좋습니다. 비행기 1인 화장실 앞에서 대기하는데, 안에서 손 씻고 있는 소리가 들린다면, 굳이 자리에 돌아가서 대기하기 보단 문앞에서 조금만 더 기다리는게 현명합니다. MMO에서 lock을 쓰는 경우는 대부분 컨텐츠의 멀티쓰레드 경합 처리에서 사용하게 되는데, 어마어마하게 오래 걸리는 작업이 아닌 경우가 많기 때문에 SpinLock이 대부분의 경우에서 유리합니다. 질문 컨텍스트 스위칭이라는게 a쓰레드가 공유 자원을 다쓰고 쓰레드 풀로 들어가면 b라는 쓰레드가 공유자원을 획득해서 사용하는 걸로 알고 있는데 그러니까 프로세스 내부에 stack 공간만 바뀌는 스핀락이라는게 무한 반복 타고 들어가서 계속 기다리잖아요 상대방이 빠져나올떄 까지 lock은 접근 했다가 a라는 쓰레드가 사용중이네 글멈 나는 다른 작업 하고 이따 한번 더와바야지 이 개념이 아닌가요? 여기서 왜 컨텍스트 스위칭이라는 표현을 쓰셨는지 여쭤봅니다? a가 가고 b가 들어가야 컨텍스트 스위칭이 성립되는 게 아닌가요?
-
미해결iOS 개발을 위한 swift5 완벽 가이드
drop while 문제
drop while 에서 Character 대신 ch 로 써도 동일한 결과가 나옵니다!ㅜㅜ
-
미해결정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
안녕하세요. int n = grid[0].length가 궁금합니다.
현재 문제에서는 row, column이 정해진 사이즈라서 grid[0]으로 하신건가요? 만약에 변수를 이용한다면... 재귀를 탈출하려는 조건문 즉, if(i<0||i>=m ....) return; 이 다음에 int n = grid[i].length 와 같이해도 되겠죠?
-
미해결웹 게임을 만들며 배우는 React
이미지 div 부분의 style 템플릿 리터럴 부분이 적용이 되지 않습니다.
render() { const {result, score, imgCoord} = this.state; return ( <> {imgCoord} <div id="computer" style={{ background : `url('https://en.pimg.jp/023/182/267/1/23182267.jpg') ${imgCoord} 0` }}/> <div> <button id="rock" className="btn" onClick={() => this.onClick('바위')}>바위</button> <button id="scissor" className="btn" onClick={() => this.onClick('가위')}>가위</button> <button id="paper" className="btn" onClick={() => this.onClick('보')}>보</button> </div> <div>결과 {result}</div> <div>현재 {score}</div> </> ); } 1. 선생님 방식대로 따라했으나 이미지가 변경되지 않습니다. {imgCoord}를 별도로 꺼내서 찍어보면 변경이 되는데 <div id ="computer" 의 `${imgCoord}`여기에 넣을 경 해당 태그의 속성에서는 값이 변경이 되지 않습니다 .왜그럴까요 ?
-
미해결얄팍한 GraphQL과 Apollo
npm start 에러가 나와서 여쭙고 싶습니다
(사진)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
use effect 부분에서 에러가나는 건지요...
import React ,{useEffect, useState} from 'react' import axios from 'axios'; import ProductImage from './Sections/ProductImage'; import ProductInfo from './Sections/ProductInfo'; import {Row, Col} from 'antd'; function DetailProductPage(props) { const productId = props.match.params.productId const [Product, setProduct] = useState({}) useEffect(() => { axios.get(`/api/product/products_by_id?id=${productId}&type=single`) .then(response =>{ if(response.data.success){ setProduct(response.data.product[0]) }else { alert('상세 정보 가져오기를 실패했습니다.') } }) }, []) return ( <div style={{widht: '100%', padding : '3rem 4rem'}}> <div style = {{display : 'flex', justifyContent:'center'}}> <h1>{Product.title}</h1> </div> <br /> <Row gutter={[16,16]}> <Col lg={12} sm= {24}> {/* Product image */} <ProductImage detail={Product} /> </Col> <Col lg={12} sm= {24}> {/* Product Info */} <ProductInfo detail={Product} /> </Col> </Row> </div> ) } export default DetailProductPage 우선 상세페이지 버튼 눌렀을때 나는 에러입니다,,, 뭔가 터미널에 찍히는것도 그렇고 hook에 관한 내용이 나오는 것 같은데 ..
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
format의 등장이유
*args언패킹 할 때 format이 등장하는 이유? 가 무엇인가요 뒤에 v에는 format 없이 출력할 수 있는 이유가 무었인가요