묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티
security 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 vuejs + springboot를 사용해서 토이 프로젝트를 하나 진행 중인데요.검색해보니 보통 네비게이션 가드를 사용하여 접근 권한을 제어하던데혹시 spring security의 접근 제어만으로 vuejs의 접근 제어도 가능한지 궁금합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 좀 부탁드립니다.
안녕하세요 수강생입니다. wooseop1977@gmail.com 으로 강의자료 좀 부탁드립니다.감사합니다.
-
미해결U-Net 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0 - 딥러닝 의료영상 분석
강의 자료
93x0928@gmail.com으로 강의 자료를 받아볼 수 있을까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
vagrant up 실행 후 완료되지 않는 문제
위 스크린샷의 맨 마지막 라인 출력되고 나서 계속해서 멈춰 있는데요.어떤 문제가 있는 걸까요?
-
미해결배달앱 클론코딩 [with React Native]
앱 icon image 링크 오류
아이콘 링크가 더이상 유효하지 않아서 흰 화면으로 나오고 있습니다.확인 부탁드립니다!감사합니다!http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=image&foreground.space.trim=1&foreground.space.pad=0.25&foreColor=rgba(96%2C%20125%2C%20139%2C%200)&backColor=rgb(255%2C%20255%2C%20255)&crop=0&backgroundShape=square&effects=none&name=ic_launcher
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
react-query, RTK query 선택관련
안녕하세요. 제로초님 강의를 듣고 개인프로젝트를 만들다가 궁금한게 있어 질문드립니다.기존에는 redux toolkit을 사용하여 진행을 했습니다. 그러다가 Boilerplate 코드문제로 react-query나 rtk query를 redux toolkit과 같이 사용을 하려고 하는데 제로초님께서는 redux toolkit과 같이 사용한다는 가정 하에 둘 중 어떤 걸 더 추천하시나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실무에서 sequence 생성시 궁금한점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 듣고 실무에 적용하던 중 궁금한 점이 있어 문의를 드리게 되었습니다.id를 생성하는데 있어서 sequence 전략이 좋아보여 사용하려는데 보통 sequence는 schema 별로 하나만 만들어서 테이블에서 공통적으로 사용하나요? 아니면 schema의 table당 하나씩 만들어서 사용하나요?사용하는 DB는 MariaDB입니다.감사합니다.
-
해결됨ASP.NET core Blazor 디테일 강의 - 초급편
blazor server 에서의 token auth 진행 과정
안녕하세요. 혼자서 아무리 찾아봐도 아리송한 부분이 있어 오랜만에 질문 남깁니다.다름이아니라 제가 jwt token을 활용한 인증을 구현하려고 하고있습니다.페이지에는 @attribute [Authorize] 를 통해 토큰을 갖고있는 사용자만 접근할 수 있게 구현하였습니다.인증에 대한 부분은 제대로 구현이 되었는데 token을 만료시키기 위해 expire을 주었는데도 시간이 지나도 만료가 되지 않았습니다. 그래서 제가 생각한 원인이 혹시 내부적으로 blazor server에서는 인증할 때 매번 토근을 주고받지 않는건가? 라는 생각이 들었습니다 (실제로 관리자 콘솔을 봐도 blazor server에서는 네트워크 부분에 요청하고 받는게 없기때문에 당연히 그 헤더에 포함될 token도 없었기에 이렇게 생각하게 되었습니다) 제 생각처럼 blazor server는 인증할때 처음 한번만 하는건가요??만약 한번만 인증한다면 blazor server 에서는 자동으로 만료 시킬수는 없을것 같은데, 그렇다면 따로 제가 만료시간을 가져와서 비동기함수를 만들어 특정시간 후에는 삭제해버리던가(그 사이에 토큰이 탈취되면 계속 사용할수있다는 문제점 있음), 조건문을 통해 시간이 지난 토큰은 없애고싶은데... 어느부분에서 토큰을 통한 인증을 진행하는지 몰르겠어서 이 부분도 쉽지않을거같습니다... 혹시 방법이 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
다익스트라와 크루스칼 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 최단거리를 구하라는 문제와, 최소거리를 구하라는 문제는 동일한 문제로 보고, 다익스트라나 크루스칼 둘 중 하나로 사용해도 상관없는건가요??
-
해결됨리눅스 커맨드라인 툴 (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이 정의되지 않아서 생성이 안된다고 뜹니다. ㅠㅠ 선생님께서 알려주신 스튜디오에서도 안되고, 쥬피터 노트북에서도 보았지만 계속 정의되지 않았다고 오류만 뜨네요... 답변 주시면 감사하겠습니다.