묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
네비게이팅 섹션 강의에서?
onclick이벤트 처리는 SCR이라 상단에 'use client";라고 정의해줘야 하는게 아닌지요? 자동으로 CSR로 처리되나요?
-
미해결시작하는 PM/PO들에게 알려주고 싶은, 프로덕트의 모든 것
Payback Period 관련
가지고 있는 현금 상황에 따라 Payback Period의 목표는 달라져야 한다고 말씀주셨는데, 예산 할당이 되지 않은 프로덕트나 프로젝트의 경우 현금 상황에 대한 파악이 어려울 것 같거든요. 실무자가 어림짐작으로 회수 기간을 잡아야하는 케이스일 때는 어떤 기준으로 기간을 결정하는게 좋을까요?
-
해결됨핸즈온 리액트 네이티브
이미지 목록을 받아오는 부분에서 IOS 에서 문제가 발생합니다.
안드로이드의 경우 정상적으로 사진이 받아와 지는데 IOS에서는 아래와 같은 경고와 함께 오류가 발생합니다. https://github.com/expo/expo/issues/28772이러한 동일한 오류가 많이 발생하는거 같은데 해결 방법을 모르겠어서 질문드립니다ㅠ 깃허브 주소는https://github.com/dvrakry/rn-photo입니다 감사합니다!
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
Admin 뷰 템플릿 유료화 여부 및 변경 사항 문의드립니다.
안녕하세요.항상 좋은 강의 제공해 주셔서 감사합니다.현재 Admin 뷰 템플릿을 적용하는 강의를 듣고 있습니다.강의에서 안내해 주신 방법대로 뷰 템플릿을 다운로드받기 위해 해당 페이지에 접속했는데, 아래 이미지와 같이 표시되어 있어 질문드립니다.혹시 최근 업데이트로 인해 Admin 뷰 템플릿이 유료화된 것인지, 또는 다른 변경 사항이 있는지 확인해 주실 수 있을까요?개인적으로는 2025년 3월 11일 업데이트 이후 유료화된 것으로 보이는데, 정확한 내용이 궁금합니다.답변 부탁드립니다.감사합니다. [URL]: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template
-
미해결
그라파나 관련 내용만 있는 건 없을까요?
저는 그라파나에 대해서만 배우고 싶습니다. 물론 배경지식이 많았으면 좋겠지만 제 머리의 한계도 있고 선행되는 것 조차 이해하는 것도 오래 걸릴 것 같습니다. 그래서 저의 환경에서만 가능한 것을 찾아보고 있습니다. 일단 윈도우 에서 사용할 수 있는 그라파나로 대시보드를 만들고 싶습니다. 데이터및 DB 는 뭐가 되든 연결하여 대시보드를 만들고 차트, 트랜드 및 실시간 값, 최신값, 여러 대시보드 이동 등의 기능을 구현 하고 싶습니다. 이 강의를 통해 위의 내용을 학습할려고 한다면 어느 강의부분을 들어야 하나요? 정말 쿠버네티스 관련 선행이 있어야만 위의 기능을 구현하는게 되는 건가요?
-
해결됨그림으로 쉽게 배우는 네트워크
ARP 문의
ARP 강의 8분 15초 쯤의 내용 관련하여 문의드립니다. (위 사진은 해당 부분에 대한 캡쳐입니다.)동영상 내에서는 위 부분에서 목적지 MAC 주소가 AA:AA:AA:AA:BB:B1 로 바로 바뀌어서 전달되는 것으로 보이는데, 자세히 들여다보면 아래와 같은 내용이 생략된 것이 맞나요? 출발지 IP : 10.0.0.2목적지 IP : 9.0.0.2출발지 MAC : AA:AA:AA:AA:BB:BB목적지 MAC : FF:FF:FF:FF:FF:FF (교수님 PC의 IP 주소만 알고 있고 MAC 주소는 모르기 때문에 라우터 2가 교수님 PC 에 ARP 요청 메시지를 보냄) 이후에 교수님 PC 에서 자신의 IP 와 MAC 주소가 포함된 ARP 응답 메시지를 보내면 라우터2가 이 정보를 가지고 라우터 2의 ARP Cache 에 교수님 PC IP 와 MAC 주소를 저장해 놓음이후부터는 라우터2에 교수님 IP 로 전달할 데이터가 들어오면 작성된 라우터2의 ARP cache 를 보고 교수님의 MAC 주소에 정확하게 전달함 ARP 강의에는 ARP cache 가 호스트(강의에서 표현된 PC 들)에만 표시되어 있어서 라우터(L3 스위치)에는 ARP cache 가 없는건가? 라는 생각이 들었는데, 위에 제가 작성한 부분의 논리를 보면 라우터에도 ARP Cache 가 있을 것 같은데 맞는지 문의드립니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
모달 쪽 닫을때 질문입니다.
모달쪽 닫을때 아래와같이 콘솔창에 뭐가 뜨는데왜 뜨는걸까요? 동작: 아이콘 눌러서 모달 띄운후 닫기나 X버튼 클릭할때 뜹니다.위 같은 aria-관련된거면 부트스트랩에서 띄우는건가여?궁금해서 여쭤봅니다.
-
해결됨핸즈온 리액트 네이티브
안드로이드 기기에서 헤더 부분이 작동이 안됩니다.
안드로이드 와 IOS 기기 둘다 사용하면서 강의를 진행중에있는데요. IOS 기기에서는 헤더 왼쪽 오른쪽 부분 모두 정상적으로 작동을 하는데 안드로이드 기기에서는 헤더 부분 모두 작동을 하지 않아서 질문드립니다. IOS: Iphone 11 propAndroid : Galaxy 7 모델 사용중입니다. 깃주소는https://github.com/dvrakry/rn-photo입니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
의존성 역전으로 해결한 외부의존성?
의존성과 Testability(2) 5분 10초 내용입니다.사진과 같이 해결하면 결국 SystemClockHolder의 getMillis에는 Clock이라는 의존성이 숨겨진거 아닌가요? 그럼 이 getMillis 메소드를 테스트하기 힘들어진 게 아닌가요?
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
섹션 6 질문
현재 최적의 광고 단가를 빠르게 찾는 방법까지 봤습니다. 저예산, 경쟁이 적은 광고를 찾는다는 개념은 이해를 했습니다. 그러나 광고를 통해 수익을 창출하는 부분은 아직 한 개념이 정확하지 않아서 질문드립니다. 검색을 자주하는 키워드이며 저예산인 최적의 광고를 찾아서 예를 들어 자신의 앱의 하단 부분에 노출하고 있으면 저단가로 많은 수익을 낸다는 개념인가요?광고를 노출하고 있을 때 수익을 내는 개념이 맞다면 자주 검색하는 키워드를 달아야하는 이유가 해당 광고를 터치를 하는 경우에도 수익이 나기 때문인가요? 아직 수익에 대해 개념이 부족해 부족한 질문이지만 답변해주시면 정말 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
exceptionResolver에서 null 반환
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용] @Slf4jpublic class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try { if (ex instanceof IllegalArgumentException) { log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage()); return new ModelAndView(); } } catch (IOException e) { log.error("resolver ex", e); } return null; }}만약 HandlerExceptionResolver에서 null을 반환하게 되면은.. 그러면 스프링 기본 로직인 basicErrorController에서 /error 를 호출해서 해결하게 되는 것이 아닌가요? basicErrorController를 거치지 않고 그냥 WAS로 예외가 던져지나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 예외 상태코드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]API 예외 처리 - HandlerExceptionResolver 시작 강의에서,"예외가 발생해서 서블릿을 넘어 WAS까지 예외가 전달되면 HTTP 상태코드가 500으로 처리된다." 라고 하셨는데예외가 만약 RuntimeException 과 같은 경우면 500에러로 반환 되는 것인가요?근데 만약 상태코드가 지정된 예외라면.. (ex. sendError(404) 라면 어떻게 되나요? 이 경우는 404 에러로 리턴되지 않나요?
-
미해결엑셀 시작하기 : EXCEL 입문 (Inflearn Original)
셀서식 -> aaaa -> 월요일 (무슨 원리인건가요?)
원리가 따로 있을까요? 아님 기본 셋팅값일까요?
-
미해결[2025] 자바 입문 부트캠프 JAVA DEEP DIVE [PART2/2 심화편]
스프링과정 질문
현재 강의 잘듣고있는 수강생입니다. 궁금한게있어서요 향후 스프링 부트 포토폴리오 과정에서 소셜로그인 oath2.0인가??? 구글이나 카카오톡계정을 연동해서 로그인하는 구현기능 내용도 포함되어있는지 궁금합니다. 그리고 현재 수강신청한거 수강률 50% 넘겼어요~~~ 오라클과 자바 강의 수강 기간 연장 신청합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
QueryDSL 소개2 해결 강의 관련 질문입니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 내용중에 "조인에 대해서도 당연히 지원한다." 라고 되어있는 ppt 내용중에서,이렇게 join을 사용하는 부분이 있는데, 여기에 있는 join이 left join이랑 다른 것이고 inner join이랑 다른 개념인건가요? “기능 살펴보기” 부분에도 그냥 join도 있고 innerjoin도 있고, left join도 있던데 그냥 join은 무슨 의미인가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그인 에러
안녕하세요 강사님! 질문이 있어서 작성합니다.현재 섹션 7까지 수강한 상태입니다.회원가입을 하고 로그인을 시도했는데 회원가입은 정상, 로그인은 에러가 반환됩니다. 1) 섹션 19(165강)에서 WebSecurity 코드로 실행package com.example.user_service.sercurity; import com.example.user_service.service.UserService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authorization.AuthorizationDecision; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.core.Authentication; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.access.expression.WebExpressionAuthorizationManager; import org.springframework.core.env.Environment; import org.springframework.security.web.access.intercept.RequestAuthorizationContext; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.security.web.util.matcher.IpAddressMatcher; import java.util.function.Supplier; @Configuration @EnableMethodSecurity public class WebSecurity { private final UserService userService; private final BCryptPasswordEncoder bCryptPasswordEncoder; private final Environment env; public static final String ALLOWED_IP_ADDRESS = "127.0.0.1"; public static final String SUBNET = "/32"; public static final IpAddressMatcher ALLOWED_IP_ADDRESS_MATCHER = new IpAddressMatcher(ALLOWED_IP_ADDRESS + SUBNET); public WebSecurity(Environment env, UserService userService, BCryptPasswordEncoder bCryptPasswordEncoder){ this.env = env; this.userService = userService; this.bCryptPasswordEncoder = bCryptPasswordEncoder; } @Bean public AuthenticationManager authenticationManager(HttpSecurity http) throws Exception { AuthenticationManagerBuilder authenticationManagerBuilder = http.getSharedObject(AuthenticationManagerBuilder.class); authenticationManagerBuilder.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder); return authenticationManagerBuilder.build(); } @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf((csrf) -> csrf.disable()) .authorizeHttpRequests((authz) -> authz .requestMatchers(new AntPathRequestMatcher("/actuator/**")).permitAll() .requestMatchers(new AntPathRequestMatcher("/h2-console/**")).permitAll() .requestMatchers(new AntPathRequestMatcher("/users", "POST")).permitAll() .requestMatchers(new AntPathRequestMatcher("/welcome")).permitAll() .requestMatchers(new AntPathRequestMatcher("/health_check")).permitAll() .anyRequest().access( new WebExpressionAuthorizationManager( "hasIpAddress('127.0.0.1') or hasIpAddress('192.168.219.119')")) ) .sessionManagement((session) -> session .sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .headers((headers) -> headers.frameOptions((frameOptions) -> frameOptions.disable())); return http.build(); } private AuthorizationDecision hasIpAddress(Supplier<Authentication> authentication, RequestAuthorizationContext object){ return new AuthorizationDecision(ALLOWED_IP_ADDRESS_MATCHER.matches(object.getRequest())); } }2) https://github.com/joneconsulting/toy-msa/tree/springboot3.2 에서 'springboot3.2' 브런치의 'WebSecurityNew', 'IpAddressLoggingFilter' 코드로 실행 그리고 IpAddressLoggingFilter 코드에 대한 강의도 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의가 너무 오래 된거 아닌가요
이거 너무 오래된 강의 아닌가요 강의 다시 찍어야 하는거 아닌가요 -_-;이거 하나하나 달라서 하다가 너무 빡치는 상황이 많이 나오네요 정말 질문해야 하는거 너무 많이 나올정도 입니다 로드맵으로 다 샀는데 아 정말 강의가 거의 다 그런거 같아서 너무 짜증납니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 2분대 설명에 대해 질문 있습니다.
안녕하세요,2분대에서,a->b->c 든, a->c->b 든 순서는 상관 없이 둘 중 최적을 구하고 d로 간다고 말씀하신걸로 이해했습니다.그런데, a->b->c 인지, a->c->b인지 실제로 중요하고, 둘 다 탐색 해야하는 것 아닌가요..?a->b->c 인 경우와 a->c->b인 경우 모두 tsp() 함수 호출 시점에 argument로 전달되는 visited 값은 같겠지만, here 값이 달라지는데.. 오히려 반대로, 코드의 흐름상 결과적으로 일어나는 일은:tsp(c, {a, b, c}) 에서 tsp(d, {a, b, c, d}) + dist[c][d] tsp(b, {a, c, b}) 에서 tsp(d, {a, b, c, d}) + dist[b][d] 위 1번과 2번 사이의 비교 아닌가요..?이 경우 분명히 순서가 중요한 것 같아서 헷갈립니다! ㅎㅎ 좋은 강의 항상 잘 듣고 있습니다.감사합니다 🙂
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
7분 34초 인스턴스 변수 접근
안녕하세요,7분 34초 경에 질문이 있습니다.정적 메서드에서 인스턴스 변수에 접근할 수 없어 오류가 난다고 하셨는데, 만약, Person.callDisplayName(); 이 아니라 p1.callDisplayName(); 로 하면 에러가 나지 않고 정상 출력으로 Name: Alice가 나오는지 궁금합니다. 만약 그래도 에러가 난다면 this가 private 인스턴스 변수를 가리켜서 그런걸까요?private String name이 아니라 public String name으로 바꾸면 인스턴스 변수이지만 접근 가능한지 궁금합니다.
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 1 : 절차적 프로그래밍
강의 내용에서 궁금한 부분이 있어 질문 드립니다:)
안녕하세요, 널널한 개발자님!이번 강의에서 clone(), Arrays.copyOf(), System.arraycopy()가 깊은 복사를 수행한다고 설명해주셨는데, 제가 알고 있는 바로는 이 기능들이 얕은 복사를 수행한다고 알고 있어 의문이 들어 질문드립니다:) 먼저 다음은 강의의 예제를 바탕으로 작성한 코드입니다.import java.util.Arrays; public class Test_1 { public static void main(String[] args) { int[] array1 = {10, 20, 30, 40, 50}; System.out.println("array1: " + Arrays.toString(array1)); //int[] array2 = array1; int[] array2 = array1.clone(); //int[] array2 = Arrays.copyOf(array1, array1.length); //int[] array2 = new int[5]; //System.arraycopy(array1, 0, array2, 0, array1.length); System.out.println("array2: " + Arrays.toString(array2)); System.out.println(); array1[0] = 100; System.out.println("array1[0] -> 100"); System.out.println("array1: " + Arrays.toString(array1)); System.out.println("array2: " + Arrays.toString(array2)); System.out.println(); array2[1] = 200; System.out.println("array2[1] -> 200"); System.out.println("array1: " + Arrays.toString(array1)); System.out.println("array2: " + Arrays.toString(array2)); } }위 예시에서 강의에서 설명한 대로 clone(), Arrays.copyOf(), System.arraycopy()가 깊은 복사를 수행한다고 생각할 수 있지만 사실 int[]와 같은 값 타입에서는 이를 깊은 복사보다는 단순한 값 복사로 보는 것이 더 적절하다고 생각이 듭니다.(개인적인 생각입니다!) 다음은 참조 타입을 사용한 코드입니다.import java.util.Arrays; public class Test_2 { public static void main(String[] args) { Person[] array1 = { new Person("Hello"), new Person("Hi"), }; Person[] array2 = array1.clone(); //Person[] array2 = Arrays.copyOf(array1, array1.length); //Person[] array2 = new Person[2]; //System.arraycopy(array1, 0, array2, 0, array1.length); System.out.println(array1[0].name + ", " + array1[1].name); System.out.println(array2[0].name + ", " + array2[1].name); System.out.println(); array1[0].name = "Good"; System.out.println("array1[0].name = Good"); System.out.println(array1[0].name + ", " + array1[1].name); System.out.println(array2[0].name + ", " + array2[1].name); System.out.println(); array2[1].name = "Nice"; System.out.println("array2[1].name = Nice"); System.out.println(array1[0].name + ", " + array1[1].name); System.out.println(array2[0].name + ", " + array2[1].name); } } class Person { String name; Person(String name) { this.name = name; } }참조 타입인 Person[] 배열을 사용했을 때 clone(), Arrays.copyOf(), System.arraycopy()가 얕은 복사를 수행하는 것을 확인할 수 있습니다. clone(), Arrays.copyOf(), System.arraycopy()와 같은 기능들이 값 타입 배열에서 깊은 복사처럼 동작한다고 생각할 수 있겠지만 단순한 값 복사라고 생각이 들며, 참조 타입 배열에서는 확실하게 얕은 복사를 수행합니다.clone(), Arrays.copyOf(), System.arraycopy()가 값 타입에 대해서만 깊은 복사를 수행한다고 할 수 있는지 이에 대해 좀 더 명확한 설명을 듣고 싶습니다:)