묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Kafka Cluster 질문
Kafka Cluster 강의 약 11분 38초 쯤에서 Broker 2(topic 1, partition 2)에 장애가 발생하면, 다른 정상 Broker에서 Leader를 재선출 한다고 하셨는데, 그렇다면 해당 그림의 경우 Broker 1의 topic 1의 Leader가 partition 1에서 partition 2로 바뀌는 것인가요? 기존에 정상적으로 있던 Broker 1의 topic 1의 partition 1은 Leader의 자격을 잃는 것인가요?다시 말씀드리면, 정상 Broker에서 Leader를 재선출하면, 기존 토픽에 있는 Leader Partition이 어떻게 되는지 궁금합니다..!
-
미해결김영한의 실전 자바 - 중급 2편
TreeSet 구현 그림 그려주세요 제발
이런 식으로 TreeSet 도 구현 해서 그려주세요 ㅜㅜ 이런 그림 없으면 이해 안가요 제발 ㅠㅠ 김영한 강사님 소환해서 그려주세요 제발 부탁드립니다 진짜 ㅠㅠ
-
미해결스프링 시큐리티 OAuth2
UserInfo 엔드포인트 요청 실습
scope 을 openId 하나만 설정하더라도 OidcUserService의 loadUser() 함수 안의 분기문에서 DefaultOAuth2UserService 를 계속 호출하길래 확인해보니 keycloak 에서 "scope": "openid profile email"형태로 리턴이 와서 항상 if 문에 걸리네요 keycloak 정책이 바뀐건지는 몰라도 내부적으로 저절로 추가하는 거 같습니다 버전도 강의와 동일한 19.0.1 버전입니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
HotArticle 관련 테스트 중에 질문드립니다.(verify, handle 관련)
안녕하세요. 강의 열심히 듣고 있습니다.Hot-article 관련 테스트 코드 중, verify 메소드에 대해 잘 몰라서 하는 질문일수도 있겠으나 헷갈리어 질문 드립니다.HotArticleServiceTest.java 코드를 작성중에@Test void handleEventIfScoreUpdatableEventTest() { // given Event event = mock(Event.class); given(event.getType()).willReturn(mock(EventType.class)); EventHandler eventHandler = mock(EventHandler.class); given(eventHandler.supports(event)).willReturn(true); given(eventHandlers.stream()).willReturn(Stream.of(eventHandler)); // when hotArticleService.handleEvent(event); // then verify(eventHandler, never()).handle(event); verify(hotArticleScoreUpdater).update(event, eventHandler); }위의 코드에서, verify(eventHanler, never()).handle(event); 로 검증하는 부분이 왜 never()가 되는걸까요?강의중에 eventHandler가 바로 불리지 않는다고 말씀하시긴 하셨는데, HotArticleService.java의 handleEvent() 메소드 안에서 hotArticleScoreUpdater.update(event, eventHandler) 를 호출하면 update()에서 전달한 eventHandler 의 handle()메소드를 결국에는 사용하게 되지 않나요?verify가 외부클래스인 HotArticleScoreUpdater의 메소드에서 사용하는거까지는 검지하지 못하기 때문일까요?
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
중간연산 sorted에 대해서 질문드립니다
중간 연산 강의를 듣던 중 궁금한 점이 생겨 질문드립니다!강의를 통해 Java의 스트림은 lazy하게 동작하며, 요소가 하나씩 흐르면서 중간 연산을 거쳐 최종 연산으로 전달된다고 배웠습니다.그런데 sorted는 정렬을 위해 모든 요소를 모아야 하므로, 다른 중간 연산들과 달리 lazy하게 하나씩 처리할 수는 없을 것 같습니다.이 경우 sorted는 전체 요소를 한 번에 처리하고 나서야 다음 연산으로 넘어가는 건가요?그렇다면 sorted는 중간 연산이지만 실제로는 최종 연산처럼 동작하는 게 아닌가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Arrays.stream 사용은 코딩테스트 평가에 영향을 미치나요?
안녕하세요 강사님, 프로그래머스로 문제를 풀던 중 Arrays.stream() 같은 문법에 대해 궁금한 점이 생겨 질문드립니다.전통적인 반복문 방식으로 문제를 해결하는 방법과 Arrays.stream()과 같은 고급 문법을 활용하는 방식은 채점 시 동일한 배점으로 평가되는지, 또는 코드의 간결성과 가독성을 고려해 차이가 발생할 수 있는지 궁금합니다.실전 코딩 테스트나 채점 기준에서 어떤 점을 더 중요하게 보시는지도 함께 여쭤보고 싶습니다. 감사합니다!
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
해결 방법?에 대한 고민
안녕하세요! 3주차 강의 중 3-9까지 수강하던 중 궁금한 점이 생겨 질문드립니다. 강의에서는 새로운 테이블을 만들고 배치를 적용하여 쿼리 실행 속도를 향상시키는 방법을 설명해주셨는데, 제가 듣기로 이직 준비를 하면서 "A안과 B안이 있었는데, 그 중 B안이 더 적합한 이유는 ~였다"는 식으로 여러 해결책을 비교하고 선택한 근거를 설명하는 것이 좋다는 조언을 자주 접했습니다. 그런데 이외에도 쿼리 성능을 튜닝하는 방법은 더 많을 거 같은데, 실무에서 그 방법들을 모두 비교한 뒤 선택하는 것이 현실적으로 쉽지 않을 것 같다는 생각이 들어서요.. 정리하자면 면접 자리에서 "왜 다른 방법은 고려하지 않았나요?"라고 질문이 들어올 수 있는데 이를 어떻게 준비해야 할지 궁금합니다.실무나 면접에서 성능 개선 경험을 어필할 때, 모든 방안을 다 시도해본 것처럼 설명해야 할까요?아니면, 제가 시도한 A안 중심으로 왜 그 방식이 효과적이었는지를 설명하고, 다른 방식도 있었다는 정도만 언급해도 괜찮을까요? 앞으로 성능 개선을 학습하고 경험을 쌓아갈 때 어떤 관점에서 문제를 접근하고 정리하면 좋을지도 함께 조언 주시면 감사하겠습니다.
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
깃허브 step11 브랜치
Slack 관련된거 같은데, 강의에는 나와있지 않네요 ! step11은 혼자 공부하면 되는걸까요 ?
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
method area는 이름이 class area가 아니고 왜 method aread인지 궁금합니다.
제 궁금증은 method area는 이름이 class area가 아니고 왜 method aread인가? 입니다.JVM specification저자 중 한명에게 이메일 보내봤는데I'm afraid I don't know the answer to your question. My involvement with Java ended in October 2006, and I have never looked back. I think these terms (Method Area, Class Area) were introduced after my time working on Java. 라는 답변을 받긴 했습니다.그래서 열심히 ai와 물어봤는데 자바에서 프로그램 실행은 메서드 호출을 통해서 이루어지기 때문이라고 추측하더라구요.저는 막연히 자바는 객체지향 언어니까 class가 중심이지라고 생각했는데..또 "실행" 관점에서 보면 진짜 method가 중심이겠더라구요.객체인스턴스 초기화도 결국 init()메서드인거구요.음.. 어떻게 생각하시는지? 궁금합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
OFFSET 기반 페이지네이션에서 인덱스를 활용한 성능 최적화 방식과 실제 테이블 접근 시점이 궁금합니다
안녕하세요 좋은 강의 감사드립니다~게시글 목록 조회시 select * from article where board_id = 1order by article_id desc limit 30 offset 1499970;1.여기 쿼리문에서 where 절이 먼저 실행되어 (board_id, article_id) 생성된 secondary Index 에서 board_id = 1 인 데이터들을 찾아서2.어차피 article_id 도 정렬이 되어 있으니 이 부분에서 offset 을 순차적으로 skip 하면서 결국에 마지막에3.select * 문을 수행하는게 아닌가요?2번 과정에서 order by article_id 를 위해 clusterd Index 에서 데이터를 조회하는 과정이 추가되나요? > 게시글 목록 API - 페이지 번호 기반 - N번 페이지, M개 게시글 - 설계 > 20:07마지막에 최종적으로 select * 문을 조회할때만 clusterd Index 에서 데이터를 조회하는거 아닌가요? 왜냐하면 이미 secondary Index 에서 article_id 가 정렬되어 있기 때문에 그냥 skip 하고 마지막에만 clusterd Index 에서 데이터를 조회할 것 같습니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
테스트를 위한 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 테스트를 위한 코드로 보이는 fun fixture 라는 생성자 만드는 코드를 엔티티 안에 생성해주셨는데테스트가 아니면 따로 사용되지 않을 것 같은 코드를 엔티티 단 안에 작성해도 괜찮나요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
비교연산자와 반복문+조건문 문제 풀이 (v2) 영상버퍼링
비교이영상만 버퍼링 재생안되서 퀴즈를 못풀고 있어요연산자와 반복문+조건문 문제 풀이 (v2) 이영상만 버퍼링 제 풀이 (v이 (v2)
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
mysql 데드락 발생
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 재밌게 잘 듣고 있는 취준생입니다!테스트 실행 도중에 데드락이 발생하여 이에 관해 여쭤보고자 합니다. 구체적으로인 상황은article_view_count 테이블에 존재하지 않는 레코드를 삽입AND어플리케이션 실행 후, 첫 테스트 코드 실행 을 만족하는 상황에서 DeadLock 에러가 발생합니다. 아마 Lock 획득실패로 인한 에러가 표출되는것으로 보이며 에러 로그는 하단에 첨부했습니다. 제가 생각한 원인은 다음과 같습니다.UPDATE문임에 따라 해당 레코드에 X-Lock이 걸리며, 100개의 요청마다 UPDATE쿼리가 날라가지만, 첫 INSERT 요청의 트랜잭션이 완료되지 않아 이후의 트랜잭션이 잠금 대기롤백 첫 INSERT 요청이 오래 걸리는 이유를 알고 싶습니다.양질의 강의 제공해주셔서 감사합니다!2025-05-01T19:46:27.647+09:00 WARN 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1213, SQLState: 400012025-05-01T19:46:27.647+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : Deadlock found when trying to get lock; try restarting transactionHibernate: update article_view_count set view_count = ? where article_id = ? and view_count < ?2025-05-01T19:46:27.653+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.CannotAcquireLockException: could not execute statement [Deadlock found when trying to get lock; try restarting transaction] [insert into article_view_count (view_count,article_id) values (?,?)]; SQL [insert into article_view_count (view_count,article_id) values (?,?)]] with root causecom.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
default의 역할
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 switch 문을 사용할 때 default를 사용하는데 이 부분을 사용하는 이유가 궁금합니다.아마도 int coupon 변수를 선언하고 초기화를 안 하는데 초기화를 위한 목적으로 사용한 걸까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
페이징 방식의 readAll에서 count 쿼리 변경?
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[댓글 수 구현] 강의의 마지막에서 페이징 방식 readAll() 메소드에서 commentRepository.count(~)를이번에 ArticleCommentCount를 활용하여 구현한 count(articleid)로 바꿔도 된다고 말씀하셨는데, 둘이 엄밀히 다르지 않나요?? 기존에 구현한 commentRepository.count(~)는 게시글별 댓글수를 조회하지만 limit가 있고,이번에 구현한 count(articleId)를 limit 없이 그냥 게시글에 대한 댓글 수를 모두 조회하니 의미가 다르지 않나 싶어서 질문드려봅니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API 이용할때 @Transactional
API를 이용할때 Service를 거치지 않고 Repository를 사용하여 DB에 접근하게되는데 @Transactional를 Repository마다 붙이지 않는 이유를 알 수 있을까요? 어디서 Transactional을 걸어주는지 모르겠습니다.
-
미해결김영한의 실전 자바 - 중급 1편
중첩 클래스 내 private 멤버도 부모 클래스에서 접근가능합니다.
중첩 클래스와 외부 클래스는 private 변수에 접근할 수 있도록 명시되어있다고합니다.단 완전한 외부 클래스에서 중첩클래스를 사용하면 접근이 당연히 안됩니다.
-
미해결김영한의 실전 자바 - 기본편
접근제이자 문제2번 ShoppingCart 클래스 내 calculateTotalPrice 메서드 중 Item 인스턴스 생성 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 수강 중 궁금한 내용이 있어 질문드립니다. 강사님 코드를 보면private int calculateTotalPrice() { int totalPrice = 0; for (int i = 0; i < itemCount; i++) { Item item = items[i]; totalPrice += item.getTotalPrice(); } return totalPrice; }처럼 for 문 안에서 Item item = items[i];로 새로운 인스턴스를 만드셨는데 문제 풀이를 보기 전 아래와 같이 인스턴스 생성 없이 풀었더니 똑같은 결과가 나왔습니다.private int calculateTotalPrice(){ int totalPrice = 0; for (int i = 0; i < count; i++){ totalPrice += items[i].totalPrice(); } return totalPrice; } 혹시 강사님께서 새로운 생성하신 이유가 따로 있으실까요?
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
실습 권한 부탁드립니다..
들어가지를 못하구 있어요 ..ㅠ
-
미해결김영한의 실전 자바 - 중급 1편
퀴즈 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]퀴즈 기능은 데스크탑환경에서만 이용 가능해요.다른 수업으로 이동해주세요.라는 문구와 함께 퀴즈가 안보입니다 (데스크탑으로 강의 이용중인 상태입니다)