묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
default.tsx를 넣는대신 modal의 타입을 ?로 하면안되나요?
modal이 없는 상황의 오류를 해결하기위해 제로초님이 default.tsx라는 파일을 소개해줬는데요, 그냥 layout.tsx에서 애초에 Probs를 정의할때 type Probs= modal?:reactNode로 하면 안될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 질문
1) 수치형 변수만 활용2) 수치형 변수 & 범주형 변수 모두 활용 (라벨인코딩, 원핫인코딩) 두 가지 방식을 알려주셨는데, 질문이 있습니다.각 방식을 사용하고 평가를 해보았을 때, 1)의 방식으로 했을 때 모델의 성능이 더 좋아지는 것을 확인하였다고 한다면, 실제 시험 시 모델 성능이 더 좋은 1)의 방식으로 제출해야 하는 걸까요, 아니면 보다 심화 버전인 2)의 방식으로 제출해야 하는 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출 유형(작업형2)
4회 기출 유형(작업형2)까지 수강하였을 때, 제가 이해한 내용은 다음과 같습니다. <모델의 성능을 평가하는 방법>데이터 분리 (X_tr, X_val, y_tr, y_val) → 모델 학습 & 하이퍼 파라미터 튜닝 → 평가 (f1 score, roc_auc_score 등) 하이퍼 파라미터 튜닝의 값을 조절해가며 평가 점수 확인데이터 분리 없이, 모델 학습 & 하이퍼 파라미터 튜닝 → 교차검증 (cross_val_score) 이때 질문드립니다.제가 이해한 대로, 모델의 성능을 평가하는 방법이 위의 2가지가 있는게 맞을까요?강사님이 영상에서 교차검증을 사용한 이유는 문제에서 평가 방식을 '평가: Macro f1-score'라고 제시해주었기 때문인가요?혹시 실제 시험 상황에서 평가 방식을 제시해주지 않는다면, 위의 2가지 방법 중 어떤 것을 사용해도 상관이 없는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
dto private와 private final의 차이
문제 3번 풀던 중 생긴 오류를 잡으면서 생긴 의문입니다. DTO에 List를 만들어서 JSON 배열을 POST형식의 body로 받는 문제였습니다.아래는 변수를 final로 선언했을 때 생기는 오류입니다.ERROR 8512 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error 선언하는 방식에 문제가 없다고 여겨 수정해보다가 final과 constructor를 지우고 다시 요청을 날려보니 정상적인 값의 출력을 확인했습니다.이 final과 constructor 이 무슨 역할을 하고 있는지, 왜 final로 선언되었을 때는 오류가 났는지, 언제 사용되어야 하는지 등 검색을 해보지만 잘 이해가 되지 않아서 질문 남깁니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
인스턴스 섹션이 보이지 않습니다.
create instance swap property를 적용하려는데, 인스턴스 섹션이 안보입니다. 어디서 찾을 수 있나요? 오른쪽 바에는 보이지 않습니다. 회사 일 관계로 빠른 답변이 어려울 수 있으며, 최대 3일 이내에 답변드리도록 하겠습니다. 이해를 돕기 위해서 스크린샷 이미지, 피그마 파일 링크를 반드시 첨부해주세요. 마지막으로 먼저 유사한 질문이 있는지 한번 찾아보시는 걸 권장 드립니다. 인프런 서비스 운영 관련해서는 1:1 문의하기로 인프런 쪽으로 연락 주시기 바랍니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
데이터 분석, 데이터 과학 로드맵 질문
질문에 앞서 먼저 좋은 강의를 제작해주셔서 감사합니다. :)여러 강의를 들어봤는데 해당 수업이 가장 이해하기 좋은 예제와 설명을 해주셔서 공부하는데 너무 큰 도움이 됐습니다.ㅡㅡㅡㅡㅡㅡㅡ질문내용ㅡㅡㅡ"데이터 분석, 데이터 과학 전과정을 쉽게! 단계별로! 꼼꼼하게 익히기" 로드맵을 통해 "파이썬입문과 크롤링기초 부트캠프를 수료한 학생입니다.다름 아니라 로드맵 코스 중 "처음하는 SQL과 데이터 베이스 부트캠프" 와 처음하는 MongoDB와 No SQL 강의가 있는데MongoDB 강의도 필수적으로 들어야 후에 있는 커리큘럼 강의를 이해할 수 있는지 궁금합니다."처음하는 SQL과 데이터베이스 부트캠프" 강의 수료 후, 바로 "처음하는 파이썬 분석(pandas) 강의와 이후 강의를 들어도 강의를 이해하는데 문제가 없는 지 질문드립니다.
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 메서드
영한님 좋은 강의 올려주셔서 감사합니다.제가 문제와 풀이 강의를 들으면서 든 의문이 있어서 커뮤니티 글을 봤는데 저와 비슷한 질문을 하신 분이 계시더라고요.근데 그분의 코드를 보면서 질문이 생겼습니다. static <T extends Shuttle> void printV1(T shuttle)static <T extends BioUnit> void printV1_1(Shuttle<T> shuttle) 위 두 코드의 차이가 뭔가요?제가 생각하기엔 첫번째 코드의 T는 Shuttle<Marine> 이고 두번째 코드의 T는 Marine인데 맞는건가요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
낙관적 락 무한루프 질문
강사님의 강의를 보며 현재 제 프로젝트에 낙관적 락을 적용시켜 보았습니다.구현하고자 하는 서비스는 쿠폰 발급 서비스이며, DB 구조는user 1 : N user_coupon N : 1 coupon 입니다. @Transactional public void issueCoupon(CouponIssueParam param, User user) { // 쿠폰 조회 Coupon coupon = getCoupon(param.getCouponId()); // 쿠폰 발급 UserCoupon userCoupon = UserCoupon.CreateUserCoupon(coupon, user); userCouponQueryService.saveUserCoupon(userCoupon); }public static UserCoupon CreateUserCoupon(Coupon coupon, User user) { // 쿠폰 검증 coupon.validateCoupon(); // 재고 감소 coupon.decreaseQuantity(); return UserCoupon.builder() .coupon(coupon) .user(user) .build(); }위 코드와 같이 유저가 특정 쿠폰 Id 를 통해 쿠폰 발급 요청을 하고, 중간 테이블에 관계가 매핑됨으로써 쿠폰 발급이 이루어집니다. public void validateCoupon() { if(this.stockStatus.equals(StockStatus.OUT_OF_STOCK)) throw new IllegalArgumentException("쿠폰이 매진되었습니다."); if(this.expiredAt.isBefore(LocalDateTime.now())) throw new IllegalArgumentException("쿠폰이 만료되었습니다."); }이때 user_coupon 생성 전 쿠폰의 매진 및 만료 상태에 따라 예외를 던지는 검증 메서드가 존재합니다. public void decreaseQuantity() { this.remainQuantity = this.remainQuantity - 1; if(this.remainQuantity <= 0){ this.stockStatus = StockStatus.OUT_OF_STOCK; } }추가로 쿠폰 내부에 재고가 감소하는 메서드가 존재하며 0에 다다를 경우 상태값을 변경해줍니다. 이때 동시성 이슈가 발생하는 이유는 user_coupon 을 insert 하면서, 부모 테이블인 coupon 의 재고를 update 하는 과정에서 발생하는 것으로 파악했습니다. 이에 쿠폰 발급 초기에 coupon 을 조회할 때 @Lock(LockModeType.OPTIMISTIC) @Query("select c from Coupon c where c.id = :couponId and c.isDeleted = false") Optional<Coupon> findOneCouponByCouponId(@Param("couponId") Long couponId);이처럼 낙관적 락 어노테이션을 달아주었으며 @Component @RequiredArgsConstructor public class OptimisticLockFacade { private final CouponService couponService; public void issueCoupon(CouponIssueParam param, User user) throws InterruptedException { while (true) { try { couponService.issueCoupon(param, user); break; } catch (Exception e) { Thread.sleep(50); // 재시도 전 잠시 대기 } } } }위와 같이 퍼사드 클래스를 생성하였습니다. @Test @DisplayName("쿠폰 여러 명 발급") void 쿠폰_여러_명_발급() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { final int threadNumber = i + 1; int key = i; executorService.submit(() -> { try { optimisticLockFacade.issueCoupon(param, users.get(key)); System.out.println("Thread " + threadNumber + " - 성공"); } catch (PessimisticLockingFailureException e) { System.out.println("Thread " + threadNumber + " - 락 충돌 감지"); } catch (Exception e) { System.out.println("Thread " + threadNumber + " - " + e.getMessage()); } finally { latch.countDown(); } }); } latch.await(); executorService.shutdown(); Long count = userCouponRepository.countByCouponId(param.getCouponId()); assertThat(count).isEqualTo(100); } 쿠폰의 재고가 100개며, 1,000 명의 유저가 32개의 스레드 환경에서 쿠폰 발급을 요청할 때 예상되는 발급 쿠폰 수는 100개가 되어야 합니다. 이렇게 낙관적 락을 적용하여 테스트를 수행하니 무한 루프에 빠지게 되었습니다.무한루프로 인해 테스트가 종료되지 않자, 강제적으로 정지 시킨 후 DB 를 확인했는데 쿠폰의 수는 예상한 대로 100개가 생성된 것을 확인할 수 있었습니다. 그런데 왜 메서드가 종료되지 않고 무한루프가 돌아간 것인지 이유를 모르겠습니다. public void issueCoupon(CouponIssueParam param, User user) throws InterruptedException { while (true) { try { couponService.issueCoupon(param, user); break; } catch (IllegalArgumentException e) { System.out.println("쿠폰 발급 실패: " + e.getMessage()); break; } catch (Exception e) { Thread.sleep(50); // 재시도 전 잠시 대기 } } } 혹시나 하여, 쿠폰 발급 로직에 쿠폰이 매진이 될 경우 예외를 던지는 검증 메서드가 존재했고 이에 퍼사드 클래스에서 해당 예외를 잡아내면 루프를 빠져나오게 설정했습니다. 이렇게 구현하니 테스트는 성공적으로 통과하였습니다. 현재 제가 구현한 서비스 구성에서는 이런식으로 접근하는 게 맞는 걸까요 ?
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
문제풀어봤어요
안녕하세요 🙂 열심히 적어봤습니다. 적고 다른 사람들 제출내용 봐야겠네요1. 화면구성성공여부: CTR, CVR 설정 후 넓은 영역, 가운데, 위 등 중요 영역일수록 높은 수치가 나와야 함.검색기능 만족평가: 검색 결과에서 스크롤을 적게 한 뒤 전환율 확인(검색결과 상위 클릭, 재검색 낮도록)필터기능 평가: 필터 선택 후 스크롤 적게 움직이고 CTR, CVR 확인(검색 후 클릭/스크롤양)배달앱지표: 전환까지 걸리는 시간 / 소비자는 배고픈게 문제고 빨리 문제를 해결하기 위해 / 맞춤,추천기능, 빠른배달업체 제안, 전환단계 축소, 카테고리로 빠른 진입커머스추천알고리즘성능확인지표: 구매전환율 / 평소 관심있어하던 제품을 적절한 가격으로 추천하여 구매하게 만드는 성능파악자주사용하는서비스의 지표:인스타: 광고클릭률 / 주요수입원임 / 접속 빈도, 체류시간유튜브(프리미엄의 경우): 구독 지속율 / 주요수입원이므로 / 체류시간, 첫 화면에서 영상 선택율네이버뉴스: 기사길이에 따른 스크롤양 / 뉴스에 얼마나 집중하는지 / 다른 뉴스 클릭률, 댓글작성이나 감정표현가입퍼널 온보딩 효과: 가입전환율 상승, 온보딩중 이탈율, 가입 후 사용비율, 제품사용관련 문의율
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션3-2 문제 6번에서
섹션3-2 문제 6번에서 아래와 같이 풀면 왜 정답이 달라지는지 알 수 있을까요??? 어느 부분을 수정하면 될까요?? import pandas as pd df = pd.read_csv("members.csv") # 제거 전 views 표준편차 std_before = df["views"].std() df["age"] = df["age"] == round(df["age"], 0) df["age"] = df["age"] > 0 # 제거 후 views 표준편차 std_after = df["views"].std() round(std_before + std_after, 2)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 Question
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.강사님께서 보여주신 코드대로 작성하였는데, System.out.println("총 비용 : " + totalCost);이 문구를 println 으로 넣으면 제대로 동작하지만,print로 코드를 고치면 강사님께서 주신 예제 코드를 넣어보면 총 비용이 110000이 아닌 1100001이 나옵니다. 이 점에 대해서 둘의 차이는 단순한 줄 넘기기밖에 없는 것으로 아는데, 어떠한 것에서 이러한 결과가 나온 것인지 궁금합니다..!
-
미해결스프링 핵심 원리 - 기본편
영상이 안 보입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제목 그대로 인데요mac에서 강의를 듣던중에 다음강의로 넘어가니 그이후 강의부터는 영상이 안 보입니다모바일로는 보이는데 pc로 보려면 어떻게 해야할까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
섹션 5의 세션 고정 보호 강의 질문
섹션 5의 세션 고정 보호 강의 실습 부분을 보면, 루트경로(/) 로 요청했을때도 응답에 세션아이디가 저장된 쿠기가 날라왔습니다.즉, 세션 생성 정책이 디폴트(ifRequired ) 인데 서버에 세션이 생성된 것인데, 혹시 세션이 어느부분에서 생성되었는지 알수 있을까요..?? ++ 추가)) 섹션 5의 SessionManagementFilter / ConcurrentSessionFilter - 2 강의를 보니 .maximumSessions() 설정을 해야만 세션관련 작업을 하는 필터들이 정상적으로 등록된다고 설명돼있는데 위의 실습은 이 설정을 하지 않아서 필터들이 등록되지 않은 걸까요..??근데 세션 고정 보호 적용은 어떻게 적용된건지 모르겠네요..ㅠㅠ
-
해결됨Verilog FPGA Program 1 (HIL-A35T)
SPI MASTER 모듈에 관한 질문입니다.
현재 SPI MASTER 부분을 공부하고 있습니다. 제가 인터넷에 찾아보며 공부한 바로는 SPI 통신은 동기적 통신을 사용한다고 하는데, 해당 코드 전체적으로 always @(posedge clock or negedge reset)을 사용하는 것을 보면 이는 비동기 방식을 사용하여서 이에 대해 궁금해서 여쭤보고 싶습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
basic.html 내용을 어디서 복사하는 것인지 알 수 있을까요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]basic.html 내용을 어디서 복사하는 것인지 알 수 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
createQuery에서 i와 m의 차이점이 뭔가요? (select i from i / select m from m)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요강의에 나오는return em.createQuery("select i from Item i", Item.class)저 부분이 JPQL?을 만드는 쿼리 문장이라고 기억합니다.근데 저 부분이 예전에는 "select m from m"이라는 식으로 진행 되었던 것에 비해, 이번 강의에서는 "select i from i"식으로 진행이 되길래 이 i와 m은 무엇의 차이인지 궁금합니다.그리고 i와 m이 각각 무엇을 위해 쓰이는지도 궁금합니다긴 글 읽어주셔서 감사합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계와 연관관계의 주인1 - 기본 7분 내용 문의
em.flush();em.close();까지 진행하고 디비를 조회하면 데이터가 들어간 것이 확인이 됩니다. 그러나 Member findMember = em.find(Member.class, member.getId()); 까지 코드를 실행시키면 db에 값이 들어가지 않아서 결과적으로 for(Member m : Members) { System.out.println("m = " + m.getUsername();} 프린트문이 찍히지 않습니다. 해당 문제 관련하여 코드를 첨부합니다. 좋은 답변 부탁드리겠습니다 ㅠㅠ https://drive.google.com/file/d/1Y6wHODqbUjAcB035pgx0sZabI1n3rkqg/view?usp=drive_link
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 public void, public Item, public Member ... 등등 고민입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!강의 내용에서 메소드를 만들 때 public void + 메소드명public Member + 메소드명public Item + 메소드명이런식으로 붙는데 왜 public void로 통일 되지 않는지 궁금합니다.★1. 왜 public Member 혹은 Item이 붙는지★2. 그 붙은 Member와 Item은 어떤 역할을 하는지★3. 제가 이 부분에 대해 왜 무지한지(자바 혹은 스프링 중 어떤 부분이 제가 부족한 것 인지) --위 부분들에 대하여 궁금합니다!답변 해주시면 정말 감사하겠습니다!긴 글 읽어주셔서 감사합니다.
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
npx create-reacp-app src폴더 누락
npx create-react-app을 통하여 react를 설치하려 했는데 node_modules와 pakage.json만 생성되고 public 폴더와 src 폴더는 생성이 되지 않습니다. 이미지에 나온 문구대로 입력도 해보고 nodejs를 완전히 삭제 후 재 설치도 해보았지만 폴더 누락이 계속 일어나고 있습니다. 왜 이런 현상이 나타나는 건가요?
-
해결됨Flutter 앱 개발 기초
수강 기간이 존재하는데...
제가 이거 수강기간이 존재하는 것을 모르고 구매하고지금 아직 듣지 못한 상태인데 2개월이 남았더라구요. 수강기간이 끝나면 이 강좌는 닫히고 들으려면 재구매를 해야되는건가요??제 다른 구매 강좌들은 다 수강기간이 무제한이어서 제대로 안보고 구매했네요