inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의내용 변경 시 알 수 있는 방법이 있을까요 ?

해결됨

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

코딩 강의는 다 수강했는데, 혹시라도 강의내용이 변경되면 알 수 있는 방법이 있을까요 ?

  • python
  • java
  • c
  • 정보처리기사
rokkk 댓글 1 좋아요 0 조회수 242

홈화면 추가에서 index.html이 실행되고 home이 실행이 안되는 문제

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 보고 똑같이 코딩했는데 localhost:8080 이렇게넣었을때 welcom화면으로 index.html이 뜹니다 다른분들이질문하신 글들을 다 읽어보고 답변해주신내용들 대로 다 실행해보았으나 해결이 되지 않아, 같은 내용이지만 글을 올립니다.. home에서 ctrl + B했을때 home.html화면이 잘 떴었고, 전체기간 캐시도 삭제해 봤습니다.. 그리고 index.html지우면 화이트라벨 에러뜨면서 안되더라구요. 제거 https://drive.google.com/file/d/1mDv9-Z_r6aChpDBx1ZhtlJZL0dZG6Hzj/view?usp=sharing

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

첫 프로젝트 생성 문의

미해결

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

프로젝트 생성해서 자바 17버전을 깔고 다시 나갔다 들어오니 처음 화면이 저렇게 나옵니다 우측 선생님과 같은 화면이 안나오는데 어떻게 해야하나요??

  • java
  • spring
  • mvc
  • spring-boot
^^ 댓글 1 좋아요 0 조회수 160

Redis의 INCR 사용 해도 Race condition이 잡히지 않는 문제

미해결

실습으로 배우는 선착순 이벤트 시스템

안녕하세요! 강사님 덕분에 현재 진행중인 프로젝트 코드에 동시성 문제 잘 적용하고 있습니다. 다름이 아니라, 현재 MSA 프로젝트를 하고 있어 쿠폰 쪽 DB는 쿠폰만 쓰기 때문에 부하에 따른 걱정은 덜어도 될 것 같아 카프카가 아닌 Redis의 INCR 명령어를 통해서 선착순 쿠폰 로직의 Race condition 문제를 잡아보려고 하고 있는데요. 질문에 앞서 프로젝트 환경을 말씀드리자면 강의와 동일하게 docker pull redis 해서 이미지로 다운받아 실행했고, 6380 포트로 연결해줘서 yml 설정과 Config 설정 또한 해줬습니다. INCR 키 값을 살짝 바꿔서 coupon_count:{couponId} 가 되도록 해줬습니다. 문제는 1000개의 쓰레드로 요청을 날렸을 때 여러번의 요청 테스트는 통과가 안된다는 점입니다.. 쿠폰 발급이 100개 되어야하는데 102, 103번 애매하게 되고 있습니다. (postman으로 API 요청 날릴 때마다 해당 키 값의 value가 1씩 잘 증가하는 것은 확인했습니다) RDB 상에서도 100개의 발급 내역이 잘 들어오고 있구요. (물론 테스트가 DB에 영향을 미치면 안되지만요ㅠㅠ) 이런 경우는 왜 그런건가요?? 코드도 첨부 하겠습니다. 감사합니다!! /* * 선착순 쿠폰 발급 */ @Transactional public CouponIssuedResponseDto issueFirstComeCoupon(CouponIssuedRequestDto request) { // 쿠폰 ID로 쿠폰을 찾고, 존재하지 않으면 예외 처리 Coupon coupon = couponRepository.findById(request.couponId()) .orElseThrow(() -> new CustomException(ErrorCode.COUPON_NOT_FOUND)); // 발급 가능한 쿠폰 수량 확인 -> Redis Long currentCount = couponCountRepository.getCount(request.couponId()); if (currentCount > coupon.getMaxQuantity()) { throw new CustomException(ErrorCode.COUPON_ISSUE_LIMIT_EXCEEDED); } // 새로운 쿠폰 발급 -> Redis에서 수량 증가 Long newCount = couponCountRepository.increment(request.couponId()); if (newCount > coupon.getMaxQuantity()) { throw new CustomException(ErrorCode.COUPON_ISSUE_LIMIT_EXCEEDED); } CouponIssued issued = CouponIssued.builder() .coupon(coupon) .userId(request.userId()) .issuedAt(LocalDateTime.now()) .build(); CouponIssued saved = couponIssuedRepository.save(issued); return CouponIssuedResponseDto.fromEntity(saved); } @Repository public class CouponCountRepository { private final RedisTemplate<String, Long> redisTemplate; public CouponCountRepository(RedisTemplate<String, Long> redisTemplate) { this.redisTemplate = redisTemplate; } public Long increment(Long couponId) { String key = "coupon_count:" + couponId; return redisTemplate.opsForValue().increment(key, 1); } public Long getCount(Long couponId) { String key = "coupon_count:" + couponId; Long count = redisTemplate.opsForValue().get(key); return count != null ? count : 0L; } } @BeforeEach public void setUp() { // Redis 초기화 redisTemplate.opsForValue().set("coupon_count:10", 0L); } @AfterEach public void tearDown() { couponRepository.deleteAll(); couponIssuedRepository.deleteAll(); redisTemplate.delete("coupon_count:10"); // 테스트 끝난 후 Redis 데이터 삭제 } @Test public void multipleUserIssueCoupon() throws InterruptedException { // Given // 쿠폰을 생성 Coupon coupon = Coupon.builder() .name("Test Coupon") .couponCode("TEST100") .discountRate(10) .maxQuantity(100L) .issuedQuantity(0L) .expiresAt(LocalDateTime.now().plusDays(30)) .couponType(CouponTypeEnum.FIRST_COME) .build(); couponRepository.save(coupon); Long couponId = coupon.getCouponId(); // 고정된 couponId 사용 Long userId = 1L; // 고정된 userId 사용 // When int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(50); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { executorService.submit(() -> { try { CouponIssuedRequestDto request = new CouponIssuedRequestDto(10L, userId); couponIssuedService.issueFirstComeCoupon(request); } catch (CustomException e) { // Expected exception when limit is exceeded } finally { latch.countDown(); } }); } latch.await(20, TimeUnit.SECONDS); // Then Long count = redisTemplate.opsForValue().get("coupon_count:10"); System.out.println("coupon_count:10 = " + count); // 디버깅용 로그 추가 assertThat(count).isNotNull(); // count가 null이 아닌지 확인 assertThat(count).isEqualTo(100); // 발급된 쿠폰의 수를 확인 long issuedCount = couponIssuedRepository.count(); assertThat(issuedCount).isEqualTo(100); }

  • java
  • docker
  • spring-boot
  • redis
이경진 댓글 1 좋아요 0 조회수 632

문제 풀이시 설명 요청 드립니다.

해결됨

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

선생님 문제풀이 하실 때 짝수, 약수를 구분해서 빠르게 문제를 파악하는 스킬은 매우 좋은 방법 같아요 그런데 코드가 한번 돌아가면서 변수 숫자가 바뀌는데 그냥 풀어버리시니까 어떻게 하는 지 프로그램을 사용해보지 않은 비전공자 입장에서는 이해가 덜 가는 것 같아요 조건 반복문에서 변수가 증감되는 것이 헷갈리거든요 문제를 풀 때는 하나 하나 숫자를 적어가면서 변하는 값을 알고 대입해야 하는데.. 풀이를 보니 쫒아가지를 못하겠네요 조건 반복문 문제풀이에서 어떻게 계산하라는 거지? 라는 생각이 들어요. 제가 표도 그려서 적어보기도 하고.. 여러 방법을 시도해봤는데 여러개의 변수가 들어가면 헷갈리더라고요 (15분 전 문제, 15분 문제) 조금만 더 자세하게 천천히 알려주시면 감사하겠습니다. 수포자는 더 힘들어요. ㅋㅋ

  • python
  • java
  • c
  • 정보처리기사
이성미 댓글 1 좋아요 1 조회수 248

test-resources - application-test.yml로 했을 때 h2에 테이블이 생성되지않아요

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의대로 application.yml로 했을 때는 생성이 잘 되었습니다. 그런데 test -resource - application-test.yml로 넘어가니 h2에 Member테이블이 생성되지 않습니다. 어떻게 해야할까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 2 좋아요 0 조회수 390

CAN 메시지 ID 관련되서

해결됨

CAN 통신 - 자동차 신입이 알아야 할 모든 것

안녕하세요. 계측회사 신입사원으로 근무중인 학생입니다. 우선, 좋은 강의 너무 감사합니다. 회사 업무에 있어서 기초를 배우니, 조금씩 사양서를 읽거나 설명을 듣는 데 있어서 알아 들을 수 있는 것 같습니다. 질문은 그렇습니다! CAN 메시지 ID는 보통 16진수 0X숫자 로 쓰이는 것을 알고 사양서에도 ID에 그렇게 정리된 것을 보니 실무적인 것을 알았는데요. 간혹 ID에 hex 헥사로 변경해서 표현하는 것도 있는 것 같은데요. can id가 06 08 hex 라고 되어있으면 어떤식으로 받아들여야하는지도 알 수 있을까요? 감사합니다.

  • CAN
  • uds
데브수달 댓글 2 좋아요 0 조회수 358

선생님 강의 너무 잘 듣고 있습니다. 질문이 있습니다.

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

SPP를 통해서 padding 된 이미지를 가지고 Annotation 파일의 정보와 비교해서 유사도를 측정할텐데 Annotation안에 있는 모든 구역의 정보와 비교하는 것인가요? 예) TV, 사람, 의자 사이즈가 홀수인 경우에는 다른 질문에 응답처럼 padding 한다고 되어있는데 다른 모든 경우에도 정보가 부족하다면 해당 공간을 0으로 채우는 건가요?

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • tensorflow
  • 컴퓨터-비전
Alex 댓글 1 좋아요 0 조회수 189

강의 중 이해가 안되어 질문드립니다.

해결됨

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

마지막 if문에서 value i==0 && value j==0이면 트루인데 위에 문장에서 count되어서 숫자가 하나씩 계속 증가하게 되는거 아닌가요? 그럼 트루가 아니게 되는게 아닌지 모르겠어서 여쭤봅니다.

  • python
  • java
  • c
  • 정보처리기사
유지니 댓글 1 좋아요 0 조회수 229

jar 안되는 분들 참고하세요

미해결

예제로 배우는 스프링 입문 (개정판)

java -jar target/spring-petclinic-3.3.0-SNAPSHOT.jar 강의에서 처럼 주소 지정이 안찾아지는 분들은 왼쪽 상단바에 jar검색하셔서 해당하는 주소값을 마지막에 적으시면됩니다. 왼쪽 파일 검색 jar검색 java -jar target/해당하는 파일명.jar ex) java -jar target/spring-petclinic-3.3.0-SNAPSHOT.jar

  • java
  • spring
김현빈 댓글 1 좋아요 0 조회수 397

질문을 이상한데다 했었네요ㅠㅠ

해결됨

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

https://www.inflearn.com/questions/1307841 답변 부탁 드립니다!!

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

파이참 다운로드

미해결

파이썬으로 10가지 게임 만들기 1편 [비전공자 초급 과정]

파이참을 다운로드 하는데 커뮤니티 버전이 없어요 30일 무료 평가판이 있는데 이미 30일이 지나서 쓸 수가 없네요. 커뮤니티 버전을 어디서 찾을 수 있을까요?

  • python
박민정 댓글 2 좋아요 0 조회수 1163

교안 제공은 안되나요?

미해결

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

교안 제공은 안되나요?

  • python
  • 동시성
  • FastAPI
이우 댓글 1 좋아요 0 조회수 242

webhook 단점

해결됨

실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)

안녕하세요 slack 부분 구성이 좀 궁금해서 일단 해당 부분 강의만 봤는데 Webook 단점 영상 중에 강사님이 만드신 Alert이 왔을때 생기는 버튼 및 Log에 대한 쓰레드를 달 수있는 기능은 webhook으로 불가능하다 하셨는데요. 그렇다면, 저 기능을 이용하려면 Webhook말고 어떤 기능을 이용해야하나요? 감사합니다.

  • python
  • aws
  • Terraform
  • devsecops
gomadafter 댓글 1 좋아요 1 조회수 260

14강 Map에 대해서 질문이 있습니다.

해결됨

자바 9부터 자바 21까지

안녕하세요 ! 항상 좋은 강의 감사합니다. 😃 강의 10:09 에서 말씀해주실때 firstEntry 와 lastEntry 만 immutable이라고 말씀해주셔서 테스트를 해봤습니다. pollFirstEntry 와 pollLastEntry 도 unmodifiable copy 객체를 반환하는 거같아서요 public static void main(String[] args) { LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put("key1", "value1"); linkedHashMap.put("key2", "value2"); linkedHashMap.put("key3", "value3"); Map.Entry<String, String> firstEntry = linkedHashMap.pollFirstEntry(); firstEntry.setValue("new value"); } 이렇게 했는데 예외가 발생했습니다. 추가로 14강 9:50 에 reversed()도 immutable 이라고 말씀해주셨었는데 호기심에 테스트를 해보니 데이터가 수정됩니다. @Test @DisplayName("reversed 데이터 추가 및 원본 데이터 수정가능하다.") void add() { LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put("key1", "value1"); linkedHashMap.put("key2", "value2"); linkedHashMap.put("key3", "value3"); SequencedMap<String, String> reversed = linkedHashMap.reversed(); reversed.put("key4", "value4"); Assertions.assertSame(4, linkedHashMap.size()); }

  • java
티벳로보 댓글 1 좋아요 0 조회수 215

[Django 5 버전 - 해결 방법] Method Not Allowed (GET)

미해결

장고 설계철학으로 시작하는 파이썬 장고 입문

장고 5 부터 LogoutView로의 요청은 POST 방식만 허용 장고 버전을 올려 봤는데, 이러 이슈가 생길 수도 있네요 :) [30/Jun/2024 11:43:53] "GET /accounts/logout/ HTTP/1.1" 405 0 Method Not Allowed (GET): /accounts/logout/ Method Not Allowed: /accounts/logout/

  • python
  • django
snow 댓글 1 좋아요 0 조회수 310

백트래킹 관련해서 질문 드립니다!

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

n = int(input()) # 식재료 개수 minimums = list(map(int, input().split())) # 최소 영양소 기준 ingredients = [list(map(int, input().split())) for _ in range(n)] # 재료들 # 선택한 식재료를 담을 배열 초기화 picked = [] result_picked = [] # 최소 비용 초기화 (정답값) min_cost = 987_654_321 # 조건 확인 def is_bigger(sum_nutrients): global minimums for i in range(4): if sum_nutrients[i] < minimums[i]: return False return True # subset 구하기 def recursion(k): global picked, min_cost, result_picked if k == n: # 재료를 모두 선택했다면 # 뽑은 재료가 조건에 만족하는지 확인 # picked의 영양소들의 합이 minimums의 각 최소 영양소보다 커야 함 # 뽑은 재료의 각 영양소의 합을 담기 sum_nutrients = [0, 0, 0, 0] sum_cost = 0 for i in range(len(picked)): sum_cost += ingredients[picked[i]][4] # 비용 담기 for j in range(4): sum_nutrients[j] += ingredients[picked[i]][j] # 최소 영양소보다 큰 지 확인 # 근데 사전 순으로 가장 빠른 것을 출력해야 한다. # 어떻게 ? if is_bigger(sum_nutrients) and sum_cost <= min_cost: if sum_cost < min_cost: min_cost = sum_cost # 최소 비용 업데이트 result_picked = picked[:] # 선택한 배열 저장 elif sum_cost == min_cost and picked < result_picked: result_picked = picked[:] return # 뽑은 재료의 인덱스를 picked에 담고 picked.append(k) recursion(k + 1) # 다음 재료 선택 # 재료 선택 안하는 경우엔 picked.pop() # 현재 재료를 빼고 recursion(k + 1) # 다음 재료 선택 recursion(0) # 출력 if min_cost == 987_654_321: print(-1) else: print(min_cost) res = [x + 1 for x in result_picked] print(*res) 19942 다이어트 문제입니다. 저는 항상 백트래킹 할 때 이렇게 매개변수를 그냥 간단히 하는 식으로 하는데, 강사님은 매개변수에다가 설정을 하시더라구요 강의보면서 직관적이기도 하고 되게 좋은 방법이라고 생각했는데, 이렇게 해도 상관없나요?

  • python
  • 코딩-테스트
  • 알고리즘
oilater 댓글 2 좋아요 1 조회수 253

12강 AnimalDto에 대해서 질문이 있습니다.

해결됨

자바 9부터 자바 21까지

12강 11:24 쯤 질문이 있습니다 sealed interface AnimalDto를 구현한 Dto 2개를 switch와 sealed를 사용해서 코드를 깔끔하게 할 수 있다는 걸 알게되었습니다. 실제 코드로 작성하면 of의 반환 타입은 인터페이스인 AnimalDto가 되는데 이때 DogDto와 CatDto의 필드를 조회할 수 있는 추상 메서드가 모두 있다는 전제로 말씀해주시는게 맞을까요?

  • java
티벳로보 댓글 1 좋아요 1 조회수 203

자바 파이썬 기출문제 변형 수업자료

해결됨

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

없나요 ㅠㅠ?

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

인기 태그

인프런 TOP Writers

주간 인기글