묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] 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문은 사용할 수 없는건지 문의드립니다.
-
해결됨비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
lovable cloud 에서 카카오 로그인이 지원이 안됩니다.
[진도] 실용적인 도구 만들기 1: 개인 비용 관리 앱 (Supabase, 로그인 기능)[질문]강의에서는 supabase 를 사용해서 카카오 로그인을 추가 했으나현재 lovable 에서는 업데이트가 되어서ai 로 명령시 supabase 를 추가로 연결 하지 않고 자동 Lovable Cloud 기능을 탑재합니다. 이경우카카오 기능 추가를 명령하면 아래와 같이 지원이 안된다고 나옵니다. 그럼 supabase 추가로 연결 해야하나요? 카카오 로그인은 Lovable Cloud에서 기본 지원하지 않습니다. 현재 사용 가능한 소셜 로그인은 다음과 같습니다:지원되는 소셜 로그인:Google ✅ (현재 활성화됨)GitHubFacebookAppleDiscordTwitterSlackSpotify카카오 로그인을 원하시면 커스텀 OAuth 구현이나 카카오 REST API를 직접 연동해야 하는데, 이는 복잡한 작업입니다.추천 방안:구글 로그인 사용 (대부분의 한국 사용자가 구글 계정 보유)이메일/비밀번호 로그인 사용카카오 로그인은 Lovable Cloud에서 기본 지원하지 않습니다. 현재 사용 가능한 소셜 로그인은 다음과 같습니다:지원되는 소셜 로그인:Google ✅ (현재 활성화됨)GitHubFacebookAppleDiscordTwitterSlackSpotify카카오 로그인을 원하시면 커스텀 OAuth 구현이나 카카오 REST API를 직접 연동해야 하는데, 이는 복잡한 작업입니다.추천 방안:구글 로그인 사용 (대부분의 한국 사용자가 구글 계정 보유)이메일/비밀번호 로그인 사용
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코랩설정질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 제가 이전에 코랩을 설치한적이 있는데 설정을 잘못한건지 매 코드 행마다 앞에 숫자 1이 적혀져있는데 잘못된건가요? 아니면 새버전에서는 원래 1이 적히는건가요? 선생님처럼 숫자 1이 안뜨게하려면 어떻게해야할까요 감사합니다
-
해결됨[2025년 최신 기출 반영] 빅데이터 분석 기사 실기 시험 100% 합격 ! 기출 문제의 패턴이 보인다 !
코딩 방법에 따른 채점 기준에 관하여 질문있습니다.
우선, 훌륭한 강의자료 감사드립니다.잘 배우고 있습니다.코딩 방법에 따른 채점 기준에 관하여 질문있습니다. 5회 1유형 풀이를 예로 들겠습니다우선, 제가 푼 코드입니다.[1번 문제]df = pd.read_csv('product_data.csv') cond1 = df['제품종류'] == '일반제품' cond2 = df['용도'] == '음식물처리' df = df[cond1&cond2] df a = df['1L 가격'].mean() a print(int(a))[2번 문제]df = pd.read_csv('employee_vo2max_data.csv') df['V02Max'] = 15 * (df['HRmax'] /df['HRrest']) cond1 = df['V02Max'] >= 40 df1=df[cond1] a= int(len(df1)) cond2 = (df['V02Max'] >= 30) & (df['V02Max'] < 40) df2=df[cond2] b= int(len(df2)) result= abs(a-b) print(int(result))[3번 문제]df = pd.read_csv('car_production_data.csv') df['pure']= df['Produced'] - df['Transferred'] df = df.sort_values('pure', ascending=False) df a = df.iloc[0,1] print(a) 이렇게 다소 복잡하게 풀면코딩 대한민국님 풀이 방법과 비교하였을 때, 채점 시 불이익이 있을까요? 데이터검정자격시험 채점 기준 및 코딩 가이드라인을 살펴보아도명쾌한 답이 없어 혹시 알고 계실까 여쭤뵙니다.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
제로초님께서는 Nativewind는 사용안하지는지 궁금합니다.
React/Next.js 프로젝트에서 Tailwind를 많이 사용하는 추세인데, 이와 매우 유사한 React Native 의 Natviewind 라는게 있더군요. Nativewind를 사용하면 기존 Tailwind에서 처럼 className으로 빠르게 스타일링할 수 있고 웹과 모바일 간 일관된 스타일 코드를 유지할 수 있는 장점이 있는 것 같습니다. React Native 기초 강의이므로 기본 React Native CSS 사용을 통해 구현하는 방식을 보여주신 것인지 궁금합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
4장 RetryPolicy 예제 코드 질문이요
킬구형 RetryPolicy 작동 방식이 policyMap에서 우선 발생한 에러의 상위 카테고리를 찾고, RetryPolicy에 들어있는 SimpleRetryPolicy가 실제로 각 에러에 대해 어떻게 처리할지를 정하는 것 같은데 그러면 두 에러가 상속 관계에 있어야지만 정상적으로 작동하는 거 같은데 맞아?그런데 예제 코드에 있는 HttpTimeoutException와 HttpServerErrorException는 상속 관계가 아니어서 아마 의도대로 작동하지 않을 것 같은데 한 번 검토해봐줄 수 있어?참고로 나는 java17 + spring-boot-starter-batch:3.5.6 환경으로 진행중이야
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
강의 순서에 대해서 질문드립니다.
학습 내용과는 상관없긴 한데코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드 위 강의도 같이 구매 하였습니다. 지금 현재 강의를 듣기 전에 위 입문강의를 듣고 진행하는것이 좋을까요 입문강의를 듣지 않아도 현강의 만으로도 자동화에 대한 내용을 익히는데 문제가 없을까요? 그래서 저의 계획은 현강의를 먼저 듣고 n8n에 대해 좀더 공부하기 위해 n8n입문 강의를 마무리 하려했습니다. 이렇게 해도 되는건지. ㅎ
-
해결됨C# 프로그래밍 기초부터 실전 활용까지
159번 강의 보는데 궁금한게 있습니다
AttributeExtension 클래스에서ApplyAttributes 메서드에 매개변수를 this object 타입으로 받게끔 하셨는데, 이부분이 잘 이해가 안되요.어떻게 저 매개변수 타입을 사용함으로서 user클래스의 메서드처럼 돌아갈수 있는건가요??