inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

멀티모듈 초기설정

해결됨

멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]

지금 Swagger 적용하기 보고있는데 Application.kt 파일 을 작성하는데 스프링이 적용이안돼는지 어노테이션 이 원래 빨갛고 노랗게 떠야하는데 안뜨네요 강의보고 따라하는중인데 어떻게해야될지 잘모르겠습니다

  • java
  • spring
  • kotlin
  • mysql
  • spring-boot
김우철 댓글 2 좋아요 0 조회수 115

5:46 저 부분이 안보이는데

미해결

한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)

왜그런거죠?

  • python
spaceno1js 댓글 1 좋아요 0 조회수 59

4:07 글 입력은 어떻게 하나요?

미해결

한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)

(사진)

  • python
spaceno1js 댓글 2 좋아요 0 조회수 43

[교재문의]p.192쪽 풀이 중 궁금점

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 제가 책보면서 공부중인데 코딩을 할 때 아래와 같이 코딩을 하다보니 에러가 뜨더라구요 result = df['차이'].min()에서 ['차이'] 이거를 빼고 하니까 되던데... 컬럼명을 넣고 안넣고에서 어떤 차이가 있는건가요..? import pandas as pd df = pd.read_csv("delivery_time.csv") # df.info() df['실제도착시간']=pd.to_datetime(df['실제도착시간']) df['주문시간']=pd.to_datetime(df['주문시간']) # df.info() df['차이']=(df['실제도착시간']-df['주문시간']).dt.total_seconds()/60 df = df.groupby('앱종류')['차이'].mean() df result = df['차이'].min() print(result)

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
jkim8109 댓글 2 좋아요 0 조회수 46

C언어 문자열 인식

해결됨

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

데이터 형태와 참/거짓 챕터이고 문자 배열로 할당하기 위해서 1:56 보시면 //문자 배열로 할당에서 맨 오른쪽에 \0이 무조건 있어야 문자 배열로 인식이 되는건가요?

  • python
  • java
  • c
  • 정보처리기사
dhkdxo12 댓글 2 좋아요 0 조회수 50

동적 큐 이름 설정 방법 및 SimpleRabbitListenerContainerFactory의 재정의에 따른 Retry 설정 미적용 관련 질문입니다.

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하십니까 코드빌런님. 이번 추석 연휴동안 레빗 엠큐 강의 잘 들었습니다. 다름이 아니라 강의에서 알려주신 여러 내용을 바탕으로 기존에 구현하였던 redis pub/sub 기반의 알림 기능에 레빗 엠큐를 적용해보고 있습니다. 그리고 구현 중 두가지 질문이 있어 질문을 작성하게 되었습니다. 1. 동적 큐 이름 설정 방식 우선 알림을 전송하는 과정에 대해 말씀드리면 다음과 같습니다. 알림 객체 저장 성공 시 알림 발송 sse 연결들을 ConcurrentMap으로 관리하여 대상 userId의 sse연결을 찾아 해당 연결로 알림 객체 전송 현재 메시지 큐 구조는 다음과 같습니다. 알림 저장 메시지 생성 (direct exchange, saveNotificationQueue) -> 메시지 저장 성공 시 알림 전달 메시지 생성 (fanout exchange, publishNotificationQueue), 메시지 저장 실패 시 데드레터 큐로 전달 현재 서비스는 3개의 인스턴스로 동작하고 있습니다. 이때 알림 저장 큐는 1개라서 복수 저장될 일이 없지만, 그 후에 진행되는 알림 전달의 경우 단일 큐로 작동하면 대상 sse 연결이 없는 인스턴스에서 해당 메시지를 소비하게 되면 전송이 실패합니다. 그래서 각 인스턴스마다 큐를 만들어주고 fanout exchange에 모두 바인딩하여 사용하는 방식으로 만들어야 할 것 같다고 생각하였습니다. 그래서 찾아보니 SpEL 기반 동적 큐 이름 지정 방식이 있다고 하여 해당 방식으로 구현해보았습니다. // RabbitMQConfig.java // 알림 발송 큐 @Bean public String dynamicPublishNotificationQueueName() { String randomString = UUID.randomUUID().toString(); return PUBLISH_NOTIFICATION_QUEUE + " : " + randomString; } @Bean public Queue publishNotificationQueue() { return new Queue(dynamicPublishNotificationQueueName(), false); } @Bean public FanoutExchange publishNotificationExchange() { return new FanoutExchange(PUBLISH_NOTIFICATION_EXCHANGE); } @Bean public Binding publishNotificationBinding() { return BindingBuilder.bind(publishNotificationQueue()).to(publishNotificationExchange()); } // NotificationSubscriber.java @RabbitListener(queues = "#{@dynamicPublishNotificationQueueName}") public void consumePublishNotificationMessage(Notification notification) { notificationService.publishNotification(notification); } 해당 방식으로 정상 작동은 확인하였는데, 혹시 해당 방식 외에 더 나은 방식이 있는지 궁금합니다. 2. SimpleRabbitListenerContainerFactory의 재정의에 따른 Retry 설정 미적용 강의 18강에서 application.yml에 retry 관련 프로퍼티를 설정하는 것만으로 자동으로 retry가 적용된다고 하여 해당 방식을 프로젝트에 적용해보았습니다. spring.rabbitmq.listener.simple.retry.enabled=true spring.rabbitmq.listener.simple.retry.initial-interval=1000 spring.rabbitmq.listener.simple.retry.max-attempts=3 spring.rabbitmq.listener.simple.retry.max-interval=1000 spring.rabbitmq.listener.simple.default-requeue-rejected=false 하지만 어떤 이유인지는 몰라도 retry가 작동하지 않았습니다. 실제로 실행되는 코드에 로그를 찍어봐도 한번만 시도하고 설정한 예외가 발생 후 바로 DLQ로 이동하였습니다. 그래서 원인을 찾던 도중 https://inf.run/bsxxr 에서 @RabbitListener를 사용하면 내부적으로 SimpleMessageListenerContainer 가 자동으로 생성되기 때문에 retry 설정을 읽어서 exception 이 발생할 경우 RetryTemplate을 사용해서 자동으로 설정된 속성에 해당하는 작업을 수행하게 됩니다. 라고 코드빌런님이 말씀하신 것을 보았습니다. 확인해보니 메시지큐에서 객체 자동 역직렬화를 위해 @Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setMessageConverter(messageConverter()); return factory; } 이렇게 SimpleRabbitListenerContainerFactory를 정의하여 빈으로 등록해놓았는데, SimpleRabbitListenerContainerFactory를 살펴보니 public class SimpleRabbitListenerContainerFactory extends AbstractRabbitListenerContainerFactory<SimpleMessageListenerContainer> { ... 말씀하신 SimpleMessageListenerContainer 를 타입파라미터로 받아 상속받고 있는 형태였습니다. 이에 말씀하신 SimpleMessageListenerContainer 가 자동으로 생성되어 retry 설정이 적용안되는것인가? 라고 예상하여 application.properties에 정의하는 대신 @Bean public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); factory.setMessageConverter(messageConverter()); factory.setDefaultRequeueRejected(false); factory.setAdviceChain(RetryInterceptorBuilder.stateless() .maxAttempts(3) .backOffOptions(1000, 2.0, 10000) .build()); return factory; } 이렇게 직접 retry 설정을 넣어주니 그제야 재시도가 정상적으로 작동하였습니다. 해당 원인이 제가 생각한 직접 팩토리를 Bean으로 등록하면 application.properties 의 retry 설정이 무시되는 것이 맞는지 궁금합니다. 코드는 아래 url에서 보실 수 있습니다. https://github.com/Dockerel/4th-SC-TEAM1-BE/pull/15/files 강의 정말 잘 들었습니다! 이렇게 프로젝트에 바로 적용해볼 수 있어서 기분이 좋네요. 나중에 코드빌런님의 다른 기술 스택 강의도 들어보고 싶습니다. 감사합니다.

  • spring-boot
  • jpa
  • websocket
  • rabbitmq
도등어 댓글 1 좋아요 0 조회수 147

bot03.py 실행시 db 생성이 안 됩니다.

해결됨

공부만 하면 뭐해, 수익화를 위한 코인/주식 자동매매 봇 제작

터미널 화면 첨부합니다.

  • python
  • aws
  • pandas
  • rest-api
  • bitcoin
Gyujin KANG 댓글 2 좋아요 0 조회수 111

정처기2025 2회 3분2초

해결됨

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

3분2초에 A가 B로 엎어쳐졌다는데 자세한설명도 없이 엎어쳐졌다니깐 왜 바뀐건지 이해가 안갑니다.

  • python
  • java
  • c
  • 정보처리기사
csu3321 댓글 2 좋아요 0 조회수 119

btc_data_1year.csv 파일 저장이 안됩니다.

해결됨

공부만 하면 뭐해, 수익화를 위한 코인/주식 자동매매 봇 제작

app10.py 실행했을 때 1년치 비트코인 가격 csv 파일이 저장이 안됩니다. 관련한 터미털 화면 캡쳐 첨부했습니다.

  • python
  • aws
  • pandas
  • rest-api
  • bitcoin
Gyujin KANG 댓글 3 좋아요 0 조회수 146

작업형1 모의고사 시험환경

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

시험환경으로 이동하면 실제 체험용 문제가 나오는데요, 문제 파일이 data/employee_performance.csv 인데 어디로 들어가야 하나요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
audreyjy 댓글 2 좋아요 0 조회수 69

빅분기 11회도 10회차랑 동일하게 준비하면 될까요??

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

10회 때랑 강의목록은 달라지지 않은 것 같은데 똑같이 준비하면 될까요??

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
최수영 댓글 2 좋아요 0 조회수 105

제출버튼

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 제출버튼이 없습니다. 어떻게 해야하나요

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
pseoin0907 댓글 2 좋아요 0 조회수 55

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

문제 풀이는 있는데 자료 구조들로 풀어야하는 문제들은 없어서 질문드립니다. 나중에 코테볼때 나올것 같은데 이 부분은 다른 강의나 책에서 보고 공부해야하는지요.

  • java
  • 코딩-테스트
커디널스 댓글 1 좋아요 0 조회수 90

미스터 KILL-9 Processor 단 질문이 있다

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

안녕하신가 미스터 KILL-9 항상 빠르고 친절한 답변 고맙다 이번에 회사 로직 작성중에 조금 막막한 부분이 있어 질문 하러 왔다 reader 엑셀 파일 읽어오고 processor 에서 해당 엑셀 데이터 값을 가지고 dao 호출해서 검증하고, 깍고 (가공) 마지막으로 쓰기 처형하는데 작업을 하는데 문제는 가공 단계에서 dao 를 직접 호출하면 ExecutorType 이 simple 로 호출되고 쓰기 단계에서 batch 로 ExecutorType 실행되어 에러가 발생한다 Cannot change the ExecutorType… 이렇게 말이다.. 그래서 일단 아래 코드 처럼 해결은 했어 우선 기존 코드는 PoiItemReader -> ItemProcessor<> (여기서 mybatis dao 호출 해서 검증작업도 함) -> MyBatisBatchItemWriter -> 에러 Cannot change the ExecutorType… 해결한 코드 PoiItemReader -> ItemProcessor<> (여기서 mybatis dao 호출 해서 검증작업도 함) -> JdbcBatchItemWriter-> (해결) 그런데 이렇게 작성해도 되려나 싶네.. 그리고 String 문으로 쿼리 짜는것도 맘에 안들고..ㅠㅠ

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
wndgks49 댓글 2 좋아요 1 조회수 100

한글이 깨질 떄 어떻게 해야 하나요?

미해결

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

Configuration UTF-8 로 돌려도 똑같습니다.

  • java
  • 네트워크
  • 객체지향
KMC 댓글 1 좋아요 0 조회수 106

강의 내 문제 자료 다운로드 가능 여부

해결됨

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

안녕하세요 강의를 들으면서 첨부자료 없는 강의에 대해서 질문이 있습니다. 문제 풀이해주실 때 코드가 보이는데 현재 수기로 종이에 적고 있는 상황입니다. 강의별로 코드가 적힌 파일 같은 것이 있는지와 다운로드할 수 있는 방법이 있는지 궁금합니다.

  • python
  • java
  • c
  • 정보처리기사
dhkdxo12 댓글 2 좋아요 0 조회수 105

오타발견

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

- 명백한 한계점 (단점): - 네트워크 대역폭 소모: 실제 데이터를 전송하므로 네트워크 부하가 극심하다. 데이터 건수가 많거나 크기가 크면 통신 자체가 병목이 될 수 있다. ( "핵탄두 데이터 전송에 따른 통신망 과부하 주의!" ) - Manager 읽기 병목: Manager 혼자 모든 데이터를 읽어야 하므로, 읽기 자체가 느리다면 원격 청킹은 효과가 없다. ( "중앙 정찰 위성의 스캔 속도 한계!" ) - 복잡성(감시와 디버깅의 지옥문): 역시 미들웨어(Kafka 등)와 프링 인티그레이션 설정이 필수적이다. 프링 인티그레이션 ->스프링 인티그레이션

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
qwerty jon 댓글 2 좋아요 1 조회수 60

이런 풀이는 어떨까요

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.util.*; import java.util.stream.*; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num = in.nextInt(); List<Integer> coins = new ArrayList<>(); for (int i=0; i<num; i++) { coins.add(in.nextInt()); } int target = in.nextInt(); in.close(); Set<Integer> isVisited = new HashSet<>(); Map<Integer, List<Integer>> countByCoins = new HashMap<>(); for (Integer coin : coins) { if (coin == target) { System.out.print(1); return; } else { isVisited.add(coin); } } countByCoins.put(1, new ArrayList<Integer>(coins)); int start = 2; while (true) { List<Integer> valuesByBefore = countByCoins.get(start - 1); List<Integer> newList = new ArrayList<>(); for (Integer before : valuesByBefore) { for (Integer coin : coins) { int sum = before + coin; if (sum == target) { System.out.print(start); return; } if (!isVisited.contains(sum)) { isVisited.add(sum); newList.add(sum); } } } countByCoins.put(start, newList); start++; // System.out.println(countByCoins); } } }

  • java
  • 코딩-테스트
조영상 댓글 1 좋아요 0 조회수 68

인기 태그

인프런 TOP Writers

주간 인기글