묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트 시큐리티 & JWT 강의
마지막 강의 질문드립니다.
여기서 super.doFilterInternal(request, response, chain);위 문장을 지워주셨는데 해당 줄을 지우면 회원가입 로직이 컨트롤러를 타지 않습니다.회원가입은 /join으로 매핑되어 있는데 JwtAuthorizationFilter의 doFilterInternal() 메소드를 타고jwtHeader 값이 없기 때문에 return을 만나 컨트롤러를 타지 않는 것 같습니다. 반대로 super.doFilterInternal(request, response, chain); 주석 해제하면 회원가입 로직은 진행됩니다만 마지막 강의에서 인증이 되지 않는 문제가 계속 일어나고 있습니다! SecurityConfig 클래스 코드입니다! 부족한 지식으로 제 생각이 다를 수 있지만 문제를 해결하지 못하고 있어 질문 드립니다ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
application/json;charset=utf-8 부분 질문
response.getWriter() 사용하면 나오는 문제라고 하셨는데그럼 스프링MVC 사용할때는 신경 안써도 되는 문제일까요?
-
해결됨그림으로 쉽게 배우는 네트워크
인터넷 동작 방식 문의
안녕하세요.정확히는 라우팅 관련 문의 입니다.[네트워크 구성] 인터넷 에서 강의한 내용을 보면본인 pc에서 짱구 pc로 ping 을 날렸을 때 출발지 ip와 목적지 ip는 변동이 없고 계속해서 맥주소가 변환되는 것을 볼 수 있는데요.처음에 본인 pc가 속한 네트워크에서 스위치를 거쳐 라우터로 갈 때 어떻게 알고 맥 이더넷 프레임의 목적지 맥 주소가 라우터의 맥주소로 입력이 되나요 ?
-
미해결Practical Testing: 실용적인 테스트 가이드
Stubbing을 주로 외부 api를 호출할 때 사용하나요?
안녕하세요~ 'Mockito로 Stubbing하기' 강의를 듣고 궁금한 내용이 있습니다.메일을 전송하는 부분을 stubbing하셨는데요.보통 어떤 경우에 실무에서 stubbing하여 테스트를 작성하나요? 감이 잘 안잡히네요..제가 이해한건 아래처럼 이해했습니다.sendMail 메서드에 대한 테스트는 '메일만 전송'하는 테스트를 작성한다.sendOrderStatisticsMail 테스트를 작성하는 도중 sendMail 부분은 이미 '1번'에서 따로 테스트 케이스를 작성했으므로 넘어가도 무방하다. 따라서 여기는 stubbing하여 간단하게 넘어간다. 즉, 이번 예시에서는 메일이지만 확장하여 생각해본다면 외부 api를 호출하는 경우에는 stubbing을 진행한다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
해당 문제 다른 풀이에 대한 질문입니다.
import java.io.*; import java.util.*; class Time implements Comparable<Time> { int startTime, endTime; public Time(int startTime, int endTime) { this.startTime = startTime; this.endTime = endTime; } @Override public int compareTo(Time time) { if (this.endTime == time.endTime) { return this.startTime - time.startTime; } else { return this.endTime - time.endTime; } } } public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); List<Time> times = new ArrayList<>(); StringTokenizer st; int startTime, endTime; for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); startTime = Integer.parseInt(st.nextToken()); endTime = Integer.parseInt(st.nextToken()); times.add(new Time(startTime, endTime)); } System.out.print(solution(times)); } private static int solution(List<Time> times) { int answer = 0; int endTime = 0; int count = 1; Collections.sort(times); for (Time time : times) { if (time.startTime < endTime) { count++; } else { answer = Math.max(answer, count); count = 1; endTime = time.endTime; } } return answer; } } 이렇게 로직을 구현했는데, 왜 오답 처리되는지 궁금합니다.다른 예외 케이스가 존재할까요?
-
해결됨리눅스 입문 - 개념으로 탄탄히!!
리눅스의 셸 질문
두가지만 질문 부탁 드립니다. 1.제가 사용자를 bash 셀말고 csh (c셸로) 만들어봤습니다. 근데 ls pwd 같은 명령어들 있잖아요 이런건 bash셸에 있는거 아닌가요?bash셸말고 csh로 만들면 ls pwd 같은 명령어 안되야 하는거 아닌가요? 제가 사용자 비밀번호 파일중에 /etc/shadow와 /etc/passwd를 특수권한을 일단 뺴고777로서 권한을 줘봤습니다. 이러면 다른 사용자들도 /etc/passwd와 /etc/shadow파일을 수정할수있게끔요 근데 왜 일반사용자 모드에서 다른사용자 비밀번호바꾸기가 왜 안되는거죠??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
멀티쓰레드 싱글톤
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]싱글톤 객체를 멀티쓰레드로 이용할 때, 이럴 때 그냥 멤버로 flag 하나 달아두면 되지 않나요?
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
sec3-2. robots.txt에 관한 질문입니다.
안녕하세요. 선생님. 각 웹사이트에서 크롤링에 대한 가능범위를 robots.txt에서 확인할 수 있다고 하셨습니다. robots.txt에 대한 부분을 확인할 수 있는 경우도 있지만 사실 robots.txt에 대해 명시하지 않는 사이트들도 많아서, 이런 경우에는 해당 웹사이트가 크롤링에 대해 어떤 스탠스를 취하고 있는지 어려운 경우가 있습니다.CU편의점 웹사이트는 Request Blocked 메시지를 띄운다던가, 어떤 웹사이트는 400번 에러를 내며 크롤링 가능범위를 보여주지 않습니다.이런 경우에는 웹사이트가 어떤 스탠스를 갖고 있다고 판단하면 될까요? 또한, 블로그와 같은 개인적인 공간에 특정 웹사이트를 크롤링하는 코드를 올리는 것은 문제의 소지가 있을까요?강의 감사히 듣고 있습니다. 감사합니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
터미널 명령어 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!MacBookAir make_calendar % flutter pub run build_runner buildDeprecated. Use dart run instead.Could not find package "build_runner". Did you forget to add a dependency?위 명령어 입력했더니 Deprecated되어서pub.dev에서 builder_runner를 yaml파일에 추가후 다 시 진행하니까실행은 되는데[INFO] Succeeded after 19ms with 0 outputs (0 actions)이렇게 아웃풋 파일이 안생기네요.. 어떻게 해야하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
플레이어가 바로 도착해버립니다...
디버깅해서 문제를 찾아보려고 했는데 문제가 처음에 y와 x에 1이 들어가져서 그런것 같습니다이전 좌표가 대입해져야하는건가요?
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
datepicker 질문있어요!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!datepicker에서 일은 빼고 년과 월만 뜨게 하고싶은데, datepicker에서 어떤 속성을 변경해줘야 할까요? 검색해도 잘 안나와서요..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
css-in-js 질문입니다!!
안녕하세요!! 수업 잘듣고있습니다.jsx내에서 div태그 속에 여러 css-in-js 변수들을 입력하려면 어떻게 해야하나요??아래와 같이 className 방식을 사용했는데 기존 css 방식이어서 안먹히는건가요...?<ProfileLink> <div className={clsx[styles.Click, styles.LinkLight].join(" ")}> <img src="/ic_link.png" /> </div> <Click> <img src="/ic_location.png" /> </Click> </ProfileLink>
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버 쇼핑몰 메뉴 & 검색창
a.nav.shop해도 쇼핑으로 이동안되서 찾아보니까 link_service로 되어있어서 수정했는데 수정하면 이메일 창으로 이동되요 ㅠㅠ그리고 검색창 클래스 부분도 맞게 하는데 input._ac_input으로 해서 작성해도 오류나와요 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
PostConstructor 관련해서 질문있습니다!
안녕하세요 항상 강의 잘 보고 있습니다.영한님께서 알려주신 내용으로 공부와 토이프로젝트를 병행해나가다 이해가 가질 않는 부분이 있어서 질문드립니다.상황A클래스에 @PostConstructor 어노테이션을 붙여 객체 a를 미리 저장해 DB에 저장을 하고 B클래스에도 @PostConstructor를 붙여 객체 b를 저장하려 하였습니다.(A클래스와 B클래스의 연관관계는 일대다입니다.) a객체에 b객체를 리스트 형태로 저장할 수 있게끔 빈 리스트를 만들어 저장하는 것까지 A클래스에서 확인을 하였고 B클래스에서 b객체를 만들고 아까 저장한 a객체를 DB에서 가져오는것까지 확인하였습니다.이후 a객체와 b객체의 연관관계를 연관관계 편의 메서드로 만들어주려하였으나 a객체에서 b객체들을 담을수 있게끔 만들어둔 리스트 형식의 필드가 lazyinitializationexception 예외를 발생시키며 더미데이터 생성에 실패하였습니다.시도해 본 것들@OneToMany의 기본 로딩 전략이 지연로딩이기에 생긴 문제인가 싶어 em.flush, @GraphEntity, hibernate.initialize까지 해보았으나 똑같이 lazyinitializationexception를 발생시키며 더미데이터 생성에 실패하였습니다.(혹시나 해서 즉시로딩으로 변경하니 더미데이터 생성은 문제없이 잘 되었습니다.)궁금한 점혹시 어떤 이유로 다음과 같은 현상이 발생했는지 알 수 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
static final 질문
public static final String ERROR_EXCEPTION = "javax.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "javax.servlet.error.message"; public static final String ERROR_REQUEST_URI = "javax.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "javax.servlet.error.status_code"; static final로 선언돼있는데 어떻게 다른 예외가 발생할 때 마다 로그 찍어보면 다른 값이 들어가 있나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
Rename 바를 여시는 단축키가 뭔가요
14:21초 처럼 강사님처럼 원하는 함수가 사용된 경로를 찾고싶은데 해당 기능을 사용하고자 하면 어떤 단축키를 사용해야할까요?
-
미해결Angular(2+) Front에서 Back까지 - Nest js를 알려면 Angular 모듈을 알아야한다!
필드 초기화 에러
import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { PageToggleService } from 'src/app/share/page-toggle.service'; @Component({ selector: 'app-stopwatch', templateUrl: './stopwatch.component.html', styleUrls: ['./stopwatch.component.scss'], providers: [ PageToggleService ] }) export class StopwatchComponent implements OnInit{ constructor( private router : Router, public pageToggleService : PageToggleService ){ } goClock(){ this.pageToggleService.goPage('/clock') } ngOnInit(): void { } } 이런 에러가 자꾸 납니다. ㅠㅠ초기화 하라고 하네요 자꾸constructor에 인자로 접근제한자 지정해서 해주면초기화까지 되는거 아닌가요?
-
미해결스프링 시큐리티
세션 클러스터링을 한 이후 동시로그인 제한이 안되는데요
안녕하십니까강사님 강의를 듣고 여기 커뮤니티에 나름 최신 소스 받아서 시큐리티 구현중인데요이중화 환경에서 톰캣을 통해 세션을 공유하는것까지는 되었는데요동시 로그인제한이 안되는데 추가적인 설정을 무엇을 해야할지 모르겠는데도움좀 받을수 있을까요? 스프링 2.7.10스프링 시큐리티 5.7.7 // 시큐리티 설정부분@Slf4j @RequiredArgsConstructor @EnableWebSecurity @Configuration public class WebSecurityConfig { private final MemberRepository memberRepository; @Bean public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception { // 경로 설정 http. authorizeRequests() .antMatchers().permitAll() .anyRequest().authenticated() ; // 동시 로그인 제한을 설정 http .sessionManagement() .maximumSessions(1) .expiredUrl("/error/expired") .and().sessionCreationPolicy(SessionCreationPolicy.ALWAYS) ; http.logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .invalidateHttpSession(true) .clearAuthentication(true) .deleteCookies("JSESSIONID") ; // 로그인... 인증 권한 체크... // 로그인 return http.build(); } /** * 여기에 Authentication 을 설정하도록 */ @Bean AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception { return authConfiguration.getAuthenticationManager(); } @Bean public static PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } } // 톰캣 클러스터링 부분 (https://happy-jjang-a.tistory.com/155를 참조했습니다.)@Configuration public class TomcatClusterConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { @Override public void customize(final TomcatServletWebServerFactory factory) { factory.addContextCustomizers(new TomcatClusterContextCustomizer()); } } class TomcatClusterContextCustomizer implements TomcatContextCustomizer { @Override public void customize(final Context context) { context.setDistributable(true); DeltaManager manager = new DeltaManager(); manager.setExpireSessionsOnShutdown(false); manager.setNotifyListenersOnReplication(true); context.setManager(manager); configureCluster((Engine) context.getParent().getParent()); } private void configureCluster(Engine engine) { //cluster SimpleTcpCluster cluster = new SimpleTcpCluster(); cluster.setChannelSendOptions(6); //channel GroupChannel channel = new GroupChannel(); //membership setting McastService mcastService = new McastService(); mcastService.setAddress("228.0.0.4"); mcastService.setPort(45564); // TCP&UDP port 오픈 필요 mcastService.setFrequency(500); mcastService.setDropTime(3000); channel.setMembershipService(mcastService); //receiver NioReceiver receiver = new NioReceiver(); receiver.setAddress("auto"); receiver.setMaxThreads(6); receiver.setPort(5000); // TCP port 오픈 필요 channel.setChannelReceiver(receiver); //sender ReplicationTransmitter sender = new ReplicationTransmitter(); sender.setTransport(new PooledParallelSender()); channel.setChannelSender(sender); //interceptor channel.addInterceptor(new TcpPingInterceptor()); channel.addInterceptor(new TcpFailureDetector()); channel.addInterceptor(new MessageDispatchInterceptor()); cluster.addValve(new ReplicationValve()); cluster.addValve(new JvmRouteBinderValve()); cluster.setChannel(channel); cluster.addClusterListener(new ClusterSessionListener()); engine.setCluster(cluster); } }
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Count 쿼리 발생에 대해 궁금합니다.
안녕하세요 호돌맨님 ! 질문이 있습니다 !!Pageable 을 사용해서 페이징 구현 시 Full Scan 을 하기 위해 Count 쿼리가 발생하는걸 확인했는데, Pageable 에서는 페이징 처리를 위해 총 데이터의 개수를 파악해야 하기 때문이니까 Count 쿼리가 필요한거고 Querydsl 은 직접 limit 값, offset 값을 지정하기 때문에 Full Scan 할 필요가 없으니 Count 쿼리가 필요없는게 맞을까요 ?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
iOS 실제 기기 Login 테스트 에러
안녕하세요.ip를 확인하고 android와 iOS 기기를 통해 테스트 중 에러가 발생했습니다.android 기기에선 문제 없이 동작하는데 iOS 기기에선 SocketException: Connection failed (OS Error: No route to host, errno = 65), address = 192.168.0.122, port = 3000 메시지와 함께 에러가 발생합니다.퍼미션이 잘못된 것인지 이유를 모르겠어서 질문드립니다!