묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결카프카 완벽 가이드 - 코어편
Confluent Kafka 라이센스
Confluent Kafka의 커뮤니티 버전은아파치 카프카처럼 회사에서도 사용해도 문제없나요?
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
학습시 epoch 횟수
모델 트레이닝 할때 epoch 을 최소 몇 정도로 넣어주고 학습을 시켜야 괜찮은 모델이 나오나요? 추가로 loss 는 최소 어느정도 까지 떨어져야 괜찮을 모델이 나올까요? 물론 모델마다 차이가 있겠지만 일반적인 지표가 어느정도 되는지 궁금합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
리소스를 관리하는데 shared_ptr를 써야되는가 RawPointer를 써야되는가 weak_ptr를 써야되는가?
한 GameObject 내부에서 선언되는 Parent, Children와 한 MeshRenderer 내부에서 선언되는 Mesh, Material 등등과 같은 리소스들은 각각 Scene과 ResourceManager내부에서 관리(생성, 파괴)되기 때문에 이런 관리해주는 클래스 에서만 shared_ptr로 생성해주고 다른 클래스 에서는 weak_ptr로 전해받았었습니다.그런데 문뜩 든 생각이 결국 다른 클래스에서 이런 객체들을 사용하기 위해 프레임마다 weak_ptr::lock을 사용하여 shared_ptr로 만들어서 사용할텐데 이러면 비용 부담이 너무 많이되어 배보다 배꼽이 큰 상황이 발생하는 것 같다는 생각이 들었고 이럴바엔 그냥 왠만한 클래스에선 리소스를 shared_ptr로 선언하고 사용한 후 관리해주는 클래스(Scene, ResourceManager)들에서 삭제될때 여기서도 동시에 shared_ptr를 지워버리는식으로 관리를 해주는게 더 좋을 것 같다고 생각을했는데 과연 옳은 생각인 건가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다..!
안녕하세요.생각보다 자바 공부가 길어져서 이제야 AWS를 공부하게 되었는데 수강 기간이 거의 끝나가네요.송구스럽지만 수강 기간 연장을 요청 드립니다.감사합니다.
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
익스텐션 설치 질문이요
시험준비자는 익스텐션 auto rename taghtml to css autocompletiomhtmltagwrapbracket pair colorizer 2indent-rainbowmaterial themehtml css supportbeautifycolor pickerliveserver 전부 설치하면 안되나요? 그리고 color picker 없으면 색깔이 안뜨는데 그러면 색이름만 적나요?
-
해결됨Flutter 중급 3편 - 의존성 주입 가이드
remote data source impl
안녕하세요. 강의 잘 보고 있습니다. remote data source impl 관련해서 질문이 있습니다. @prod @Singleton(as: CommunityRemoteDataSource) class CommunityRemoteDataSourceApiImpl implements CommunityRemoteDataSource { final _dio = Session().dio; @override Future<CommunityResponseDTO> fetchCommunities() async { Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); return responseDto; } } CommunityRemoteDataSource 의 구현체 CommunityRemoteDataSourceApiImpl 를 만들어서 사용중입니다.ApiImpl 은 실제 서버와 통신중 이며,http 라이브러리 Dio를 사용하고 있습니다. 여기서 테스트를 위해 DioMock 객체를 만들어서 사용하고자 합니다. 원래 CommunityRemoteDataSourceApiImpl 에 final _dio = Session().dio; 로 싱글턴으로 dio를 내부에 객체를 생성하고 있는데 이거를 주입받는 식으로 변경하여 테스트 시만 CommunityRemoteDataSourceApiImpl(DioMock()) 을 넣는 것인지, 아니면 CommunityRemoteDataSourceApiMockImpl 를 새로 또 만드는지 궁금합니다.만약 CommunityRemoteDataSourceApiImpl(DioMock()) 로 주입을 받는 식이라면Response<dynamic> response = await _dio.get('get/community/path'); final responseDto = CommunityResponseDTO.fromJson(response.data); 해당 코드들이 Dio() 일 때, DioMock() 일 때 달라야 할 것 같은데 어떻게 처리하는 것이 맞는지 궁금합니다. 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. resolverException이 빈 ModelAndView객체를 반환하는 이유가 이해가 가지 않습니다. 왜 빈 객체를 반환하는 것인가요? 만약 객체를 반환하지 않으면 어떻게 되는 것인지 궁금합니다. 추가로,package hello.exception.resolver; import com.fasterxml.jackson.databind.ObjectMapper; import hello.exception.exception.UserException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; import java.util.HashMap; import java.util.Map; @Slf4j public class UserHandlerExceptionResolver implements HandlerExceptionResolver { private final ObjectMapper objectMapper=new ObjectMapper(); @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof UserException){ log.info("UserException resolver to 400"); String acceptHeader = request.getHeader("aceept"); //헤더를 꺼냄 response.setStatus(HttpServletResponse.SC_BAD_REQUEST); // 상태코드 400으로 변경 if("application/json".equals(acceptHeader)){ log.info("Start to change json"); Map<String,Object> errorResult=new HashMap<>(); errorResult.put("ex",ex.getClass()); errorResult.put("message",ex.getMessage()); String result = objectMapper.writeValueAsString(errorResult); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().write(result); return new ModelAndView(); } else{ log.info("Start to text"); return new ModelAndView("error/500"); } } }catch(IOException e){ log.error("resolver ex",e); } return null; } }이렇게 작성하였는데 결과가 자꾸 text.html로 나옵니다. 로그를 찍어보니 if문이 안나오고 else문으로 나오게 됩니다. 포스트맨 출력 결과는 이렇습니다원인을 알 수 있을까요?
-
미해결Next + React Query로 SNS 서비스 만들기
MSW 오류가 발생해서 도움 부탁드립니다
서버 컴포넌트에서 Server Actions 사용하기 강의까지 그대로 따라하고 오류때문에 다시 반복해봐도 오류가 발생해서 코드 남깁니다.<SignupModal.tsx>import style from "./signup.module.css"; import { redirect, useRouter } from "next/navigation"; import { ChangeEventHandler, FormEventHandler, useState } from "react"; import BackButton from "./BackButton"; export default function SignupModal() { const submit = async (formData: FormData) => { "use server"; if (!formData.get("id")) { return { message: "no_id" }; } if (!formData.get("name")) { return { message: "no_name" }; } if (!formData.get("password")) { return { message: "no_password" }; } if (!formData.get("image")) { return { message: "no_image" }; } let shouldRedirect = false; try { const response = await fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users`, { method: "post", body: formData, credentials: "include", //쿠키를 사용하여 로그인 여부를 파악하기 위함 } ); console.log(response.status); // if (response.status === 403) { // return { message: "user_exists" }; // } // 이미 유저가 존재할때 403 보내주기로 약속 console.log(await response.json()); shouldRedirect = true; } catch (err) { console.log(err); } if (shouldRedirect) { redirect("/home"); //try/catch문 안에 있으면 안됨. } }; return ( <> <div className={style.modalBackground}> <div className={style.modal}> <div className={style.modalHeader}> <BackButton /> <div>계정을 생성하세요.</div> </div> <form action={submit}> <div className={style.modalBody}> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="id"> 아이디 </label> <input id="id" name="id" className={style.input} type="text" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="name"> 닉네임 </label> <input id="name" name="name" className={style.input} type="text" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="password"> 비밀번호 </label> <input id="password" name="password" className={style.input} type="password" placeholder="" required /> </div> <div className={style.inputDiv}> <label className={style.inputLabel} htmlFor="image"> 프로필 </label> <input id="image" name="image" className={style.input} type="file" accept="image/*" required /> </div> </div> <div className={style.modalFooter}> <button type="submit" className={style.actionButton}> 가입하기 </button> </div> </form> </div> </div> </> ); } ><handlers.ts>http.post("/api/users", async ({ request }) => { console.log("회원가입"); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403, // }) return HttpResponse.text(JSON.stringify("ok"), { headers: { "Set-Cookie": "connect.sid=msw-cookie;HttpOnly;Path=/", }, }); }),>이런식으로 강의와 똑같이 작성했고, 질문글중 회원가입 코드에 Path부분 빼라고 해보셔서 해봤는데 안됩니다.실행하고, 가입하기 버튼을 눌렀을때 redirect가 안되고, 헤더 200, 페이로드는 뜨지만 미리보기, 응답이 뜨지 않습니다.그리고 에러코드에 TypeError: fetch failed<cause: Error: getaddrinfo ENOTFOUND loalhost at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) at GetAddrInfoReqWrap.callbackTrampoline (node:internal/async_hooks:130:17) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'loalhost' }}>이런 에러가 떠서 검색도 해봤지만 해결이 안되서 질문 드립니다.
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용1 공부하다 문의요
중간쯤에 나오는 문제인데요(1번)data1=int(input())if 100>=data1>=81: print("A")elif 80>=data1>=61: print("B")else: print("C")(2번)data1=int(input())if data1<=100 and data1 >=81: print("A")elif data1<=80 and data1>=61: print("B")else: print("C") 전 위의 1번 방식으로 풀었는데 강사님은 2번방식으로 하더라고요위의 2개가 차이가 있을까요??? 답은 동일하게 나오는데요~
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이런 방식으로 로또 번호를 생성하는 것도 랜덤이라고 볼 수 있을까요?
void ChooseLotto(int numbers[], int count) { // 랜덤으로 1~45 사이의 숫자 6개.... 중복 없이 int lotto[45]; for (int i = 0; i < 45; i++) { lotto[i] = i + 1; } // 공을 섞는 과정 for (int i = 0; i < 1000; i++) { int randNum1 = rand() % 45; int randNum2 = rand() % 45; Swap(&lotto[randNum1], &lotto[randNum2]); } for (int i = 0; i < count; i++) { numbers[i] = lotto[i]; } }안녕하세요, 강의 잘 보고 있습니다. 저는 실습 풀이를 이렇게 했는데요.로또 추첨을 할 때 커다란 통에 공을 집어넣고 6개의 번호가 쓰인 공을 꺼낸다고 하면, 한 번 꺼낸 공은 다시 추첨기에서 나오지 않아야 한다고 생각했습니다.따라서 1~45의 값이 들어있는 배열을 선언하고, 해당 배열을 rand()와 swap()을 이용해 계속 반복하여 섞어주고, 마지막에 0번~5번 인덱스까지 6개의 수를 numbers 배열에 담아주었습니다.이런 방식으로 로또 번호를 생성하는 것도 랜덤으로 번호를 생성한 것이라고 볼 수 있을까요?
-
해결됨Flutter로 SNS 앱 만들기
댓글 입력 후 FeedCardWidget의 FeedCcount 업데이트 관련
안녕하세요 댓글 입력 후 메인 화면 코멘트카운트가 업데이트 되지 않고 있습니다. CommentScreen에 callback 멤버 추가해서 하면 될것 같은데. 잘안되네요.. 도움 부탁드리겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
eTag 캐시 제어
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]last-modified를 테스트 해봤을 때 캐시가 만료되어서 다시 요청을 하면은 304 상태코드를 알아서 응답했는데eTag를 사용했을 때는 알아서 304를 응답하지 않고 200을 응답하더라구요. 그래서 직접 비교를 하는데 eTag 설명에서 캐시 제어 로직을 서버에서 완전히 관리한다 라는 말이 이렇게 개발자가 직접 관리 한다는 뜻인가요? 아니면 원래 알아서 304를 반환하는데 뭔가를 잘못한 것인가요?
-
미해결모두의 한국어 텍스트 분석과 자연어처리 with 파이썬
kkma() 실행시 kernel dead 현상이 발생합니다.
선생님께서 알려주신대로.java > jpype > konlpy 설치를 마치고그 다음 진도를 진행하려 하는데kkma = Kkma()를 실행하는 순간 kernel dead 메시지가 나면서더이상 실행이 안됩니다. googling을 통해서 여러 해법을찾아 보았지만, 해결이 안되고 있는데요... 도움 부탁드립니다.jupyter_notebook의 config 파일 생성 후... buffer_size 도10000000000 으로 상향 조정하는 등의 방법을 써도 해결되지가 않습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
yolonas augmentation
안녕하세요.배운 내용을 기반으로 yolonas를 학습해보는 과정에서 질문이 있습니다.nas에서 기본적으로 사용하고 있는 transforms 대신에 albumentations 라이브러리를 사용하고 싶은데 계속해서 image 가 없다는 에러가 뜹니다.코드를 어떻게 수정해야하는지 궁금합니다.############## 기존 학습 코드 from super_gradients.training import Trainer from super_gradients.training import dataloaders from super_gradients.training.dataloaders.dataloaders import ( coco_detection_yolo_format_train, coco_detection_yolo_format_val ) from super_gradients.training import models from super_gradients.training.losses import PPYoloELoss from super_gradients.training.metrics import ( DetectionMetrics_050, DetectionMetrics_050_095 ) from super_gradients.training.models.detection_models.pp_yolo_e import PPYoloEPostPredictionCallback from tqdm.auto import tqdm import os import requests import zipfile import cv2 import matplotlib.pyplot as plt import glob import numpy as np import random ROOT_DIR = '/home/바탕화면/test_data' train_imgs_dir = 'train/images' train_labels_dir = 'train/labels' val_imgs_dir = 'val/images' val_labels_dir = 'val/labels' classes = ['fallen', 'normal'] dataset_params = { 'data_dir':ROOT_DIR, 'train_images_dir':train_imgs_dir, 'train_labels_dir':train_labels_dir, 'val_images_dir':val_imgs_dir, 'val_labels_dir':val_labels_dir, 'classes':classes } EPOCHS = 50 BATCH_SIZE = 16 WORKERS = 8 train_data = coco_detection_yolo_format_train( dataset_params={ 'data_dir': dataset_params['data_dir'], 'images_dir': dataset_params['train_images_dir'], 'labels_dir': dataset_params['train_labels_dir'], 'classes': dataset_params['classes'] }, dataloader_params={ 'batch_size':BATCH_SIZE, 'num_workers':WORKERS } ) val_data = coco_detection_yolo_format_val( dataset_params={ 'data_dir': dataset_params['data_dir'], 'images_dir': dataset_params['val_images_dir'], 'labels_dir': dataset_params['val_labels_dir'], 'classes': dataset_params['classes'] }, dataloader_params={ 'batch_size':BATCH_SIZE, 'num_workers':WORKERS } ) train_params = { 'silent_mode': False, "average_best_models":True, "warmup_mode": "linear_epoch_step", "warmup_initial_lr": 1e-6, "lr_warmup_epochs": 3, "initial_lr": 5e-4, "lr_mode": "cosine", "cosine_final_lr_ratio": 0.1, "optimizer": "Adam", "optimizer_params": {"weight_decay": 0.0001}, "zero_weight_decay_on_bias_and_bn": True, "ema": True, "ema_params": {"decay": 0.9, "decay_type": "threshold"}, "max_epochs": EPOCHS, "mixed_precision": True, "loss": PPYoloELoss( use_static_assigner=False, num_classes=len(dataset_params['classes']), reg_max=16 ), "valid_metrics_list": [ DetectionMetrics_050( score_thres=0.1, top_k_predictions=300, num_cls=len(dataset_params['classes']), normalize_targets=True, post_prediction_callback=PPYoloEPostPredictionCallback( score_threshold=0.01, nms_top_k=1000, max_predictions=300, nms_threshold=0.7 ) ), DetectionMetrics_050_095( score_thres=0.1, top_k_predictions=300, num_cls=len(dataset_params['classes']), normalize_targets=True, post_prediction_callback=PPYoloEPostPredictionCallback( score_threshold=0.01, nms_top_k=1000, max_predictions=300, nms_threshold=0.7 ) ) ], "metric_to_watch": 'mAP@0.50:0.95' } trainer = Trainer( experiment_name='yolo_nas_m', ckpt_root_dir='checkpoints' ) model = models.get( 'yolo_nas_m', num_classes=len(dataset_params['classes']), pretrained_weights="coco" ) trainer.train( model=model, training_params=train_params, train_loader=train_data, valid_loader=val_data ) ############## 기존 학습 코드에서 변경 시킨 부분 train_data = coco_detection_yolo_format_train( dataset_params={ 'data_dir': dataset_params['data_dir'], 'images_dir': dataset_params['train_images_dir'], 'labels_dir': dataset_params['train_labels_dir'], 'classes': dataset_params['classes'], 'transforms' : [ A.CLAHE(p=1.0), A.RandomBrightnessContrast(p=1.0), A.RandomGamma(p=1.0), ] }, dataloader_params={ 'batch_size':BATCH_SIZE, 'num_workers':WORKERS } ) val_data = coco_detection_yolo_format_val( dataset_params={ 'data_dir': dataset_params['data_dir'], 'images_dir': dataset_params['val_images_dir'], 'labels_dir': dataset_params['val_labels_dir'], 'classes': dataset_params['classes'], 'transforms' : [ A.CLAHE(p=1.0), A.RandomBrightnessContrast(p=1.0), A.RandomGamma(p=1.0), ] }, dataloader_params={ 'batch_size':BATCH_SIZE, 'num_workers':WORKERS } )
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
삭제 후, GRID 재조회
안녕하세요! 섹션2 수업 마무리한 상태인데,DELETE 후, GRID를 재조회하는 방법이 없어서, 질문드립니다!구글링해서 해봐도 GRID 업데이트가 안되더라구요..
-
미해결따라하며 배우는 HTML, CSS
도표 자료 (해결)
강의를 하시면서 쓰시는 자료는 어디서 볼 수 있을까요?? 옆에 띄워놓고 같이 보면서 강의를 들을려고 하는데, 강의에서 쓰시는 도표자료는 없더라고요!!
-
미해결김영한의 실전 자바 - 기본편
프로젝트 만들때 질문
안녕하세요 프로젝트 만들때 다른점이 있어 질문드립니다.New Project를 눌렀을때 창이 1번과 같이 나오고 그대로 만들었을때강사님의 프로젝트와 다르게 src 폴더 안에 Main이 없는데 그대로 진행해도 문제가 없는지 궁금합니다
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
시험장에서 단축키 설정
시험장에서 프로그램에 단축키설정 원하는키로 세팅 바꿔줘야 되나요?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
아나콘다 m칩 맥북 설치 오류
이번에 맥북으로 바꾸게 되어서 아나콘다 다시 설치하고 강의 다시 들으려하는데요. 아나콘다 설치에 따로 m칩 전용으로 아나콘다 다운 받는게 있드라고요. 근데 그 파일은 영상에 나온데로 해도 cannot execute binary file 이런 얘기와 함께 설치가 안되더군요.. 어찌할까요. 혹여나 그냥 설치를 하면 조금 다른 점이 있을까 답변을 기다립니다.
-
미해결스프링 부트 - 핵심 원리와 활용
username만 다르게 뜹니다.
프로필 적용할 때부터 이렇게 username은 다르게 뜨는데 어떻게 해야될까요?