묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
window 환경 powershell의 UnauthorizedAccess오류
만약 window환경 powershell 에서 아래 해당 권한 오류가 발생한다면 해당 명령어로 해결됩니다.Set-ExecutionPolicy RemoteSigned
-
해결됨코딩테스트 [ ALL IN ONE ]
오픈카카오톡 비밀번호
노션에 오픈카톡이 있던데 비밀번호가 있더라고요 혹시 입장코드 알수있을까요?
-
미해결[React 2부] 고급 주제와 훅
[4.3장 리듀서 훅] 4.3.7 활용 MyForm(풀이) 오타 제보 및 질문이 있습니다.
안녕하세요 선생님 코드에 오타가 있습니다.const formReducer = (state, action) => { if (action.type === "SET_VALUES") { console.log("SET_VALUES, state ", state); return { ...state, values: { ...state.values, //value --> values [action.name]: action.value, }, }; }value에서 values로 수정되어야 할 것 같습니다. 질문:1) value 인 상태에서는 전화번호에 숫자를 입력했을 때 onChange event에 의해서 state가 변경이 됨2) 이때 state.value는 undefined 이라 기존에 주소 값에 적어뒀던 "123" 이 무시되고 전화번호 값만 action에 의해서 state에 저장.3) useEffect가 state 변경을 감지하고 validate를 진행후에 reducer의 forceupdate 에 의해 re render 4)주소값이 없었으니 errorr값에 "주소를 입력하세요" 들어있다.라고 이해하면 맞을까요?
-
미해결스프링 시큐리티
HttpSessionSecurityContextRepository를 사용안하는 문제
선생님 안녕하세요.스프링 시큐리티 업데이트 버전만 손꼽아 기다리는 중입니다ㅠㅠ우선 저는 프로젝트에서 기존 버전이 아니라 최신 버전으로 Security를 적용하고 session 저장소로 @EnableRedisHttpSession를 사용해 Redis를 사용하는 중입니다.Redis에 sessionId가 저장되는것까지 확인했습니다.선생님 강의보면서 참고하면서 잘 따라왔다고 생각했는데, 아래처럼 에러가 뜹니다. HttpSessionSecurityContextRepository에서 SPRING_SECURITY_CONTEXT Key를 이용해서 찾은게 SecurityContext가 아닌 Authentication 인증객체라는 내용 같은데요.Authentication < SecurityContext < SecurityContextHolder가 아니라 Authentication < SecurityContextHolder가 된것 같습니다.20240322 21:08:43.930 [http-nio-8080-exec-2] WARN o.s.s.w.c.HttpSessionSecurityContextRepository - SPRING_SECURITY_CONTEXT did not contain a SecurityContext but contained: '{authentication={authorities=[{authority=ROLE_ADMIN}], details={remoteAddress=0:0:0:0:0:0:0:1, sessionId=null}, authenticated=true, principal={password=null, username=sejinpark@email.com, authorities=[{authority=ROLE_ADMIN}], accountNonExpired=true, accountNonLocked=true, credentialsNonExpired=true, enabled=true}, credentials=null, name=sejinpark@email.com}}'; are you improperly modifying the HttpSession directly (you should always use SecurityContextHolder) or using the HttpSession attribute reserved for this class?그래서 로그인한 상태에서 아래 내용을 출력해도 AnonymousUser가 뜨는데요.SecurityContextHolder.getContext().getAuthentication() 인증 저장소 필터 챕터에서 SecurityContextPersistenceFilter를 deprecated되서 SecurityContextHolderFilter를 디버깅해봤더니, SecurityContextRepository 구현체 2개 (HttpSessionSecurityContextRepository, DelegatingSecurityContextRepository) 중에서 DelegatingSecurityContextRepository로만 가서 문제인것 같습니다. 아예 HttpSessionSecurityContextRepository로 들어가질 않더라구요. 이게 문제인것 같은데, 어느부분을 확인해아할지, 혹은 어떤 필터를 커스텀해야할지 여쭙고싶습니답참고로 securityContext를 아래처럼 설정했습니다 .securityContext((securityContext) -> securityContext .securityContextRepository(new DelegatingSecurityContextRepository( new HttpSessionSecurityContextRepository() ))
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
for(char a:str) cnt[a]++가 어떻게 알파뱃의 개수를 출력하는건가요?
안녕하세요. cnt[a]가 어떻게 알파벳의 개수를 출력하는지 이해가 되지 않습니다. 근본적으로 이해가 되지 않아 좌표이동 개념은 제외하고 질문드립니다! for(char a:str) cnt[a]++; 에서be가 입력되면 b,e가 각각 a로 들어와서 cnt[b]=98cnt[e]=101위와 같이 받는 것까지는 알겠는데 cnt[a]++면, 1개씩 증가한다는 연산자인데.. 그럼 99,102가 되는 거 아닌가요..?어떻게 알파벳의 개수를 출력하는건지 모르겠습니다 감사합니다!
-
미해결[도서 포함] 현직 11년차 대기업 UX 디자이너가 알려주는 UX 취업 가이드
도서 발송 관련 문의
강의는 겨우 1시간이라 너무 짧고, 강사님의 책을 통해 자세히 배우고 싶은데 언제쯤 책을 받을수 있나요? 선착순 100명만 받는건지, 제가 100명에 포함이 되었는지 자세한 답변을 부탁 드립니다.
-
해결됨[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
섹션 5 - 북마크 탭 만들기부분에 랜더링이 안됩니다
2024-03-23 10:28:11.256 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I ViewPostIme pointer 02024-03-23 10:28:11.275 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I onDisplayChanged oldDisplayState=2 newDisplayState=22024-03-23 10:28:11.388 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I ViewPostIme pointer 12024-03-23 10:28:11.403 21448-21448 WindowOnBackDispatcher com.dk.mylivealonelife W OnBackInvokedCallback is not enabled for the application. Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.2024-03-23 10:28:11.456 21448-21448 BLASTBufferQueue_Java com.dk.mylivealonelife I update, w= 1080 h= 2340 mName = ViewRootImpl@6687397[MainActivity] mNativeObject= 0xb400007915241710 sc.mNativeObject= 0xb4000077b5238810 format= -1 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2968 android.view.ViewRootImpl.relayoutWindow:9998 android.view.ViewRootImpl.performTraversals:4056 android.view.ViewRootImpl.doTraversal:3239 android.view.ViewRootImpl$TraversalRunnable.run:11197 android.view.Choreographer$CallbackRecord.run:1650 2024-03-23 10:28:11.456 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)0 dur=1 res=0x0 s={true 0xb400007865290520} ch=false seqId=02024-03-23 10:28:11.460 21448-21509 ViewRootIm...nActivity] com.dk.mylivealonelife I mWNT: t=0xb4000077d52539d0 mBlastBufferQueue=0xb400007915241710 fn= 2 caller= android.view.ViewRootImpl$6.onFrameDraw:5539 android.view.ViewRootImpl$2.onFrameDraw:2103 android.view.ThreadedRenderer$1.onFrameDraw:788 2024-03-23 10:28:11.461 21448-21448 ViewRootIm...nActivity] com.dk.mylivealonelife I registerCallbackForPendingTransactions2024-03-23 10:28:11.511 21448-21778 TrafficStats com.dk.mylivealonelife D tagSocket(108) with statsTag=0xffffffff, statsUid=-12024-03-23 10:28:12.351 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZSdcbSItwNWK2vCbE, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZSdcg99SS483hV45y, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZV1bPRolzlfUx3tLj, value = {bookmarkIsTure=true} }2024-03-23 10:28:12.352 21448-21448 BookmarkFragment com.dk.mylivealonelife E DataSnapshot { key = -NtZV1bS1QRxpkI6E6GN, value = {bookmarkIsTure=true} } 이건 로그파일이구요 로그는 찍히는데 화면에 랜더링이 안되네요 이것저것 열심히 찾아봐도 안되서 파일도 같이 첨부합니다.https://drive.google.com/file/d/1VUq5si9BXmxutF1Q1C7E9CzHVVN5sP79/view?usp=sharing
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
show more 버튼이 노출되지 않는 테스트 케이스에서 limit 오동작 문제
안녕하세요, 좋은 강의 잘 듣고 있습니다.보여줄 상품 리스트가 없는 경우 show more 버튼이 노출되지 않는다. 테스트 케이스에서 limit 를 20 이하로 입력해도 테스트 실패로 잡히지 않는 문제가 있는 것 같아 보이는데요..!원인을 찾아보려 조금 테스트하다 보니.. render -> screen.findAllByTestId 를 하면서 api가 두 번 호출되는 것 같습니다. 그 과정에서 offset이 limit 만큼 증가해 호출되고 있어요. (즉, 두번째 페이지까지 렌더링했을 때를 기준으로 테스트가 돌아가는 것 같습니다)it('보여줄 상품 리스트가 없는 경우 show more 버튼이 노출되지 않는다.', async () => { await render(<ProductList limit={2} />); // offset : 0 await screen.findAllByTestId('product-card'); // offset : 2 });offset 이 useInfiniteQuery에서 리턴해주는 pageParams로 인해 만들어지는 것 같아서 pageParams가 원인인 것 같긴 한데.. 해결방법을 모르겠네요.혹시 이 부분 수정이 어떻게 되면 좋을지 확인 부탁드립니다..! +)테스트하다가 발견한 건데요, apiRoutes.products 를 mocking하는 handler에서 lastPage로 리턴하는 조건이 잘못된 건 아닌가 해서요..!ctx.json({ products, lastPage: products.length < limit });이면 테스트 코드에서 limit을 10으로 준다고 해도, 두 번째 페이지에서 lastPage가 false인 것 같습니다.ctx.json({ products, lastPage: data.products.length <= offset + limit });으로 수정되어야 하지 않을까 조심스럽게 제안드려 봅니다..!
-
해결됨김영한의 실전 자바 - 기본편
부모는 자식을 담을 수 있지만 자식은 부모를 담을 수 없는 이유
[질문 내용]다형적 참조 시 부모 클래스는 자식 클래스를 참조하여 대입할 수 있으나, 자식 클래스는 부모 클래스를 참조하여 대입할 수 없는 부분에 대해 좀 더 작동 원리를 이해하고 싶어서 질문드립니다. 예시)Parent a= new Child(); -> 실행 가능Child b = new Parent(); -> 실행 불가. 컴파일 에러 발생. 위와 같이 규칙이 정해진 이유는하위 클래스는 인스턴스 생성 시 상위 클래스 생성자를 무조건 호출하여 인스턴스 내에 상위 클래스, 하위 클래스 정보가 모두 존재하는 반면, 상위 클래스는 인스턴스 생성 시 본인의 인스턴스만 생성하기 때문에 인스턴스 내부에 상위 클래스 정보밖에 존재하지 않아 하위 클래스 데이터 타입에 해당 인스턴스 참조값을 대입할 수 없는거라고 이해하면 될까요? 상기 작동 방식이 결국엔 다운캐스팅을 명시해야하는 이유와 일맥상통하는 것 같은데 제가 정확하게 이해한건지 모르겠습니다.
-
미해결태블로 레벨UP
계산식 누락 문의드립니다.
후반부 강의에 있는 'Profit Ratio'와 '레코드 수'를 어떤 식으로 계산하셨는지 궁금합니다.제 나름대로 계산을 했는데 강의와 상이한 값이 나와서요...
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]For 무한 루프 속에 switch 조건문을 넣으려고 하는데요Switch의 break로는 for 무한루프를 못 나와서요나오는 방법이 있을까요?
-
해결됨
강의 진도율 저만 이상하다고 생각하나요?
진도률을 보면 진행한 강의 수/총 강의수로 되어 있고 그 옆에 진행한 시간/총 강의 시간 이렇게 되어 있는데.수업자료를 다운로드 받는 강의도 강의1개로 진행하는것으로 보니 사용자의 진행률은 20%이지만 시간으로 보면 진행된 것은 10%밖에 진행한 것을 확인할 수 있었습니다. 이거 진도율을 시간으로 해야 더 정확한것 아닐까요? 라는 생각이 드네요. 우리가 책을 읽을때 쪽수로 어느정도 읽었다를 가늠하지, x챕터까지 읽었으니 y% 읽었구나를 생각하지 않는것 처럼요
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
추천을 통한 주문 전환율
#5. 결제 전환율 개선 프로젝트 강의에서메인지표를 추천 클릭율과 추천을 통한 주문 전환율(CVR)로 설정해주셨는데, 여기서 추천을 통한 주문 전환율을 이렇게 계산하는 걸까요?-> 결제 완료자 수 / 최소 주문 금액을 넘지 않은 상태로 카트페이지에 진입 후,추천 버튼 사용자 수
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello페이지에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]페이지 에러가 뜹니다 에러내용은 이렇습니다타임리프쪽이 에러이고 다른파일에서는런이안돼는데 HelloSpringAplication파일에서만 런이되는데 원래 이런건가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
별찍기 질문드려요
강의영상 8:40분쯤에 i + 1로 변경해서 쭉 출력이되었는데이 부분이 이해가 잘 안됩니다 그 이유가 처음 초기값이j = 0이고 i = 0인데 j변수 for문에서 j < i + 1을하면0 < 0 + 1 즉 0 < 1이 되어서 한번실행되고 j++를 해주고 다시 처음 for문으로 와서 i++가 되어있는데 그럼 다시j변수 for문에서 1 < 1 + 1이 될텐데 그럼 1 < 2인데 별 찍는 코드가 그럼 한번만 실행되는거 아닌가요? 2보다 작은 동안이니까 한번 실행되는거 같은데 왜 아닌지 궁금합니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
8.6 투두 수정하기) 오류 관련 질문
안녕하세요 선생님 강의 보면서 똑같이 코드를 입력했는데그 이후에 새로고침 하고 체크박스를 누르니까 이런 오류가 발생하네요혹시 무슨 오류인지 알 수 있을까요?
-
미해결김영한의 실전 자바 - 기본편
스택영역과 힙영역 질문입니다.
[질문 내용]여기에 질문 내용을 남겨주세요. 제가 이해력이 안좋아서 자꾸 질문을 남기게되네요 ㅠ method1()의 스택프레임이 제거되고 지역변수 data1도 함께 제거되었다. 여기는 이해가 갑니다. Data data1 = new Data(10);으로 만들어 져서 data1은 참조값 x001을 갖고 있고 Data의 인스턴스라는 것과 메서드 내에서 사용했기 때문에 data1은 지역변수라 칭한것도 이해가 됩니다. 하지만정리 부분에 // 지역 변수는 스택 영역에, 객체(인스턴스)는 힙 영역에 관리되는 것을 확인 했다.// 이 부분에서 지역 변수라 하면 data1이고 또 객체라 하면 Data인스턴스에 data1의 참조값을 지칭하는 말 일텐데 제가 제대로 이해하지 못한 부분이 있나 싶습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-F 그리디 질문입니다.
http://boj.kr/946c8f57d8884275ae800627eb01ada3 안녕하세요 강사님.일단은 이 문제를 보고 이분탐색 방법이 딱히 떠오르지가 않아서그냥 마음가는대로(?) 풀었습니다. 그런데, 게시판의 반례는 다 맞는 것 같은데제출하면 바로 틀렸다고 떠서그냥 잘못 풀었나 보다 하고 강사님 강의를 찾아보니 이진탐색과 그리디 방법 두 가지가 있더라구요!혹시나 해서 그리디 부분을 보니 제가 그래도 근접은 했구나 생각이 들었는데, 아무리 생각해도 어디가 틀렸는지 정확히 모르겠어가지고 잠이 안옵니다 ㅠㅠ 강사님께서는 HP를 마지막에 +1 하셨는데,저는 그냥 처음부터 생존하기 위해 필요한 HP 1을 안고 쭉쭉 계산하는 식으로 생각했습니다. 아무래도 이 부분이 틀린것 같다고 생각은 드는데 정확히 왜 틀린건지를 모르겠습니다 ㅠㅠ 한번만 도와주세요 흑흑..
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
getHandler() 에서의 로직과 그 이후
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요. doDispatcher에서의 getHandler() 코드를 보다가 제가 나름대로 정리해본 것이 맞는 지 질문드립니다.한 url 에서 요청이 오면, 핸들러 맵핑 조회에서 1순위가 RequestMappingHandlerMapping 이므로, 먼저 getHandler()의 while 문 내부 HandlerMapping mapping 에 RequestMappingHandlerMapping이 대입된다.// 스프링 getHandler() 코드 일부 발췌 if (this.handlerMappings != null) { Iterator var2 = this.handlerMappings.iterator(); while(var2.hasNext()) { HandlerMapping mapping = (HandlerMapping)var2.next(); HandlerExecutionChain handler = mapping.getHandler(request); if (handler != null) { return handler; } } } 다음 줄의 mapping.getHandler(request)를 통해 @Controller가 붙은 클래스 중, 요청 url와 맞는 @RequestMapping(”url”)이 붙여진 메소드를 보유한 클래스를 핸들러로 가져온다.디스패처서블릿이 이 핸들러와 맞는 어댑터(RequestMappingHandlerAdapter)를 찾아오고,어댑터.handle() 을 통해 @RequestMapping(”url”)이 붙여진 메소드가 실행된다. 제가 생각한것이 맞는 지 궁금하여 질문드립니다.감사합니다.
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
사용자 모드 커널 모드 CPU 반환 시점이 궁금합니다.
궁금한 점강의 내용에서 I/O작업이 필요할 경우 System Call 요청 -> Mode Bit 0 변경 -> I/O 리소스 할당의 과정으로 시스템이 호출된다고 되어있는데 CPU를 할당 받을 때도 커널모드가 필요한지 궁금합니다. 이유강의 자료를 확인해보면 다른 리소스들과 같이 CPU가 존재