묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결얄팍한 GraphQL과 Apollo
4-1 질문사항있습니다.
수업 잘 듣고있습니다! 좋은강의 올려주셔서 감사합니다. 다름이아니라 Apollo Client를 구성하던 도중 한가지 의문사항이 들어서 질문합니다. client쪽에서 roles.js 를 구성하던 도중 생긴 에러입니다. 상황은 Side Nav bar에서 특정 role을 선택하면 생기는 오류입니다. console.log()로 데이터들을 찍어보았는데, Nav Item들을 onclick할 때마다, setContentId를 업데이트는 시켜주지만, 따로 useQuery()를 실행하는 operation은 없어서 기존에 존재하던(처음 렌더링될 때 실행된 useQuery)기준으로 값을 받아와서 []의 값을 사용하기 때문에 에러가 나는것으로 생각됩니다. apollo playground로 실행했을때는 Query에 맞춰 값이 다 제대로 나옵니다. 위에서 onclick시에 세팅해주는 값은 contentId뿐이 없고, 따로 graphQL의 userQuery를 실행하는 문장은없는데 어떻게 값이 변경되서 나오고 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
프록시 객체를 찾는법
안녕하세요 언제나 좋은강의 감사드립니다. 1. request스코프는 고객의 http request요청이 있어야지만 생성이 가능하다 2.provider는 provider를 이용한 지연처리, DL을 통해 요청시점까지 기다렸다가 요청시점에 생성한다 3.프록시는 먼저 CGLIB을 통한 가짜 객체를 생성해서 스프링 컨테이너에 등록하고 그 가짜 객체를 주입, 진짜가 필요시 그 시점에 진짜를 조회해서 넘긴다. 라고 생각하여 테스트 코드를 작성해 보았습니다. public class ProxyTest { @Test @DisplayName("프록시 객체는 애플리케이션 실행시 컨테이너에 등록되는가?") void proxyFindTest() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ProxyProto.class); String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String name : beanDefinitionNames) { Object bean = ac.getBean(name); System.out.println("bean = " + bean.getClass()); } } @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) static class ProxyWeb { @PostConstruct public void init() { System.out.println("ProxyWeb.init : " + this.getClass()); } } @Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS) static class ProxyProto { @PostConstruct public void init() { System.out.println("ProxyProto.init : " + this.getClass()); } }} 위와 같은 테스트 코드를 작성해 보았는데요, prototype의 경우 프록시를 통한 가짜 객체와, 진짜 객체가 둘다 등록된걸 확인 할 수 있었지만 request의 경우 예외를 터트렸습니다. No Scope registered for scope name 'request' 이로 인해 제가 이해했던것들의 혼란이 오게 되었는데요, request의 가짜객체는 언제 등록이 되는건가요?
-
미해결대세는 쿠버네티스 (초급~중급편)
k8s 설치 - cannot find a valid baseurl for repo base/7/x86_64 에러
아래 똑같은 질문이 있는데 답변을 얻을 수 없어 똑같은 질문을 남깁니다. yum update -y 입력하니 cannot find a valid baseurl for repo base/7/x86_64 라고 나옵니다. 네트워크 자체에 문제인가 싶어서 ping 8.8.8.8을 날려보니 Destination host unreachable 이라고 나오네요. 제가 vm이용하여 가상환경 만들고 centos 사용을 처음해봐서 잘 모르겠습니다. 구글링 통해서 설치하는대로 하면 할 수 있겠는데, 아무래도 강의와 동일한 실습환경을 위하여 설치안내서에 나와있는대로 설치하려다보니 잘 안되는 것 같습니다. 제기 시도해 본 것 아래 적어봅니다. 설치는 v1.15 버전 입니다. 1. https://hec-ker.tistory.com/333 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 이용하여 onboot 확인하기. onboot=yes 상태입니다. 2. 아이피 주소 바꿔보기. 설치 실습자료실 2-2-1)Centos 설치 4번 네트워크 설정에서 아이피 주소/넷마스크/게이트웨이/dns주소를 제 cmd에서 ipconfig에 나와있는 주소로 바꿔서 해보았습니다. => 역시 ping해도 똑같은 결과가 나옵니다. 2-1-1)vm 스펙설정 7번에서 어댑터에 브릿지 선택했고 intel Pro/1000 MT Desktop(82540EM) 을 어댑터로 사용하고 있습니다. 제 생각에는 분명 안내에 나와있는대로 설치한 것 같은데 어디서 문제가 생겼는지 모르겠습니다. 설치 과정 중 네트워크 설정의 문제인지, 아니면 제가 사용하고 있는 네트워크 자체의 문제인지 모르겠습니다. centOS랑 virtualbox를 5번 이상 삭제하고 다시 설치하고 시도해봤는데 잘 안되네요. ㅜㅜ 혹시 ip를 위에 나와있는 제 ip로 바꿔서 설치진행해야 한다면 제일 위에 이더넷 어댑터 이더넷 이라고 나와있는 부분에 있는 ip주소들을 이용하는게 맞을까요? 참고로 이걸로 바꿔서 설치해보았으나 안됬습니다. ㅜㅜ
-
해결됨[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
zigzag에 quit 버튼 추가
강의를 다 듣고 응용을 해보는 중입니다. 첫 화면에 quit 버튼을 추가하여 클릭 시에 앱이 꺼지도록 설정하고 싶은데 클릭을 하면 바로 게임이 시작되어 버튼 클릭 이벤트가 먹히지를 않네요.. 나름 생각을 해서 GameController의 Start 메소드 내 while문에 이렇게 작성을 해봤는데 버튼 클릭이 아예 먹히지 않는게 순서가 옳지 않은 듯 하네요. 혹시 조언을 구할 수 있을까요?
-
미해결Vue.js + TypeScript 완벽 가이드
깃헙 권한 요청 드립니다~
안녕하세요~ 2번째 프로젝트를 수강하기 위해 깃헙 레퍼지토리 권한 요청 드립니다. 계정은 pyyyyye 입니다. 감사합니다 :)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
궁금한점이 있습니다
로그인 하지 않고 /item 요청시 1. LogFilter 필터 2. LoginCheckFilter 필터 순으로 실행되는데 로그인 필터에서 httpResponse.sendRedirect("/login?redirectURL=" + requestURI); 으로 redirect한 부분에서 이해가 되질 않습니다. 해당 URL : /login?redirectURL=requestURL 로 클라이언트에서 다시 재요청하는데 처음에는 @GetMapping("/login")public String loginForm(@ModelAttribute("loginForm") LoginForm form) { return "login/loginForm";} get 메서드로 매핑된 loginForm으로 컨트롤러가 호출되어 화면을 랜더링해주고 그다음에 @PostMapping("/login")public String loginV4(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, @RequestParam(defaultValue = "/") String redirectURL, HttpServletRequest request) { if (bindingResult.hasErrors()) { return "login/loginForm"; } Member loginMember = loginService.login(form.getLoginId(), form.getPassword()); if (loginMember == null) { bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다."); return "login/loginForm"; } //로그인 성공 처리 //세션이 있으면 있는 세션 반환, 없으면 신규 세션을 생성 HttpSession session = request.getSession(); //세션에 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); return "redirect:" + redirectURL;} POST 메서드로 매핑된 loginV4 메서드가 호출되는거 아닌가요? 그러면 처음 필터에서 redirect로 해당 URL 파라미터로 보낸 쿼리 파라미터인 redirectURL=requestURL을 POST 메서드(loginV4)에서 사용할 수 있게 쿼리 파라미터를 유지 시켜줘야하는거 아닌가요? get 메서드 loginForm에서 쿼리 파라미터로 받은 값은 loginForm.html에서 사용할 수 있지만 다시 post메서드인 loginV4에서 사용하기 위해 loginForm.html에서 쿼리 파라미터를 보내줘야하는거 아닌가요..?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
GIL 관련 질문
GIL 관련 질문이 있습니다. 1) 먼저 만약 GIL 을 써서 multi-thread 진행시, 다른 thread 에서 같은 변수에 접근을 못하게 막는다면, cpu 연산만 필요한 코드의 경우에는 전혀 빨라지지 않고 오히려 느려지는거 같은데, 맞을까요? 2) 그리고 뒤쪽에 수업중에 GIL 에도 불구하고, 파이썬에서 multi-thread 쓰는 경우는 system call 작업이 진행되는 I/O bound 일 때 multi-thread 가 효과를 발휘한다고 말씀주신거 같은데(python2,4 모두 수강중입니다), 왜 그럴까요? 어차피 single thread 에서 async non-block 으로 하면 system call 일들을 안기다리고 다른 일이 진행되고, system call 된 다운로드등의 일처리가 끝나면 결과를 받아서 처리하는게 마찬가지 아닌가 해서 질문드립니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 풀이도 맞을까요?
import sys sys.stdin = open("input.txt","r") n = int(input()) arr = [] for i in range(n) : arr.append(list(map(int,input().split()))) answer = 0 max_ans = 0 for val in arr : dice = [0] * 7 for i in val : dice[i] +=1 max_val = 0 for idx, value in enumerate(dice) : if max_val < value : max_val = value index = idx if max_val == 3 : tmp = 10000 + index*1000 if max_ans < tmp : max_ans = tmp elif max_val == 2 : tmp = 1000 + index*100 if max_ans < tmp : max_ans = tmp else : max_dice = 0 for j in val : max_dice = max(max_dice, j) tmp =max_dice * 100 if max_ans < tmp : max_ans = tmp print(max_ans) 안녕하세요 강사님 강의 잘 듣고 있습니다. 이렇게 풀이하여도 괜찮을까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
state의 무결성?
안녕하세요. 올려주신 리엑트쿼리 기반으로 연습하고 있습니다. antd의 datepicker 이용해서 기간별로 포스트 불러오는걸 해보고 있습니다. 리액트의 state에 관해서 좀 기초적인?원초적인? 질문이 있습니다.. 출발날짜의 상태와 변경함수 const [ startDate, setStartDate ] = useState(moment().subtract(5, 'days')); ... const onChangeStartDate = (date, dateString) => { setStartDate(date); }; 날짜 변경후 적용버튼 눌러 서버 데이터 갱신하는 부분 const onLoadTodos = () => { if(!startDate || !endDate){ message.error('날짜를 선택해 주세요.', 0.5); return; } queryClient.invalidateQueries('orders'); } 데이터 가져오는 useQuery 부분 const { status, isLoading, data: orders } = useQuery('orders', () => { console.log('useQuery'); console.log(startDate); const from = startDate.toDate(); const til = endDate.toDate(); const params = {from:from, til:til, stat1: orderStatOpt}; console.log(params); return loadTodosAPI(params)} ... 날짜를 변경setStartDate(date);한다음에 <Button onClick={()=>{console.log('메롱', startDate)}}>날짜보기</Button> 이렇게 버튼으로 startDate값을 가져오는것과 invalidateQueries('orders'); 로 useQuery('orders',를 불러서 안에서 startDate를 가져오면 값이 다르게 나오는데.. 원래 state의 값이 다르게 나오기도 하나요? 아니면 useQuery안에서 state가 다르게 작동한건지.. 이상태에서 브라우저밖으로 커서 이동했다가 다시 들어오면(갱신시) state값이 동기화되긴 합니다..
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 접근 권한 요청드립니당 (__)
안녕하세요. 기효님ㅎㅎ어쩌다보니.. 제가 뷰를 실무에서 쓰게 되어서 이렇게 또 뷰 강의로 기효님을 찾아뵙게 되었습니다 ㅎㅎ깃헙 권한을 요청드릴게요 - 인프런 아이디 : leesugar90@naver.com (facebook연동) - 인프런 이메일 : leesugar90@naver.com - 깃헙 아이디 : leesugar90@gmail.com - 깃헙 Username : seolranlee 이전에 뷰 강의들었을 때 해당 레파지토리에 초대해주셨었는데 유효기간이 만료되서 재 요청 드려요ㅠㅡㅠ 아 그리고 더하여서.. 실무에서 Vue + vue-server-renderer로 SSR을 구현하고 있어서 이에 대한 학습이 필요한데, 혹시 기효님의 Nuxt강의를 들으면 어느정도 도움이 될까요? vue-server-renderer로 SSR을 구현하는거랑 Nuxt로 구현하는 것은 또 완전히 다른 개념일지 궁금합니당.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
makefile 오류 관련 문제 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 맛비님. Makefile 3개 수정하고 빌드를 했는데 알 수 없는 오류가 나와서 질문 드립니다. lab8_axi4_lite_app의 Debug안에 있는 makefile에서 에러가 발생한다고 나오는 것 같은데 아무리 봐도 무엇이 문제인지 모르겠어요. 저 Path에 있는 파일 전부 확인했는데 문제 없어보이는데 이런 에러는 어떻게 해결하는지 알 수 있을까요? 아래는 Vitis Log 중 ERROR에 해당되는 내용입니다.. 13:43:14 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:14 ERROR : Failed to update application flags from BSP for 'lab8_axi4_lite_app'. Reason: null java.lang.NullPointerException at com.xilinx.sdx.sw.internal.SDxSwPlatform.<init>(SDxSwPlatform.java:305) at com.xilinx.sdx.sw.internal.SDxSwPlatform.create(SDxSwPlatform.java:214) at com.xilinx.sdx.sdk.core.util.SdkPlatformHelper.getSwPlatform(SdkPlatformHelper.java:61) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.getSwPlatform(SdkMakefileGenerationListener.java:160) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.syncAppFlags(SdkMakefileGenerationListener.java:78) at com.xilinx.sdx.sdk.core.build.SdkMakefileGenerationListener.preMakefileGeneration(SdkMakefileGenerationListener.java:48) at com.xilinx.sdk.managedbuilder.XilinxGnuMakefileGenerator.notifyPreMakefileGenerationListeners(XilinxGnuMakefileGenerator.java:91) at com.xilinx.sdk.managedbuilder.XilinxGnuMakefileGenerator.regenerateMakefiles(XilinxGnuMakefileGenerator.java:75) at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.performMakefileGeneration(CommonBuilder.java:1006) 13:43:15 ERROR : Failed to compute checksum of hardware specification file used by project 'lab8_axi4_lite_app' 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa"ㄴㅁ Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors. 13:43:16 ERROR : Failed to openhw "D:/Xilinx/Workspaces/lab8_matbi/lab8_axi4_lite_project_vitis/lab8_axi4_lite/export/lab8_axi4_lite/hw/lab8_axi4_lite.xsa" Reason: ERROR: [Common 17-39] 'hsi::open_hw_design' failed due to earlier errors.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
외부 라이브러리 관련 질문 드려요 선생님
chartjs 처럼 fullpage js도 가져왔는데 스크롤이나 버튼 누를때 계속 hash에 page1이 추가가되서 라우터 url영역을 벗어나요 하나에 페이안에서 스크롤되는게아니라 다른페이지로 이동한거처럼 되는데 어찌해야할까요..?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
트랜잭션 진행 중 에러 발생 시 close 질문
[질문 내용]15:20 분경에 try문 필요없이 persist 정도만 호출하면 된다고 하셨는데, 그럼 예외처리를 안해도 개발할 때 @Transactional 이 붙은 메소드가 실행 중 에러가 발생하면 스프링에서 자동으로 트랜잭션 롤백 및 EntityManager 객체의 close() 메소드가 실행되는 건가요 ?
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
설명주신 내용과 반대로 작업한 액슈어 화면을 컨플 등에서 보는 방법이 혹시 있을까요?
다른 툴에서 액슈어로 불러오기와 반대로 액슈어 작업한걸 컨플루언스 등에서 단순 링크가 아니라 페이지에서 직접 화면을 볼 수 있게 하는 방법이 혹시 있을까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
auto-scaler 강의 중 metrics server 설치 오류
안녕하세요, 강사님! autoscaler 실습을 진행하다 궁금한 점이 있어 질문합니다. 블로그에 해당하는 대로 kubernetes v1.22 버전으로 메트릭서버 설치를 진행는데 (1)번 이미지와 같은 어려움이 있습니다. (노란색 표시) 왜 이런 현상이 발생하는 걸까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
강사님 안녕하세요 맥 m1과 관련해서 질문이 있습니다.
쿠버네티스 설치시에 docker desktop에서 enable kubernetes를 하면 kubectl이 알아서 설치가 되어서 serviceacoount를 만들고 cluster-admin로 clusterRoleBinding을 하고 배포된 yaml파일로 대쉬보드를 띄어보니 생성된 토큰을 이용하여 로컬 8001포트로 접속이 잘 되었습니다. 맥과 같은 환경에서는 굳이 VM을 깔아서 할필요가 없는것인가요>>>?>??? 미리 답변 감사드립니다.!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
슬라이싱 문의
a리스트의 s번째부터 e번째 까지의 슬라이싱 표현이 강의에서는 a[s-1:e] 라고 하셨는데 이해가 잘안되어서 혹시 자세한 설명과 함께 a[s-1,e-1] 이 될수는 없는지요
-
미해결스프링 시큐리티
spring sercurity를 통해서 특정 행위 허용
안녕하세요. 강사님 좋은 강의해주셔서 감사합니다. 제가 시큐리티에 jwt를 사용해서 rest api 를 개발중인데요.제가 강의를 아직 덜 보았지만 DB를 통해서 권한 관리하는 방법을 사용중입니다..아래 처럼 사용중입니다. 개발중 문제가 하나 있는데 게시판 같은 글을 삭제 할때 보통 해당 url과 method까지 추가해서 권한을 부여 하고있거든요. 예를 들어 /api/posts/*, DELETE를 추가하고 권한은 ROLE_ADMIN, 과 ROLE_USER를 설정 했습니다. 그럼 해당 url의 method는 권한을 체크하여 허용하거나 불허 합니다. 다만 이 글이 작성자 혹은 관리자만 삭제 할수 있어야 하는데 매번 컨트롤러에서 유저 체크하고 권한 체크하는 코드를 넣어줘야 하는가 궁금증이 생겨 찾아보니 인터셉터에서 url과 method 를 체크하는 벙법이 있었고 아래 처럼 다른 분의 질문에 이런식으로 예시를 들어주셨더라구요. 그런데 아래 메소드의 파라미터의 user는 로그인한 user객체일텐데 제가 지우거나 수정 해야 할 글의 생정자id는 어떻게 가져와 비교를 하시는건가요? @PeAuthorize에 있는걸로는 잘 이해가 안되더라구요. rest api로 개발 하다보니 url은 /api/posts/1 과 같이 게시글 id만 보내는 상황입니다., 답변 부탁드리겠습니다. 감사합니다. // 로그인한 사용자이고 본인인 경우나 혹은 전체 관리자인 경우 수정 메서드가 실행되고 그렇지 않을 경우엔// 403 에러 발생함@PreAuthorize("isAuthenticated() and (( #user.name == principal.name ) or hasRole('ROLE_ADMIN'))")@RequestMapping( value = "", method = RequestMethod.PUT)public ResponseEntity<Message> updateUser(User user ){ messageService.updateMessage( "메시지 저장"); return new ResponseEntity<Message>( new Message("수정성공"), HttpStatus.OK );}
-
미해결실전! Querydsl
queryDSL 다중DB에 대해서 질문드립니다.
안녕하세요 선생님의 querydsl 강의를 수강하고 현업에서 적용을 하고 있는 개발자입니다. 위의 sql은 2개의 다른DB의 테이블을 조인하는 쿼리문인데요. fenoteDB.st_send는 fenoteDB의 st_send 테이블이고fe_order는 femarketDB의 fe_order 테이블입니다. 이를 queryDSL로 바꾸는 작업을 하고 있는데 구글링을 많이 해봤지만 2개의 DB의 경우 서로다른 엔티티를 사용하는 경우에 대한 자료만 나오고 따라서 위의 사진과 같은 쿼리를 querydsl로 바꾸는 자료가 나오질 않는데요. 계속 방법을 찾다 결국 영한 선생님께 도움을 청하게 되었습니다..혹시 이와 관련된 자료가 있으면 부탁드려도 될까요? 아니면 아예 방법이 없는 건지 알고 싶습니다!
-
미해결Vue.js 시작하기 - Age of Vue.js
yarn.lock
Package.lock 대신 yarn.lock 인데 상관없나요?