묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨리눅스 커맨드라인 툴 (Full ver.)
검색 14:56
찾는 단어 하이라이트 키는명령어가 뭔가요?
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
react.memo 를 했는데 안되요 오타도 아닌데 왜그럴까요?
import React from 'react' const List = React.memo (({ id, title, completed, todoData, setTodoData, provided, snapshot }) =>{ console.log('List is Rendering'); const handleClick =(id) => { let newTodoData = todoData.filter((data)=> data.id !== id) console.log ('newTodoData', newTodoData); //this.setState({todoData: newTodoData}); setTodoData(newTodoData); }; const handleCompleteChange = (id) => { let newTodoData = todoData.map(data => { if(data.id === id){ data.completed = !data.completed; } return data; }) //this.setState({ todoData : newTodoData}) setTodoData(newTodoData); }; return ( <div key={id} {...provided.draggableProps} ref={provided.innerRef} {...provided.dragHandleProps} className={`${snapshot.isDragging ? "bg-gray-400" : "bg-gray-100"} flex items-center justify-between w-full px-4 py-1 my-2 text-gray-600 bg-gray-100 rounded`}> <div className='item-center'> <input type="checkbox" defaultChecked={completed} onChange={() => handleCompleteChange(id)}/> <span className={completed ? 'line-through' : undefined}>{title}</span> </div> <div className='item-center'> <button className="px-4 py-2 float-right" onClick={()=> handleClick(id)}>x</button> </div> </div> ) }); export default List import React from 'react' import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd'; import List from './List'; const Lists = React.memo(({ todoData,setTodoData }) => { console.log('Lists Component'); const handleEnd = (result) => { console.log('result', result); if(!result.destination) return; const newTodoData = todoData; //1. 변경시키는 아이템을 배열에서 지워줍니다. //2. return 값으로 지워진 아이템을 잡아줍니다. const [reorderedItem] = newTodoData.splice(result.source.index, 1); //3. 원하는자리에 reorderedItem을 insert 해줍니다. newTodoData.splice(result.destination.index, 0, reorderedItem); setTodoData(newTodoData); }; x return ( <div> <DragDropContext onDragEnd={handleEnd}> <Droppable droppableId='todo'> {(provided) => ( <div {...provided.droppableProps} ref={provided.innerRef}> {todoData.map((data, index) => ( <Draggable key={data.id} draggableId={data.id.toString()} index={index} > {(provided, snapshot) => ( <List key={data.id} id={data.id} title={data.title} completed={data.completed} todoData={todoData} setTodoData={setTodoData} provided={provided} snapshot={snapshot} /> )} </Draggable> ))} {provided.placeholder} </div> )} </Droppable> </DragDropContext> </div> ); }); export default Lists
-
미해결스프링 시큐리티
Security 듣는 중 드리는 질문
매번 여쭤보기보다 누적했다가 한번에 질문드리는게 더 좋을 것 같은데 강의를 일일이 찾기 어려워 한번에 올리겠습니다. 1. MySecurityConfig.class에 붙은 @Configuration은 어떤 일을 하나요?>> @Configuration은 내부에 있는 @Bean 메소드를 스프링 컨테이너에서 싱글톤으로 관리될 수 있게끔 보장해주는 Annotation인 것으로 알고 있습니다. 하지만 Spring Configuration 클래스 내부에는 별다른 Bean 등록 객체가 없는 것 같은데, 추상적으로 [Spring에게 이 Security Configuration을 사용할거야]라고 알려주는 것보다 조금 더 무슨 역할을 하는지 궁금해서 질문 드립니다. 2.UserDetailService, CustomAuthenticationProvider 등을 왜 직접 Custom화 하는건가요?>> 그 때마다 앱 내에서 사용하는 Authorities들과 [사용자]로 쓰는 객체가 매번 달라서 그렇다고 이해하면 될까요? 가령, 앱에서는 [Member, Account] 등을 사용, Spring 에서는 UserDetails란 인터페이스를 지원 3. CustomAuthenticationProvider 만 따로 Bean 주입 메소드를 작성해준 이유가 있을까요?@Bean public AuthenticationProvider authenticationProvider() { return new CustomAuthenticationProvider(); }>> AuthenticationProvider 역할의 구현체를 이 앱에선 CustomAuthProvider 구현체를 사용할 것이다라는 메소드를 통해 Bean 등록을 해주는 모습입니다. 하지만 CustomUserDetailService 는 @Service Annotation을 통해 바로 컨테이너에 넣었습니다. 이는 @Service 내에 포함되어 있는 @Component로 인해 Bean 등록이 되는 것으로 알고 있습니다. 이 때, CustomAuthenticationProvider는 @Component로 하지 않고 저렇게 메소드로 해주는 이유가 있을까요? 4. CustomAuthenticationProvider.class 내 authenticate()에 대해서@Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String username = authentication.getName(); String credentials = (String) authentication.getCredentials(); // 비번 AccountContext userDetails = (AccountContext) userDetailsService.loadUserByUsername(username); // UDS에서 알맞은 유저 가져온다 (우리가 만들어준 객체를 사용할 것이라 등록함) if(!passwordEncoder.matches(credentials, userDetails.getAccount().getPassword())){ String msg = "비밀번호 불일치, 인증 실패하였습니다"; log.error("Error while handling CustomAuthenticationProvider authenticate(): {}", msg); throw new BadCredentialsException("Error while handling CustomAuthenticationProvider authenticate():: " + msg); } // 일치하면 인증 완료, Authentication 온전한 결과를 넣어줘야 한다 // Form 에서 사용하는 Authentication 객체는 하위 (근데 새로 만들어줌?) UsernamePasswordAuthenticationToken authenticatedToken = new UsernamePasswordAuthenticationToken(userDetails.getAccount(), null, userDetails.getAuthorities()); return authenticatedToken; }다음은 강의에서 사용하신 소스코드 입니다! 이전에 해주신 이론 설명을 바탕으로 해당 코드를 작성하면서 생긴 의문은 Authentication authentication 객체입니다. " AuthenticationProvider에서 받은 [인증 전] Authentication 객체와 내보낼 [인증 후] Authentication 객체가 같은 객체이다"라고 해주셨던 것 같은데, 해당 코드 아래에서 Authentication 인증 객체를 새로 생성하는 것 같은데, 왜 그런지 알 수 있을까요? 5. Bean 주입 관련3번 질문과 연관된 질문입니다! 직접적으로 Security 관련이 아닌 Bean 주입 관련한 내용이라... 양해부탁드립니다 ㅠ.ㅠ 다름이 아니라 직접 Bean 주입을 3번과 같이 하는게 아니라 @Component로 한다면, 자동으로 해당 구현객체를 쓴다는 점이 궁금합니다! 가령, 위에 AuthenticationProvider 의 구현체를 CustomAuthentication 으로 사용한다고 직접적으로 Bean 주입을 해줬기 때문에 해당 구현체를 사용하는 것이 이해가 가지만, CustomUserDetailsService 클래스 같은 경우 @Service annotation 으로 빈 등록을 하게 해줬습니다. 이럴 때는 기존에 사용하고 있던 UserDetailsService 구현체는 어떻게 사용하지 않는다는걸 스프링이 알게 될까요? @Service 를 사용하는 것은 자동주입이고, 기존에 Security 가 사용하는 구현체는 수동 주입했을 것 같은데, 이럴 경우 수동 주입이 우선권을 가지게 되지 않나 싶어서 문의드립니다! 감사합니다.
-
미해결리눅스 커맨드라인 툴 (Full ver.)
백스페이스 누르면 앞칸으로 이동하는데요.
화면과 다르게 앞칸으로 이동합니다. 윈도우 터미널에서 인서트 모드 누르고 글 적을 때 일어나는 현상이 일어납니다.글 적으면 뒤에 위치한 글자를 타이핑한 글자로 덮어씌어 집니다.
-
미해결예제로 배우는 스프링부트 입문
25강 security 관련 에러 (Is there an unresolvable circular reference?)
프로젝트 다 만들고 테스트를 하니까 BeanCurrentlyInCreationException 이 발생했습니다. 에러 메시지가 다음과 같았습니다. :org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'webSecurityConfig': Requested bean is currently in creation: Is there an unresolvable circular reference?circular reference이 문제라고 에러 메시지가 나오더군요. 검색을 해보니까 스프링부트 2.6.x 부터는 순환참조 (circular reference)가 금지되었다고 합니다. 강사님이 권하신 스프링 부트 버전이 아마 아닌 것 같은데 저는 그냥 제 멋대로 더 높은 버전을 써버린 것 같습니다. 여튼 그 해결책도 검색해봤습니다.application.properties에spring.main.allow-circular-references=true한 줄을 적어 넣으면 된다고 합니다. 저와 같은 문제를 겪는 분들이 있을지 모르니까 글 남깁니다. 이 해결책이 좋은 해결책인지는 모르겠지만 여튼 예제는 돌아갑니다. ^^
-
미해결Redux vs MobX (둘 다 배우자!)
Redux toolkit 과 axios API 호출에 관한 질문입니다.
안녕하세요 제로초님!항상 감사합니다. 제로초님 강의로 실력을 매우 키우고있습니다. 친구의 API 로 개인 프로젝트를 진행하고있습니다.환경은 typescript, next.js 이고 redux toolkit으로 상태관리를 하고있습니다. getServerSideProps에서 dispatch를 하여 모든 게시글을 불러오는 작업을 하고있습니다.여기서 문제는아래 주석으로 보시는바와 같이 fetch를 통해서 API를 호출하면 정상적으로 JSON 형식의 API가 잘 호출이 됩니다. 그런데 axios 로 API를 호출해서 data를 확인하면 계속이런식으로 깨져서 나옵니다.axios config 에서 headers에 content-type을 application/json charset=utf-8 로 시도해도 똑같고axios config 에서 responseType을 json으로 변경해도 똑같이 깨져서 나옵니다.. 어디서 제가 잘못설정한게 있을가요..
-
미해결타입스크립트 입문 - 기초부터 실전까지
제거부분 질문
toString부분에 자꾸 불이들어오는데 뭐가 잘못된걸까요? T 형식에 toString형식이없다는데 다른분들 코드 비교해봐도 어느부분이 안맞는건지 잘 모르겠어서요!
-
미해결Vue.js + TypeScript 완벽 가이드
vue3에서 router 폴더별 모듈화 진행
안녕하세요.학습과 다른 내용으로 질문하나 드립니다.vue3 + typescript 연습하고있는데요router폴더에서 modules파일안에있는것들을 자동 import 시키고 싶은데 require.context 에러가 납니다. require를 사용할 수 없다는데 이유 알 수 있을까요? 서칭해서 이것저것해봤는데 해결을 못했습니다.위의사진은 폴더구조이며아래사진은 에러내용입니다,Cannot find name 'require'. Do you need to install type definitions for node? Try npm i --save-dev @types/node and then add 'node' to the types field in your tsconfig.ts(2591)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
화면레이아웃에 대한 2차 질문
먼저 주말까지 답변 달아주신 거 너무 너무 감사드립니다. 큰 회사는 아니라 저희는 boot대신 스프링mvc프로젝트를 이용해서 관리하고 있고 기존 jsp만 이용해서 뷰를 관리하고 있었습니다 리뉴얼을 하기 위해서 고민하던 중기본 JSP로 개발되던 것을 완전 thymeleaf로 교체해서 사용할지아님 jsp+tiles로 레이아웃 관리를 변경할 것인 지를 두고 고민 중에 있습니다.말씀하신대로 tiles가 old해서 아닌가 싶기도 하고 아직도 사용하는 프레임워크 인지도 궁금하고 전문가님의 의견을 듣고 싶어 글을 남기게 되었습니다.'감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
event와 delegate 질문드립니다!
차이점event와 delegate 는 개념이 거의 같은데,delegate는 어디서든 호출이 가능하고 event는 public 한정자로 생성해도생성된 클래스 내에서만 호출이 가능즉 다른 곳에서는 직접호출 불가능만약 다른 클래스에서 사용하려면 Update처럼 뭔가를 만들어서(이런것도 프로퍼티라고 하나요?) 안에 넣어서 사용해야 된다. event는 메서드를 추가할 때 꼭 +=, -= 를 사용한다 으로 이해했는데 이렇게 생각해도 괜찮을까요? delegate 질문OnInputKey InputKey;InputKey = OnInputTest;위에 것이내부적으로는OnInputKey InputKey = new OnInputKey(OnInputTest);로 실행된다고 답글을 남기신 것을 보았는데개발자들이 조금 더 편하게 사용하려고 생략한 방법인가요?둘 다 똑같은 것이고 표기만 다르다면 실무에서는 어떤 표기를 사용하나요??위에 두 것이 같은 것이라면1.InputKey = OnInputTest;2.InputKey += OnInputTest;3.OnInputKey InputKey = new OnInputKey(OnInputTest);다 같은 것일까요?? delegate 체이닝 질문 1.InputKey = OnInputTest1 +OnInputTest2는 안되는데2.InputKey = new OnInputKey(OnInputTest1) +new OnInputKey(OnInputTest2)는 되는 이유가 있을까요??내부적으로는 같은데.. 컴파일러가 인식을 못 하는 것인가요? event개인적인 생각으로 event가 더 안전?하고+= 함수1+= 함수2이런 식으로 구독해서 사용하는 것이 참 보기도 좋다고 생각하는데 delegate만 사용하지 말고 아예 전부 event로 사용하지 않는 이유가 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
excel관련 질문입니다.
안녕하세요. 엑셀파일을 create 하려고 하는데, 매번 이렇게 workbook이 정의되지 않아서 생성이 안된다고 뜹니다. ㅠㅠ 선생님께서 알려주신 스튜디오에서도 안되고, 쥬피터 노트북에서도 보았지만 계속 정의되지 않았다고 오류만 뜨네요... 답변 주시면 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선생님 홀수인 경우가 살짝 이해가 안됩니다.
홀수일 경우 2^5 = 2^2 * 2^2 * 2^1 이됩니다. 아래 코드를 보시면 조금 다른 것 같습니다 ret = (ret * ret) % c;if(b % 2)ret = (ret * a)% c; 하지만 위의 홀수일때의 계산을 풀어보면ret = ((ret * ret) % c * a) %c가 됩니다. 이를 다시 풀어보면 ret % c %c * ret %c %c * a %c 됩니다. 이러면 모듈러 연산이 두번씩 이루어지는 부분이 생기기 때문에 맞지 않는거 아닌가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
18 버전 노드에서 에러나시는 분
저는 nvm 파일 다운받아서 node 16.13.0 버전으로 재설치해서 해결되었습니다.
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
terraform으로 eks 구성 관련하여 질문 + 기타 질문
안녕하세요, 현재 스타트업에서 일하고 있는 장선우라고 합니다. 팀에서 aws cloud를 terraform으로 관리하는 것을 도입중에 이 강의를 우선 듣게 되었습니다.먼저 좋은 강의 감사합니다 :) 얼마전 인프콘 발표도 정말 인상깊게 들었는데, 정말 감사드려요.저희는 현재 eksctl로 eks를 운영(helm, argocd활용) 하고 있습니다. terraform으로 이를 마이그레이션 하려고 할 때 몇가지 궁금증이 생겨 질문 드립니다. 1. eks에서 helm을 운영하는경우에, terraform provider helm을 사용하는 경우가 많나요? 아니면, terraform에서 eks만 띄워두고, helm은 따로 yaml파일로 사용하나요?2. 혹시 후자인 경우에는 보통 repository는 분리해서 사용하나요? (아니면 tf폴더와 helm 템플릿 관련 폴더가 나눠져 있을까요?) aws workshop 레퍼런스를 봤는데 해당 파일의 샘플앱은 kuberenets 템플릿을 yaml이 아닌 tf로 구성하고 있는데, 낯설게 느껴지기도 하고 helm에도 적용이 될지, 실제 현업에서도 사용하는 베스트 프렉트스 일지 궁금해서 질문 드립니다. (관련 레퍼런스는 여기 입니다.) 기타 질문최근 '확장 가능한 테라폼 코드 관리'라는 자료를 읽게 되었습니다. 해당 자료에서는 확장성이나 커스텀을 위해 외부 모듈 사용 (e.g., terraform-aws-module) 을 지양해야 한다는 내용이 있었습니다. 같은 생각이신지 궁금합니다. 이 부분을 배제하고 terraform을 세팅하는 것이 좋을지 궁금해서 질문드렸습니다. 질문이 너무 길었네요. 강의 정말 감사드립니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Dio 패키지가 http 패키지의 역할을 하는 것인가요?
이전 개인적인 경험상 api데이터를 받아오거나 네트워킹을 할때 dart.dev 에서 제공하는 http package (pub.dev/packages/http) 를 사용하고 했었는데, dio 가 그 역할을 하는 것인가요?어차피 극히 일부분만 다루었어서 둘 다 잘은 모르지만, http 패키지가 아닌 dio 패키지를 사용하는 결정적 차이나 각각의 장단점을 간략하게 알려 주실 수 있을까요? dio는 이번에 첨 알았는데 둘 다 어마어마한 좋아요를 받은 패키지라 궁금합니당.감사합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
스크롤탑 동기처리 이슈.
안녕하세요 제로초님.인피니티 스크롤 로딩 후 추가 데이터를 로딩하고 스크롤 위치를 유지하는 로직에 문제가 있어서 문의드립니다.아래 코드에서는 setSize의 then문 안에 setTimeout으로 한 번 더 감싸주었는데setTimeout이 없는경우 데이터가 불러와지기전에(스크롤의 높이가 늘어나지 않은 상태에서) setTimeout내부의 로직이 실행됩니다.그로인해 스크롤의 높이는 기존높이 - 기존높이 로 scrollTop(0) 과 같은 상태가 되어버리는데요.setTimeout으로 0초의 딜레이를 주면 또 순서대로 동작을 합니다...이런경우에 좋은 해결책이 있을까요? const onScroll = useCallback((values: positionValues) => { if (values.scrollTop === 0 && !isReachingEnd) { setSize((prevSize) => prevSize + 1).then(() => { setTimeout(() => { if (typeof scrollbarRef !== "function" && scrollbarRef?.current) { scrollbarRef.current.scrollTop(scrollbarRef.current.getScrollHeight() - values.scrollHeight); } }, 0); }); } }, []);
-
미해결
scikit-learn설치에 문제점이 있어서 질문합니다!
안녕하세요 저는 처음 python을 설치하여 파이썬의 ㅍ자도 모르는 정말 아무지식이 없는 초보입니다. 어쩌다 scikit-learn을 설치해야하게 되어 파이썬을 설치 후 scikit-learn 홈페이지에 나와있는 대로pip install -U scikit-learn을 입력후 엔터를 눌러봤는데 File "<stdin>", line 1 pip install -U scikit-learn ^^^^^^^SyntaxError: invalid syntax>>> 이라는 구문만 뜹니다. 전혀모르겠습니다 어떻게 해야할까요?인터넷에 나온 방법에 있는건 다 해보았습니다 (환경 변수 편집(파이썬 주소 path에 넣기),(pip 주소 환경 변수 path에 넣기) + 레지스트리 편집((LongPathsEnabled) 1에서 0로 바꾸어 놓기) 아나콘다도 설치하고 visual c++ (2015~2022) Redistributable (x64)도 설치했는데 아무것도 안됩니다(명령 프롬프트는 작동이 되네요)
-
미해결빅데이터분석기사 실기대비 (R 활용)
마지막 질문이될것같습니다 선생님!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요먼저 선생님덕에 시험 잘 마치고나왔습니다 감사합니다. 유형별 질문 총 3가지있습니다 단답형. 가채점 해보니 4개 (1개불확실) 정도 맞았습니다Q. 불확실한 1개의 질문인데요 f1 스코어 문제로 정답은 0.25 로 추정됩니다. 전 1/4로 적었구요. 이건 같은 답으로 처리가 될지 궁금합니다.(시험에서 어떤 형태로 입력하라는 내용X) 유형1. 정수 출력이 전제조건인 문제들입니다(우선 3문제 다 맞춘것같습니다)1번의 답은 122로 소수점이나왔으나 round(변수, 0) 하여 소수점안나오고 딱 정수가 나왔습니다. 2,3번문제는 정수가 나와 그대로 제출했구요. 커뮤니티에서 조금 논란이되는게 정수형(int) 출력여부입니다.Q. 공지사항에서 시험 가이드라인.pdf에는 정수로 출력으로만 나와있는데, int로 바꿨어야만 할까요? 답은 맞지만 변수가 num형식일 경우에 감점을 시키면 논란이 되지않을까요? 유형2. 데이터가 너무 깔끔했습니다. 여기서 배운대로 간단하게만 처리했으며 스케일이나 별도 데이터를 삭제하거나 하지는 않았습니다.회귀 문제였기에 팩터형을 지우고 수치만 가지고 모델 만드신 분들이 계시다는데, 데이터가 많지도 않았고 자동차 회사를 다니는 저에게 자동차모델명과 같은 팩터는 조금 중요한 요인처럼 느껴져, 예측 y값은 그대로 두고, 팩터형 변환이 필요한 부분만 팩터화, 전체 데이터를 넣고 랜포를 돌렸습니다. (별도 설정없이 ntree만 100설정). 정상적으로 잘 돌아갔고 rmse 1250 정도에 r2 0.92정도, 과적합인가 의심은 했습니다만 그냥 그대로 제출했습니다Q. 여기서 궁금한게 회귀형일때에는 팩터형을 다 제거하고 모델을 만드는게 맞는건가요? 선생님의 강의덕에 아무탈 없이 잘 제출했습니다 마지막이 될 수 있는 질문입니다 선생님 그동안 감사했습니다!
-
미해결타입스크립트 입문 - 기초부터 실전까지
제가 질문이 있습니다요
유니온타입을 사용하면 아래의 askSomeone 두번째 와 같이 공통된타입을 필수로넣고 그외에 각자 가지고있는 타입은 선택적으로 넣는것으로 알았는데 지금 위 사진과같이 name과 age의 조합은 에러가 안나는데 name과 skills의 조합은 에러가 나는 이유가 뭘까요? 이렇게 3개를 다 넣어줘야 에러가 안나는데 밑에있는 ask는 name과 age만 넣어도 에러가 안나는 이유가 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
화면레이아웃에 대해 질문드립니다.
안녕하세요...thymeleaf강의를 듣고 질문이 있어 여쭙습니다.지금 jsp를 쓰고 있는데 thymeleaf 로 교체하려니 엄두가 나지 않습니다.혹시 tiles는 너무 old한가요? tiles를 사용하고 있는 곳이 아직 있을까요?질문드립니다.