묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
파이어베이스 이벤트 로그 수집관련 질문입니다.
안녕하세요. 파이어베이스 이벤트 로그 수집관련해서 2가지 질문이 생겼습니다. 앱 삭제시 삭제하는 유저의 마지막 스테이지 값을 함께 받아보고 싶은데 어떻게 구현해야 하는지 궁금합니다. 동일한 유저가 앱을 설치하고 삭제한 뒤 다시 재설치하고 또 삭제한 다면 설치한 유저는 총 2명, 삭제한 유저는 총 2명으로 기록되는지 궁금합니다. 아무래도 파이어베이스 이벤트 로그 수집에 시간차가 있다보니 정확한 판단을 내리기가 어려워 테스트 하는게 쉽지가 않네요.
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문
그랩님, 강의 잘 듣고 있습니다.다름이 아니라 궁금한 사항(=에러 해결방법)이 필요해서 글을 남기게 되었습니다.101강에서 Axios 에러(400)가 안드로이드 스튜디오 에뮬레이터에서 발생하고이어 아래의 추가 사진2에서 보시다시피 502 Bad Gateway가 발생하여 어떻게 해결 할 수 있는지에 대해 알고 싶어서 질문 드립니다.일단 101강 처음부터 ~ 4분 52초까지 그랩님께서 작성하신 소스코드를 똑같이 작성 후결과를 보려하는데,농구공 그림(세부사항:판매자:그랩,가격,상품명등등) 이 나오지 않아서 이것을 어떻게 하면 그랩님과 같은 결과를 볼 수 있을지에 대해 여쭈어봅니다.사진 1 첨부 : 판매되는 상품들 밑에 100강만 들었을 시에 농구공 화면이 잘 나왔으나 101강 4분 52초까지의 내용의 소스코드를 입력 후 결과값 보면 400 에러도 발생하고 농구공도 안나오게 됩니다.어떻게 해야 하나요?사진 2 첨부 : ngrok http 8080후 진행 하면, 아래와 같이 502 Bad Gateway라고 뜨는데, 이 에러 의미와무엇이 잘못된건지 그리고 어떻게 해결 해야 하는지 답변 주시면 좋겠습니다.그랩님의 답변을 기다립니다.
-
미해결
강의 취소 문의
비즈니스 계정 사용중인데 무료 강의를 취소하는 법을 모르겠습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
에러코드
Spawn 수업을 진행 하던 도중에 , 클라이언트 빌드 이후에 발생한 에러인데 어느부분에서 발생하는지 몰라서 에러코드를 남겨봅니다.. 자동화 이후 빌드까진 다되었었는데 발생했습니다. 캐시파일들같은 파일들을 다 삭제하고 리빌드를 해도 동일한 오류가 발생합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션12 작업형2 (2023년)
section12 작업형2 (2023년) 문제를 풀어보고 싶은데 링크를 누르면 영상 문제와 같은 문제가 아닌데 풀어볼 방법이 없을까요 ?
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
응시권 문의
응시권을 신청하면 올해 무조건 시험 신청을 해야하는건가요? 사용기간이 있는걸까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
감정일기장 최종완성본 링크는 어디에있나요??
감정일기장 최종완성본 링크는 어디에있나요??
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Video Player 프로젝트에 대한 추가 질문
선생님 강의 너무 잘 듣고 있습니다.video_player 프로젝트 관련 내용 모두 확인했고, 여기에 하나만 간단하게 비디오에서 나가기 버튼을 추가해보았습니다. 일단 제가 작성해본 코드부터 공유하겠습니다.테스트 상 로고화면으로는 잘 돌아갑니다. _VideoPlayerState의 dispose() 함수도 정상적으로 실행돼요. 다만 로직이 실제 앱에서 실행되어도 충분히 괜찮은 로직일지, 혹은 더 안전한 방법이나 기타 필요한 수정사항이 있다면 알려주시면 감사하겠습니다. _HomeScreenState 내부class _HomeScreenState extends State<HomeScreen> { // bool showVideo = false; XFile? video; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.black87, body: video == null ? _VideoSelector(onLogoTap: openPicker) : _VideoPlayer( video: video!, onImageIconPressed: openPicker, onExitIconPressed: exitPlayer, // 나가기 버튼 함수 ), ); } void openPicker() async { // setState(() => showVideo = true); /// ImageSource.gallary: 사진 앱에 저장된 이미지/비디오 파일 선택 /// ImageSource.camera: 디바이스가 즉시 촬영한 이미지/비디오 파일 선택 const source = ImageSource.gallery; /// pickVideo(): 사용자 비디오 파일을 선택 final picked = await ImagePicker().pickVideo(source: source); // print(picked); setState(() => video = picked); } /// ↓↓ 여기에 비디오에서 나가기 로직 추가 void exitPlayer() { setState(() { // print('info: exitIconButton 클릭'); video = null; }); } } _VideoPlayerState 내부class _VideoPlayerState extends State<_VideoPlayer> { late VideoPlayerController _videoPlayerController; bool showButton = true; // ... /// 위젯 상태 제거 @override void dispose() { _videoPlayerController.dispose(); print('info: 비디오 플레이어 종료 중..'); super.dispose(); } @override Widget build(BuildContext context) { final VideoPlayerValue videoPlayer = _videoPlayerController.value; // final position = videoPlayer.position; // final duration = videoPlayer.duration; return Center( child: AspectRatio( aspectRatio: videoPlayer.aspectRatio, child: GestureDetector( onTap: () => setState(() => showButton = !showButton), child: Stack( children: <Widget>[ VideoPlayer(_videoPlayerController), /// 영상 화면 커버 if (showButton) Container( width: double.infinity, height: double.infinity, color: Colors.black.withAlpha(128), ), /// 재생/중지와 뒤로&앞으로 버튼 if (showButton) _PlayButton( isPlaying: videoPlayer.isPlaying, onReversePressed: onReversePressed, onPlayPressed: onPlayPressed, onForwardPressed: onForwardPressed, ), /// 하단 슬라이더 if (showButton) _BottomSlider( position: videoPlayer.position, duration: videoPlayer.duration, onSliderMoved: onSliderMoved, ), /// 화면 상단 버튼 if (showButton) _TopButtons( // ← 여기를 2개의 버튼으로 확장 onExitPressed: widget.onExitIconPressed, onImagePressed: widget.onImageIconPressed, ), ], ), ), ), ); } _TopButtons 내부class _TopButtons extends StatelessWidget { final VoidCallback onImagePressed; final VoidCallback onExitPressed; const _TopButtons({ required this.onExitPressed, required this.onImagePressed, }); @override Widget build(BuildContext context) { return Positioned( left: 4, right: 4, top: 0, // Row로 감싸고 왼쪽에 '나가기' 버튼 추가 child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: <IconButton>[ // 나가기 버튼 IconButton( onPressed: onExitPressed, icon: Icon(Icons.chevron_left, color: Colors.white), ), // 다른 영상 선택 버튼 IconButton( onPressed: onImagePressed, icon: Icon(Icons.photo_camera_back, color: Colors.white), ), ], ), ); } }
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
1강에서 도커 설치 중 오류.
완전 초보를 위한 N8N 설치부터 셀프호스팅까지_DOCKER 실습편 입니다. GIHUB 에서 NVIDIA GPU 유저로 복사해서 설치 하려고 하는데..세번째 줄 docker compose --profile gpu-nvidia up을 복사하고 엔터를 치면 아래와 같이 나옵니다. C:\N8N\self-hosted-ai-starter-kit>docker compose --profile gpu-nvidia uptime="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_USER\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_PASSWORD\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_USER\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_PASSWORD\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_USER\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_DB\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_USER\" variable is not set. Defaulting to a blank string."time="2025-11-13T13:12:52+09:00" level=warning msg="The \"POSTGRES_PASSWORD\" variable is not set. Defaulting to a blank string."env file C:\N8N\self-hosted-ai-starter-kit\.env not found: CreateFile C:\N8N\self-hosted-ai-starter-kit\.env: The system cannot find the file specified.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
채팅 서비스 개발 시 주의점이 있을까요?
안녕하세요!이번에 카프카를 처음 접해본 초보 개발자입니다.이번 카프카를 공부하면서 프로젝트로 여러 사람들이 채팅방에서 채팅하는 기능을 만들어보고싶은데요..몇가지 질문이 있어 문의드립니다!webflux를 사용한 비동기 식을 채팅을 구현하려고 합니다. 그래서 알아보니 reactor-kafka란게 있던데 실제 현업에서도 reactor-kafka를 사용해서 구현을 할까요..??하나의 채팅방 토픽이 있을 때, A유저가 메시지를 보내면, 다른 유저들에게도 메시지를 브로드캐스트로 전달해야하는데.. 이때 보통 어떤 방식을 하는지 알고싶습니다.. 각 유저마다 컨슈머 아이디를 따로 줘야하는지..... 메시지는 쌓이는데 어떻게 전달해야할지.. 잘 감이 안잡힙니다..프로듀서를 통해 전달된 데이터를 카프카가 뒷단 레디스에 채팅 데이터를 시키려고 합니다. 이때.. 새로 들어온 유저들은 이전 채팅이력을 받아와야한다면, 레디스에서 바로 가져오는게 좋을까요? 아니면 카프카에 있는 데이터를 삭제 설정을 길게 두고 카프카에서 바로 가져가게 하는게 좋을까요...;;
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
포르테이너 로컬 다운
안녕하세요!도메인은 다행히 빨리 연결이 되어서 순차적으로 강의 듣고 있는데 포르테이너. io에서local Down 으로 나옵니다.선생님처럼Up 이 안돼요 ㅠ그래서 퍼플렉시티에 검색해서 다시 지웠다가 새로 해보고리부팅도 해보고 하는데계속 Down 입니다.뭐가 문제일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7주차 개념 DP - Q. 큰돌의 사과나무
'큰돌의 사과나무' 문제에서 "큰돌은 처음에는 1번 사과나무 아래에 위치해 있다. "라는 조건이 적혀있습니다.int main() { // 생략// 두 가지 초기 상태(1번 나무에 시작, 2번 나무에 시작) 중 최대 값 출력 cout << max(go(0, 1, m - 1), go(0, 0, m)) << '\n'; // 생략}그렇기에 cout << go(0, 0, m) << '\n'; 만 적는게 적절하지 않나? 라는 생각이 들었는데 제가 잘못 생각한걸까요? (0 -> 1번 나무, 1 -> 2번 나무)
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
도메인 설정
안녕하세요!강의 그대로 다 진행했는데저는 ping ~ 했을때계속해서 도메인 연결이 안되어 있어서이후에 강의 진행도 막혀서 못하고 있는데혹시 최대 시간이 얼만큼 걸릴까요? ㅠㅠ아니면 바로 안되면 별도 문의를 어느쪽에 드려야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
독립표본 t검정
독립표본 t 검정 진행 후 결과를 볼 때ttest_ind() 까지만 적은 후 나오는 결과와여기에서 t_statisstic과 p-value를 따로 출력해서 보이는 결과가 다르게 나옵니다,
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
네이버 뉴스 검색 API
강의에서는네이버 뉴스 스크랩을 하기위해, more url 을 호출하는 방식을 사용하셨는데, 서비스 API 를 사용해 보는것도 하나의 방법일것 같습니다.https://developers.naver.com/docs/serviceapi/search/news/news.md#%EB%89%B4%EC%8A%A4-%EA%B2%80%EC%83%89-%EA%B2%B0%EA%B3%BC-%EC%A1%B0%ED%9A%8C 사용하시려면, 네이버 개발자 센터에서 애플리케이션을 등록하고 클라이언트 아이디와 클라이언트 시크릿을 발급받아야 합니다. ^^;;
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
hub.pull 이슈
아래 코드, hub.pull 안되실 경우from langchain import hub prompt = hub.pull("rlm/rag-prompt") 아래와 같이 변경해 보세요.저는 LANGSMITH_API_KEY 를 직접 넣었지만,환경변수에 등록해서 사용하시는게 나을것 같네요.from langsmith import Client LANGSMITH_API_KEY = "ls...." client = Client(api_key=LANGSMITH_API_KEY) prompt = client.pull_prompt("rlm/rag-prompt", include_model=True)
-
미해결AI시대의 웹개발 : 비동기 프로그래밍과 데이터 통신 최적화(프롱트 특강)
web api 에 대해 질문이 있습니다.
자바스크립트는 싱글 스레드 언어라고 알고 있습니다. 자바스크립트 자체적으로 실행하지 못하고Node나 브라우저에서 실행해야 되는데 브라우저에서 실행할 경우 선생님께서 가르쳐주신 콜스택, Callback Queue, WebpAPI 모듈이 EventLoop를 통해 멀티스레드처럼 동작한다고 이해했습니다. 여기서 질문이 있는데요.SetTimeout에서의 콜백이 WEB API에게 던져놓고 시킬 때, 싱글스레드 녀석은 CallStack에서 일한다고 바쁜데 언제 SetTimeout 콜백을 처리하나요?WEB APIs가 콜백을 따로 처리한다는 건또 다른 스레드가 존재한다는 의미인가요? 그러면 싱글스레드인척하는 멀티스레드인셈인가요?? ㅎㅎ;
-
해결됨회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
"create_react_agent" deprecated
create_react_agent 가 deprecated 되었습니다.from langgraph.prebuilt import create_react_agent langchain.agents 에서 create_agent 를 제공합니다.참고로, system_prompt 가 생겼습니다.from langchain.agents import create_agent 자세한 내용은 아래 링크를 참고하세요.Deprecatehttps://docs.langchain.com/oss/python/releases/langgraph-v1#deprecation-of-create-react-agentcreate_agenthttps://docs.langchain.com/oss/python/releases/langchain-v1#create-agentcreate_agent 로 마이그레이션https://docs.langchain.com/oss/python/migrate/langchain-v1#migrate-to-create-agent
-
해결됨즐거운 블렌더 - 아이소메트릭 하우스
맥북에서는 카메라 뷰의 줌을 어떻게 하나요?
저는 맥 사용자인데 마우스 휠 기능이 없어서 조금 헤맸어요.4강 상자 29:51 부분에서 카메라 뷰에서 줌을 하는데 마우스 휠로 하잖아요.혹시 맥에서는 어떻게 하는지 알고 싶습니다.챗 GTP한테 물어보니 G → Z → Z로 하라고 해서 하다 보니 어찌어찌 되긴 했는데 이게 맞나요?
-
미해결프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
glob.glob문 오류
42-2 강의를 들으며 glob.glob으로 코딩을 해보다 아래와 같은 문제가 발생하였는데, 파라미터를 1개 써야 한다고 나오는거 같습니다. 정답파일에도 같은 오류가 발생하던데, 버전이 바껴서 그런걸까요? 그러면 glob문은 사용할 수 없는건지 문의드립니다.