inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

ArrayEx4 질문입니다

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] package array.ex; import java.util.Scanner; public class ArrayEx4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numbers = new int[5]; int total = 0; System.out.println("5개의 정수를 입력하세요: "); for (int i = 0; i < numbers.length; i++) { numbers[i] = scanner.nextInt(); total += numbers[i]; } System.out.print("입력한 정수의 합계: " + total); System.out.println(); double average = (double) total / numbers.length; System.out.println("입력한 정수의 평균: " + average); } } 선생님이 풀어주신 코드랑은 다른데 제 코드도 답이 될수있는지 궁금합니다

  • java
  • 객체지향
cye7066 댓글 2 좋아요 0 조회수 208

강의 교안 요청

미해결

피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z

좋은 강의 잘 듣고 있습니다. 강의 교안 공유 요청하고 싶어 문의 글 남깁니다! jjjunn@naver.com 입니다. 감사합니다!

  • 웹-디자인
  • 모바일-디자인
  • figma
woojun_lee 댓글 1 좋아요 0 조회수 177

강의 교안 요청드립니다!

미해결

비전공 기획자 및 관리자를 위한 IT 필수 지식

좋은 강의 잘 듣고 있습니다. 강의 교안 신청하고 싶어 문의글 남깁니다! jjjunn@naver.com 입니다. 감사합니다!!

  • 커뮤니케이션
woojun_lee 댓글 1 좋아요 1 조회수 197

Interceptor에서 reactor Context 유지하는 방법

미해결

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

외부에서 들어온 요청 헤더 정보를 Reactor Context에 저장하고, 내부적으로 grpc호출 할때 clientInterceptor에서 저장된 Context를 읽어오고 싶은데, Context0과 함께 읽지 못하는 문제가 있습니다. Interceptor에서도 읽어오려면 어떻게 해야할까요 ㅜㅜ 외부 요청 헤더를 Context에 저장하는 코드 @Component class RequestHeaderFilter() : WebFilter { companion object { const val X_REQUEST_ID_KEY = "X-Request-Id" } override fun filter(exchange: ServerWebExchange, chain: WebFilterChain): Mono<Void> { val requestId = exchange.request.headers.getFirst(HeaderNames.REQUEST_ID) return chain.filter(exchange) .contextWrite { context -> context.put(X_REQUEST_ID_KEY, requestId ?: "test!!") } .doFinally { } .subscribeOn(Schedulers.boundedElastic()) } } grpc 요청 interceptor에서 reator Context 조회하여 grpc Metadata에 추가하는 코드 class CustomHeaderInterceptor() : ClientInterceptor { companion object { const val X_REQUEST_ID_KEY = "X-Request-Id" val X_REQUEST_ID_HEADER_KEY: Metadata.Key<String> = Metadata.Key.of("x-request-id", Metadata.ASCII_STRING_MARSHALLER) } override fun <ReqT : Any, RespT : Any> interceptCall( method: MethodDescriptor<ReqT, RespT>, callOptions: CallOptions, next: Channel ): ClientCall<ReqT, RespT> { return object : ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(next.newCall(method, callOptions)) { override fun start(responseListener: Listener<RespT>, headers: Metadata) { Mono.deferContextual { context -> val requestId: String = context.getOrDefault(X_REQUEST_ID_KEY, fallbackRequestId()) ?: fallbackRequestId() headers.put(X_REQUEST_ID_HEADER_KEY, requestId) delegate().start(responseListener, headers) Mono.just(requestId) }.subscribe() } } } private fun fallbackRequestId() = "${UidUtils.generateUid()}"

  • java
  • spring
  • project-reactor
  • webflux
yj na 댓글 2 좋아요 0 조회수 321

병렬 테스트 시 DB처리

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요 강의 정말 잘 듣고 있습니다~! 한가지 궁금한 점이 있는데, 테스트 병렬 실행 시에 db는 어떻게 관리되는지 궁금합니다. 테스트가 많아지면서 병렬로 실행하고 싶은데, db는 지금 h2 mem db 한군데만 바라보고 있어서 테스트 간 같은 항목에 대한 처리들을 하면 실패로 이어집니다. 어떻게 병렬로 실행할 수 있게 하는지 궁금합니다 ㅎㅎ 그리고 인수테스트(RestAssured)도 진행중인데, 인수테스트는 병렬 실행을 포기하는 편인지도 궁금하네요..

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
해범 댓글 2 좋아요 0 조회수 382

비교연산자와 반복문+조건문 문제 풀이

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

11:00 문제에서 count += i; 이게 2의배수이면서 3의배수가 아닌 값일 떄에 count 와 i 값을 더해주면 되는건가요?? 비전공자라서 설명이 너무 부족합니다 ㅠㅠ

  • python
  • java
  • c
  • 정보처리기사
ㅊㅌㅎ 댓글 1 좋아요 0 조회수 229

wifi 연결이 안됩니다ㅜㅜ

미해결

아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!

wifi이름이랑 비밀번호도 제대로 적었는데 계속 '.' 만 나오면서 시도만 하고 와이파이 연결이 안되네요ㅠㅠ 이건 무슨 문제인가요,,? (맥북으로 연결하면서 실습중입니다..)

  • 네트워크
  • arduino
  • iot
강지희 댓글 1 좋아요 0 조회수 395

RAG에서의 chain 코드

미해결

프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용

chain 연결하는 | 문법을 사용하지 않는 이유가 있을까요?

  • 챗봇
  • gradio
  • chatgpt
  • llm
  • langchain
  • openai-api
김민석 댓글 1 좋아요 0 조회수 181

connect.sid 삭제가 되지 않습니다.

해결됨

Next + React Query로 SNS 서비스 만들기

개별적으로 서버를 만들어서 진행중입니다. // 로그인시 서버에서 발급하는 코드 response.cookie('connect.sid', accessToken, { httpOnly: true, sameSite: 'none', secure: false, }); // 프론트에서 아래와 같이 저장 if (res.ok && res.status === 204) { let setCookie = res.headers.get("set-cookie"); if (setCookie) { const parsed = cookie.parse(setCookie); cookies().set("connect.sid", parsed["connect.sid"]); const user = jwtDecode(parsed["connect.sid"]); return { ...user, }; } } // 서버에서 삭제하는 코드 logout(request: any, response: Response) { const { user } = request; response.clearCookie('connect.sid', { httpOnly: true, sameSite: 'none', secure: false, }); ... } 로그인 하면 서버에서 쿠키 설정 -> 프론트에서 저장을 진행한 후, 로그아웃시 위 코드처럼 삭제하도록 하고있습니다. 강의 하단부에 작성해주신것 처럼 아래와 같이 events부분에 작성하였는데 쿠키 삭제가 되지 않습니다 ㅠㅠ events에 넣지 않고 강의 그대로 했을 때는 s%3..으로 바뀌어서 삭제되지 않습니다. events에 넣었을때는 아예 값도 바뀌지 않고 삭제되지 않습니다. 어떤 작업이 필요할까요 ㅠㅠ //auth.ts events: { signOut: async (data) => { const token = cookies().get("connect.sid"); if (!token) return; const res = await logout(token.value); console.log("signOut"); }, }, // logout fetch export const logout = async (token: string) => { const res = await fetch(`${BASE_URL}/logout`, { method: "POST", headers: { Authorization: `Bearer ${token}`, }, credentials: "include", }); return res; };

  • react
  • next.js
  • react-query
  • next-auth
  • msw
성민최 댓글 3 좋아요 0 조회수 403

api 서버를 만들 때 로그인 하지 않은 사람이 인터셉터에 걸린 경우

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이런 경우는 api 서버라 로그인 페이지로 리다이렉트 시킬 수도 없는데 사용자가 요청이 거절되었다는 것을 어떻게 알려줘야 하나요?

  • spring
  • mvc
shk 댓글 1 좋아요 0 조회수 159

스켈레톤 사용 불가

해결됨

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

현재 제가 사용하고 있는 플러터 버전(3.22 stable)에서 Theme.of(context). backgroundColor 가 deprecated 된 것 같은데 스켈레톤 라이브러리 가장 최신버젼에서 해당 코드를 사용하고 있어 라이브러리를 땡겼을 시 에러가 나는 것 같습니다. 제가 잘못 알고 있는 부분이 있다면 알려주시면 감사하겠습니다!

  • flutter
  • 하이브리드-앱
cold 댓글 2 좋아요 2 조회수 515

4주차는 개념강의만 들어도 괜찮을까요?

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

오랜시간 고민하다 강의를 보면서 힌트를 받아 4-A를 풀었습니다. 허나 정말 빠르게 취준을 목표로 삼고있다면 비트마스킹은 스킵해도 될까요? 선택과 집중을 하고싶습니다,, 물론 다 알아가면 좋지만 bfs나 dfs나 dp같은 문제들을 더 풀어보는게 좋을지 비트마스킹은 간단하게 알고 지나가도 괜찮은지 궁금합니다.. 항상 좋은 강의 감사합니다.

  • c++
  • 코딩-테스트
김형준 댓글 2 좋아요 0 조회수 346

연결리스트 숙제

미해결

비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)

prev와 tail을 이용해서 만들어 봤습니다! 궁금한점이 하나 있는데 remove 메서드의 if (current)의 else 부분은 필요하지 않은것 같아서 구현하지 않았는데 문제가 있지는 않나요? class LinkedList { length = 0; head = null; tail = null; add(value) { const newNode = new Node(value); if (this.head) { this.tail.next = newNode; this.tail = newNode; } else { this.head = newNode; this.tail = newNode; } this.length++; return this.length; } search(index) { return this.#search(index)[1]?.value; } prevSearch(index) { return this.#search(index)[0]?.value; } #search(index) { let count = 0; let prev; let current = this.head; while(count < index) { prev = current; current = current?.next; count++; } return [prev, current]; } remove(index) { const [prev, current] = this.#search(index); if (current) { if (prev) { prev.next = current.next; } if (current.next) { current.next.prev = prev; } if (current === this.tail) { this.tail = prev; } } this.length--; return this.length; } } class Node { next = null; prev = null; constructor(value) { this.value = value; } } const li = new LinkedList(); li.add(1); li.add(2); li.add(3); li.add(4); li.add(5); li.add(6); console.log(li.prevSearch(2)); console.log(li.remove(4)); console.log(li.search(4)); console.log(li.tail.value); console.log(li.remove(3)); console.log(li.tail.value); console.log(li.remove(3)); console.log(li.tail.value); console.log(li.remove(2)); console.log(li.remove(1)); console.log(li.tail.value); console.log(li.remove(0));

  • javascript
  • 코딩-테스트
  • 알고리즘
댓글 1 좋아요 0 조회수 264

Atomic 변수와 Lock을 둘 다 사용하는 이유가 궁금합니다

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Atomic 변수를 사용함으로써 Distribute 함수에 하나의 쓰레드만 들어오는게 보장된 것 같은데 굳이 Lock 또 다시 사용하는 이유는 Distribute 함수 말고도 다른 곳에서 items 라는 컨테이너에 접근할까봐(지금은 아니지만) 이렇게 작업하신걸까요?

  • 네트워크
  • MMORPG
  • windows-server
점심 댓글 2 좋아요 1 조회수 364

설명 질문입니다..!

해결됨

개발자를 위한 쉬운 도커

강사님 안녕하세요~! 강사님 강의 덕분에 도커에 대해 많이 알아가고 있어서 좋습니다!! 혹시 강의 내용 중 02:00: IP주소는 8바이트 04:22: IP주소는 8바이트 라고 설명해 주시는 부분을 8비트로 이해하면 되는 게 맞나 싶어서 문의드려요!

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • docker-image
  • container
배배꼬 댓글 2 좋아요 1 조회수 254

PickType

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

현재 PickType 활용하기를 듣고있습니다. 위에서 PickType 은 값을 반환을 하고 Pick 은 타입을 반환한다고 말씀을 주셨는데요. PickType 이 값을 반환 한다는 말씀이 실제로 어떤 값을 반환하는것이 아니라 request dto 역할로 데이터가 key : value 로 들어오니까 단순 타입이 아니라 값을 받기때문에 값을 반환한다 라고 이해를 해야할까요 ??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
SJ 댓글 1 좋아요 0 조회수 208

회원가입 테스트에서 중복회원 에러가 뜨지 않고 통과됩니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] MemberServiceIntegration 클래스서 회원가입 test를 실행시켰을 때, '이미 존재하는 회원입니다.'라는 에러가 뜨지 않고 "A Java agent has been loaded dynamically" 이런 경고만 뜨면서 test가 실행됩니다. 버전 업그레이드 문제일까요?

  • java
  • spring
  • mvc
  • spring-boot
dddkh 댓글 2 좋아요 0 조회수 363

6장 컴포넌트 스캔 - 필터

해결됨

스프링 핵심 원리 - 기본편

안녕하세요. 강의자료-탐색 위치와 기본 스캔 대상 탐색할 패키지의 시작 위치 지정 문단에서 만약 지정하지 않으면 @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 된다. 라고 읽었습니다 아래 코드에서 질문있습니다.(필터 문단 예제) package hello.core.scan.filter; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); Assertions.assertThat(beanA).isNotNull(); org.junit.jupiter.api.Assertions.assertThrows(NoSuchBeanDefinitionException.class , ()->ac.getBean("beanB",BeanB.class)); } @Configuration @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyIncludeComponent.class), excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } } 위코드는 강사님이 써주신 코드와 일치하는 코드 입니다. 여기에서 @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyIncludeComponent.class) 를 제외 했을때 즉 beanA를 포함 하는 코드를 지웠습니다. 그러면 아래와 같은 코드가 됩니다. package hello.core.scan.filter; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); Assertions.assertThat(beanA).isNotNull(); org.junit.jupiter.api.Assertions.assertThrows(NoSuchBeanDefinitionException.class , ()->ac.getBean("beanB",BeanB.class)); } @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } } 위코드에서 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanA' available 에러가 발생하는 이유가 궁금합니다.. 위 예제에서 @ComponentScan이 붙은 설정 정보 클래스와 beanA클래스는 같은 패키지 내에 있습니다. @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 됨으로 같은 패키지 내에 존재하는 BeanA클래스 객체는 스프링빈으로 등록되는거 아닌가요?

  • spring
  • 객체지향
전성민 댓글 1 좋아요 1 조회수 137

싱글톤패턴 DIP 위반

미해결

스프링 핵심 원리 - 기본편

[질문 내용] 싱글톤 패턴 문제점에서 getInstance() 사용시 DIP를 위반한다고 하신 점이 이해가 잘 안가서 직접 구현해보았습니다. 제가 이해한 내용이 맞나요...? [구현 내용] 싱글톤 객체의 의존성 주입에 관한 문제이므로, SingletonService에 주입한 SingletonRepository를 생성하였습니다. public class SingletonRepository { private static final SingletonRepository instance = new SingletonRepository(); public static SingletonRepository getInstance() { return instance; } private SingletonRepository(){} } SingletonService에 SingletonRepository 필드를 추가합니다. public class SingletonService { private SingletonRepository singletonRepository; ... } DIP를 지키기 위해선, DI를 해야합니다. 하지만 SingletonService에 의존관계를 주입할 수 있는 방법이 없습니다... 생성자 주입 방법: 추가 객체 생성을 막기 위해 생성자를 막아놓았으므로 불가. 필드 주입, setter 주입, 일반 메서드 주입: 스프링 기술, 순수 자바 코드로 주입 불가. 클라이언트코드인 SingletonService가 SingletonRepository를 사용하기 위해 다음과 같이 구현체에 의존해야 합니다. public class SingletonService { private SingletonRepository singletonRepository = SingletonRepository.getInstance(); ... } 따라서 순수 자바 코드로 싱글톤 패턴 구현 시 DIP를 위반합니다.

  • spring
  • 객체지향
  • DIP
  • di
  • 위반
  • 싱글톤
할 수 있다 댓글 1 좋아요 1 조회수 394

프롬프트 기법에 대한 소식을 어디서 얻을 수 있을까요?

미해결

프로젝트로 배우는 Python 챗봇 & RAG - LangChain, Gradio 활용

단편적으로 프롬프트는 이렇다를 넘어서서 그런 최신의 정보를 얻으려면 어디서 얻어야할까요? 감사합니다

  • 챗봇
  • gradio
  • chatgpt
  • llm
  • langchain
  • openai-api
김민석 댓글 1 좋아요 0 조회수 192

인기 태그

인프런 TOP Writers

주간 인기글