묻고 답해요
132만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
npm init 대신에
node js 깔고, 터미널에 'npx create-next-app@latest' 설치한 다음에 pasge 폴더에 있는 거 다 지우고 index.js 파일 새로 생성해서 코드 짜넣어도 npm run dev가 동작하는데 상관 없나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
마구간 질문드립니다
안녕하세요 선생님, 마구간 문제 관련하여 잘 이해가 되지 않는 부분이 있어 이렇게 글 남겨드립니다. count 함수를 통하여 말의 개수를 셀 때, 좌표의 가장 왼쪽, 즉 좌표 배열을 arr이라고 하면,선생님께서는 count 함수에서 말의 개수를 세실 때, arr[0]을 ep로 두어 for문으로 문제를 해결하셨는데요, 이 부분이 직관적으로 확 와닿지 않습니다 ㅠㅠ.. 마땅한 반례를 찾지는 못하였으나, arr[0] 이외의 부분에서 답이 있을 수 있으니, ep를 이중 for문으로 돌려 찾아야 하는 것이 아닌가 생각이 드는데, 그렇게 하지 않으신 이유에 대하여 질문 남겨드립니다 감사합니다 선생님!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
`cors({ origin: true })` 가 이점이 있나요?
cors({ origin: true }) 했을시에는Access-Control-Allow-Origin 이 '*' 이 아닌 http://localhost:3001 이렇게 요청보낸 곳의 url 로 나오는데, 특별한 이점이 있나요? 단순히 사용자에게 cors({ origin: '*' })이 아니다 라고 알려주는게 목적인가요?
-
해결됨실전! 스프링 데이터 JPA
Auditing 질문 드립니다
안녕하세요! 생성 시간, 수정 시간을 JPA Auditing으로 관리하는 것과 db에서 default, on update 조건으로 관리하는 것이 어떤 차이가 있는지 궁금합니다..!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요~
8:12에서 코드에 n = 7일때 대입을 해보았습니다.첫 loop에서cnt = 11cnt = 11 % 7 -> 4ret =24 % 7 == 0 안되고, else로 가서cnt = 4 * 10 + 1 - > 41cnt = 41 % 7 -> 6ret = 36%7 ==0 안되고, else로 가서cnt = 61cnt = 61%7 -> 5ret = 45%7 == 0 안되고 else로 가서cnt = 51cnt = 51%7 -> 2ret = 52 % 7 == 0 안되고 else로 가서cnt = 21cnt = 21%7 -> 0ret = 60%7 == 0 되서ret인 6이 출력되는 강사님께서 설명하시는 1,11,111,1111은 어떤것을 말씀하시는건지 잘 모르겠습니다.. 제가 문제를 잘 못 이해하고 있는 걸까요… ㅠㅠ
-
미해결10분만에 만드는 github blog for Pythonista
해당프로젝트가 더 이상 지원을 해주지 않는것 같습니다.
setup 관련하여 계속 오류가 발생하여 확인해봤더니 해당 프로젝트는 deprecated가 되었다고 합니다.더 이상 fastpages는 지원하지 않는걸까요?
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
sql injection이 왜 위협적인 공격인지 궁금합니다.
sql injection이 성공한다면 매우 위협적이라는 것은 알고 있으나 강의 내용을 수강하고 나서 든 생각은 매우 간단한 조치(prepared statement + 길이제한 + white List)만으로도 취약점 분석 단계에서 막혀버리는 공격인데 왜 owasp top 10에 들어갈 정도로 위협적인 공격으로 평가되고 있는지 궁금합니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
count(*) >1의 의미
count(*)의 의미는 아는데 >1을 하는게 어떻게 유니크한 값을 볼 수 있는건지 이해가 안됩니다
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
이론 수업 자료 공유 해주실 수 있나요?
안녕하세요, 이론 수업 자료도 같이 받아보고 싶은데 공유해주실 수 있나요?당연히 혼자 공부하는데만 사용할 예정 입니다.
-
미해결
https://start.spring.io/ 프로젝트 생성 시 문의
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 수강하고 있습니다.https://start.spring.io/ 프로젝트 생성을 진행하고있는데, 강의해서는 Gradle Project 를 선택해서 진행하고있습니다. 하지만 현재는 Gradle-Groovy / Gradle-Kotlin / Maven 이 조회되는데 어떤걸로 진행을 해야할지 문의드립니다.ㅠㅠ 또한 Spring boot 하위버전 선택 방법도 함께 문의드립니다ㅠㅠ
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
if else 문제..
문제. 중첩 if를 이용하여 프로그램을 작성하세요* 3개 과목의 점수를 입력 받아서 합격인지 불합격인지 출력하세요* 3개 과목이 전부 40점 이상이어야 하고 평균이 60이상이면 "합격"* 평균이 60이 넘지만 1개 과목이라도 40점 미만이면 "과락으로 불합격"* 평균이 60미만이면 "불합격"** --출력결과--* 국어점수입력 : 95* 영어점수입력 : 85* 수학점수입력 : 73* 결과 : 합격 이문제 출력결과 나타내려고제가 나타낸 코드인데 2개가 궁금합니다.if (a => 40) && (b => 40) && (c => 40)조건으로 위에 문장이 사용안되는 이유가 뭔가요? 그리고 평균값을 구할때if (a+b+c) / 3 >= 60 이렇게 했는데 이것도 코드가 안되는데 이유가 뭔가요?
-
미해결[MASTER] 만들면서 배우는 Figma UI Design
강의자료 여/부
해당 강의의 강의자료는 따로 없나요?
-
미해결스프링 핵심 원리 - 기본편
for문을 통한 Bean 출력
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 들으면서 Bean 이름을 출력을 하는 과정에서 for문에 forEach를 통해서 이름들을 전부 출력하는걸로 이해를 하고 있는데 Object bean의 경우 컨테이너에 있는 Bean 이름과 같은 Bean 정보를 Object 형태로 담아서 출력을 하는게 맞는걸까요 ??@Test @DisplayName("애플리케이션 빈 출력하기") void findApplicationBean(){ String[] beanDefinitionNames = ac.getBeanDefinitionNames(); // iter 자동 for문 생성 for (String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); // .getRole() : 스프링이 내부에서 사용하는 빈 // Role ROLE_APPLICATION : 직접 등록한 애플리케이션 빈 // Role ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈 if(beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION){ Object bean = ac.getBean(beanDefinitionName); // soutv : 변수명 출력 , soutm : 메서드명 출력 System.out.println("bean = " + beanDefinitionName + " object = " +bean); } } }
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
ORM 활용 API 구현 강의에서 다른 ERD 테이블을 쓰는데, 링크 공유 부탁드립니다.
우리가 만든건 스타벅스 ERD인데, 이것을 안쓰고중고거래 ERD를 사용하네요. 링크 공유 부탁드립니다.
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
69번 질문드립니다.
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 12분 25초에 함수를 만들때 return이 3번 들어가도 되는건가요?마지막에 함수 끝날때만 들어가야하고 조건문에서는 else로 조건문을 닫는다던가 해야하는거 아닌지 궁금합니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
companion
안녕하세요 강의 잘 보고 있습니다 다름이 아니라 4분대에 나오는 생성자를 companion 으로 바꿔주셨는데.. 이게 더 좋다라고 하시는 이유를 제가 짐작이 안가서 그런데 혹시 간략하게 알려 주실수 있으신가요..?
-
해결됨[코드캠프] 시작은 프리캠프
HTML 관련
안녕하세요 방금 막 강의 듣기 시작하여서 회원가입 페이지 만드는 실습 중입니다.vscode 설치부터 extentions까지 똑같이 다운로드 받고 강의와 동일하게 실습을 진행하였는데 파일을 열어보면 결과가 다르게 나옵니다.먼저 글씨체가 멘토님과 다르게 나오고 input박스에 테두리가 안 보입니다. 입력이 되는것을 보면 input박스가 존재하긴 하는데 테두리가 왜 안 보일까요?인코딩 역시 utf-8로 동일합니다!
-
해결됨[코드캠프] 시작은 프리캠프
제가 머리가 안좋은걸까요...
처음 배워보는 사람인데 CSS정렬까지만 보고 회원가입창을 만들 수 있는 건가요? 아무리 해봐도 안되는 것 같아서 여쭤봅니다 그리고 여기서부터 전진을 못하고있습니다 저 자식박스들을 옆으로 옮기는 방법이 무엇인가요? 각자 class마다 flex선언을 해야하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
doFilterInternal 관련 질문있습니다.
안녕하세요. 제가 BasicAuthenticationFilter 상속받아서 doFilterInternal 메소드를 구현했는데 해당 필터의 해당 메소드는 인증이나 권한이 필요한 API를 호출했을 때만 동작을 하는 걸로 알고 있었는데 SecurityConfig에서 antMatcher에 permitAll로 지정한 경로의 API를 호출했는데 doFilterInternal 메소드가 동작하는 현상이 발생하는데 혹시 왜그런건지 궁금합니다. 해당부분에 관련된 코드는 아래와 같습니다.SecurityConfig@Configuration @EnableWebSecurity public class SecurityConfig { private final CorsConfig corsConfig; private final MemberRepository memberRepository; private final JwtProvider jwtProvider; public SecurityConfig(CorsConfig corsConfig, MemberRepository memberRepository, JwtProvider jwtProvider) { this.corsConfig = corsConfig; this.memberRepository = memberRepository; this.jwtProvider = jwtProvider; } @Bean BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .formLogin().disable() .httpBasic().disable() .apply(new MyFilters()) .and() .authorizeRequests() .antMatchers("/api/member/join").permitAll() .antMatchers("/api/member/login").permitAll() .anyRequest().authenticated() .and().build(); } public class MyFilters extends AbstractHttpConfigurer<MyFilters, HttpSecurity> { @Override public void configure(HttpSecurity builder) throws Exception { AuthenticationManager authenticationManager = builder.getSharedObject(AuthenticationManager.class); builder .addFilter(corsConfig.corsFilter()) .addFilter(new JwtAuthenticationFilter(authenticationManager, jwtProvider)) .addFilter(new JwtAuthorizationFilter(authenticationManager, memberRepository, jwtProvider)); } } } JwtAuthenticationFilterpackage com.example.shop.jwt; import com.example.shop.auth.PrincipalDetails; import com.example.shop.model.Member; import com.example.shop.repository.MemberRepository; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; import javax.crypto.SecretKey; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class JwtAuthorizationFilter extends BasicAuthenticationFilter { private final MemberRepository memberRepository; private final JwtProvider jwtProvider; public JwtAuthorizationFilter(AuthenticationManager authenticationManager, MemberRepository memberRepository, JwtProvider jwtProvider) { super(authenticationManager); this.memberRepository = memberRepository; this.jwtProvider = jwtProvider; } @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { String refreshToken = jwtProvider.getRefreshTokenInCookie(request); String accessToken = ""; SecretKey jwtKey = Keys.hmacShaKeyFor(Decoders.BASE64.decode(JwtProperties.SECRET)); if (refreshToken == null) { chain.doFilter(request, response); return; } String jwtHeader = request.getHeader(JwtProperties.HEADER_STRING); Claims claims = null; try { // refreshToken 유효성 검증 jwtProvider.validRefreshToken(refreshToken); } catch (Exception e) { // refreshToken 검증 결과에 따른 예외처리 e.printStackTrace(); chain.doFilter(request, response); return; } Member member = memberRepository.findByRefreshToken(refreshToken); Long memberId = member.getId(); try { if (jwtHeader == null) { // 브라우저 새로고침 고려하여 accessToken 재발급 accessToken = jwtProvider.createAccessToken(memberId, jwtKey); response.addHeader(JwtProperties.HEADER_STRING, accessToken); } else { // 그 외의 경우 accessToken 유효성 검증 accessToken = jwtHeader.replace(JwtProperties.AUTH_TYPE, ""); claims = Jwts.parserBuilder().setSigningKey(JwtProperties.SECRET).build() .parseClaimsJws(accessToken).getBody(); } } catch (Exception e) { // accessToken 검증 결과에 따른 예외처리 e.printStackTrace(); chain.doFilter(request, response); return; } // refreshToken, accessToken 검증 이후 작업 PrincipalDetails principalDetails = new PrincipalDetails(member); Authentication authentication = new UsernamePasswordAuthenticationToken(principalDetails, null, principalDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); chain.doFilter(request, response); } } 특이한 점은 api/member/login 경로의 API(UsernamePasswordAuthenticationFilter의 attemptAuthentication를 상속받아 구현했습니다.)를 호출했을 때에는 doFilterInternal이 동작을 하지 않지만 api/member/join 경로의 API를 호출했을 때에는 doFilterInternal이 동작을 합니다.
-
미해결만들면서 배우는 리액트 : 기초
VSCode 테마와 글씨체 어떤 걸 쓰시는지 알고 싶습니다.
VSCode 테마와 글씨체 어떤 걸 쓰시는지 알고 싶습니다.강의 잘 듣고있습니다 :)