묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
윈도우에서 아이폰 화면 보기
선생님 혹시 윈도우 환경에서는 디바이스 매니저 실행하고상단 select device에서는 웹,모바일,데스크톱 이렇게 밖에 없는데 윈도우에서는 아이폰 화면 못보는건가요?선생님처럼 ios 환경에서만 안드로이드 화면을 볼수있는건지요api 34 사용중입니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Calendar 앱 프로젝트 StreamBuilder 질문
마무리 수업에 리스트 개수 화면에 나타낼 때, StreamBuilder를 하나 더 사용하는데 (ListView에도 사용 중)하나로 합치는게 더 좋을까요 아니면 따로 작성하는게 좋은가요?중복의 관점에서 생각해 본 것입니다.
-
해결됨Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
Direct connection / Transaction pooler / Session pooler 차이가 무엇인가요?
Supabase 가 업데이트 되면서, 강의 화면과 다른 부분이 있어서 질문드립니다.Direct connection / Transaction pooler / Session pooler 차이가 무엇인가요?강의를 따라가기 위해 Transaction pooler 를 사용해서 연결은 하긴 했습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 앱에서 dll이나 exe 파일을 사용해야 할 경우 어떤 경로에 위치시켜야 할까요?
이미지 같은 정적 리소스가 아닌 c로 빌드된 exe 파일이나 dll 같은 동적 라이브러리를 플러터 앱에서 사용해야할 경우에 이 파일들은 어디에 위치시켜야 할까요? assets 폴더 밑에 두어야 할까요 아니면 windows 밑에 두어야 할까요?플러터로 현업을 경험해보진 않아서 현업에선 어떻게 사용하는지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 데이터베이스.,,,
이 강의 mySql이나 데이터베이스를 이용 하지는 않는건가요 ?. 로컬 데이터베이스만 사용하나요 ? [코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Dart 강의 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! TS강의 완료 후 Flutter 강의 시작하려 합니다. Dart 공부한지 2년정도가 되어 다시 공부하려는데무료 Dart 강의가 있고 Flutter 초급 강의에도 Dart 이론 강의들이 있더라구요두 강의가 동일한 강의인지 궁금합니다 :)
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
<군대에서 이 강의를 활용하는 방법>
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요. 군대 사지방에서 인공지능과 앱 개발을 공부하는 군인 입니다.코드팩토리님의 강의를 더 많은(특히나 군인) 사람들이 어려움 없게 공부할 수 있도록 도와드리고자 이렇게 작성해봅니다.flutter 개발 환경에 대해 사지방에서 할 수 있는 것을 공유하고자 합니다.여기다가 환경설정을 자세히 쓸 수는 없으니(사실 필요하지도 않습니다) 이런 것들을 활용하면 된다고 말하고 싶어서 간단하게 작성해 봅니다.project idx를 사용해 flutter 워크스페이스를 만들면 됩니다. project idx를 이용하면 google id만 있다면 이용하실 수 있습니다. vscode 환경을 제공합니다. 다만, 현재 android 에뮬레이터는 잘 작동이 안되서 web view로 보셔야 합니다.(이걸로도 충분합니다) 각종 외부 패키지 사용은 호환이 안되는 경우가 있습니다만, pub.dev에 web으로 호환되는 것을 따로 설정하시면 됩니다.예를 들어, google map을 이용하고자 할 때 web/index.html에 아래와 같은 코드를 추가하시면 잘 작동됩니다. <script src="https://maps.googleapis.com/maps/api/js?key=Your API KEY"></script>또, 비디오 영상과 관련해서는 url로 받으시면 됩니다.관련된 정보는 stackoverflow나 이외의 블로그에 굉장히 많은 정보가 있으니 찾아보시면 됩니다.실제로 에뮬레이터 대신 web에서 작동하는 방식은 아래 사진처럼 작동합니다.(android는 버그가 좀 있는 것 같습니다.) 제가 이렇게 말씀드리는 이유는 다음과 같습니다.코드팩토리님의 강의가 그 정도로 들을만한 가치가 있다는 점.군인도 앱 개발을 충분히 공부할 수 있다는 점.그리고 환경설정이 하나도 어렵지 않다는 점.(저도 이 강의가 첫 앱 개발입니다. 인공지능 공부를 한 경험 때문에 더 쉬웠을 수도 있습니다.)코드팩토리님의 질문&답변에 이런 글을 달아 죄송합니다.여러 인사이트 댓글을 보면 "군인이 사지방에서 개발 공부하는 법"같은 것이 많이 나와있어서 이렇게 남겨봅니다.혹시라도 삭제를 원하시면 바로 삭제하겠습니다.
-
미해결애플 웹사이트 인터랙션 클론!
drawImage(objs.videoImages[sequence], 0, 0); error
function setCanvasImages() { let imgElem; for(let i = 0; i < sceneInfo.values.videoImageCount; i++) { imgElem = new Image(); imgElem.src = `./images/picdiet 1/${1 + i}.jpg`; sceneInfo[0].objs.videoImages.push(imgElem); } // /home/ibmuser01/src/images/picdiet 1/1.jpg } setCanvasImages(); function setLayout() { // 각 스크롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === 'sticky') { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; } else if (sceneInfo[i].type === 'normal') { sceneInfo[i].scrollHeight = sceneInfo[i].objs.content.offsetHeight + window.innerHeight * 0.5; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } yOffset = window.pageYOffset; let totalScrollHeight = 0; for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute('id', `show-scene-${currentScene}`); } function calcValues(values, currentYOffset) { let rv; // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if (values.length === 3) { // start ~ end 사이에 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if (currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd) { rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; switch (currentScene) { case 0: let sequence = Math.round(calcValues(values.imageSequence, currentYOffset)); objs.context.drawImage(objs.videoImages[sequence], 0, 0); if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.42) { // in objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.62) { // in objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.82) { // in objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_out, currentYOffset)}%, 0)`; } break; case 2: // console.log('2 play'); if (scrollRatio <= 0.25) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.57) { // in objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } else { // out objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } if (scrollRatio <= 0.83) { // in objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } else { // out objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } break; case 3: // console.log('3 play'); break; } } function scrollLoop() { enterNewScene = false; prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight){ enterNewScene = true; currentScene++; document.body.setAttribute('id', `show-scene-${currentScene}`); } if(yOffset < prevScrollHeight){ enterNewScene = true; if(currentScene === 0) return; currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`); } if(enterNewScene) return; playAnimation(); } window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load', setLayout); window.addEventListener('resize', setLayout); })(); main.js:181 Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or OffscreenCanvas or SVGImageElement or VideoFrame)'. at playAnimation (main.js:181:30) at scrollLoop (main.js:292:9) at main.js:297:9이러한 에러가 나요.이미지 파일은 여기에 저장되어있슴돠.
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
안녕하세요. login, singup, workspace 페이지에서 data 가 있는 경우, Redirect 하려는 함수에서 다음과 같은 에러가 공통으로 나타납니다. => 'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345) 어떻게 해야 할까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
앱 실행시 에러 발생 (맥북)
안녕하세요.맥북을 사용하고 있는 교육생입니다.android/gradle.properties에 org.gradle.java.home=/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home이렇게 작성하고 실행하면* What went wrong:Execution failed for task ':agora_uikit:compileDebugKotlin'.> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain해당 에러가 발생합니다.그래서 자바 버전을 1.8로 변경하고 gradle 버전도 낮춰서 해봤지만 실행이 되지 않습니다... 어떻게 해야할까요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Visual studio 설치했는데도 오류가 뜹니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이렇게 뜨는데 어떻게 해야할까요~?
-
미해결기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
3.2, 3.3 화면에 아무것도 나오지 않고 있습니다!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
안녕하세요.현재 슬리액트, '회원가입 페이지 만들기' 파트를 듣고 있습니다.회원가입을 누르면,'TypeError: Cannot read properties of null'라는 에러가 발생합니다.DB, users 폴더에는 새로운 회원정보가 잘 드렁가 있습니다.DB에는 잘 저장되는데, 프론트엔드에서 발생하는 에러일까요? 코드는 제가 거의 건든게 없습니다. 현재 제로초님이 Github 에 올려주신 코드에서 '비밀번호가 입력이 잘못되었습니다' 이부분 검증하는 부분은 추가되어 있습니다.
-
해결됨모던 웹 인터렉티브 CSS3 부트캠프 [Full vers.]
자바강의도 하나짜리 full버전이 나오나요?
자바강의 신청하려고하는데 이전사례처럼 하나짜리 통으로 풀버전으로 편집되서 출시될지 궁금해요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
pub dev 문제
'pubspec.yaml' 에서 알맞은 위치에 'webview_flutter: ^4.4.2' 라고 입력하고 pub get을 실행하였을 때 막 이상한 게 출력되면서 마지막에 'Process finished with exit code 65' 이렇게 뜹니다.
-
미해결Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)
LiveDemo 페이지 정상작동하나요?
강의를 본격적으로 듣기에 앞서Live Demo를 살펴보려했는데,링크 접속 자체에는 문제가 없으나,로그인 클릭시 리다이렉트 url이 잘못되었는지 정확한 이유는 모르곘으나 "This site can't be reached" 에러가 뜨네요?!확인 좀 해주실 수 있을까요?!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
vid_player Project의 ImageSource.gallary 실행 오류
Lost connection to device. the Dart Compiler exited unexpectedly. 문제로 simulator가 종료됐습니다. 해당 문제건에 대해 질문&답변 코너를 찾아봤지만, 같은 이슈로 올라온 글이 없어 정보 공유 드립니다. 😊😊이 문제는 ios 권한으로 인해 발생하는 오류 입니다. [vid_player > ios > Runner > Info.plist] 파일 실행. 맨 밑에 </dick> 위에 아래의 문구 작성______________________________________________________<key>NSPhotoLibraryUsageDescription</key><string>사진을 선택하기 위해 라이브러리에 접근합니다.</string>______________________________________________________ 행복 코딩하세요.🙆🙆
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
chool_check 프로젝트 시뮬레이터 실행 에러
chool_check 프로젝트에서 안드로이드, ios 시뮬레이터가 실행이 안되네요ㅜ 정말 열심히 만지다 보면 ios 애뮬레이터는 가끔 작동이 되는데, 안드로이드 시뮬레이터는 한번도 작동에 성공한 적이 없네요. 강의내용, 구글링, 챗gpt 다 활용하면서 3일을 썼는데도 googlemapsflutter, geolocator 플러그인을 넣으면서 시뮬레이터를 실행하려하면 계속 에러가 나서 여기서 한 3일을 쓰고, 진도를 못나가고 있습니다ㅜ 혹시 원격 조종해주실 수 있을까요ㅜㅜ 정말 이것저것 많이 만져보고, 프로젝트도 한 3,4번 갈아치우면서 시도해도 해결이 안되네요ㅜ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
공공데이터 미세먼지
serviceKey 가 여러번 다시 시도해도 에러가 발생합니다그리고 위의 이미에서처럼 itemCode,dataGubun,searchCondition 항목이 안보이는데 신청을 잘못한걸까요?<OpenAPI_ServiceResponse> <cmmMsgHeader> <errMsg>SERVICE ERROR</errMsg> <returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg> <returnReasonCode>30</returnReasonCode> </cmmMsgHeader> </OpenAPI_ServiceResponse>
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
The emulator process for AVD Pixel_7_Pro_API_34 has terminated.
에뮬레이터를 실행하면 계속 이렇게 오류가 뜨고 실행이 안되네요.. 컴퓨터를 초기화하고 계속 해도 이렇게 오류가 뜹니다ㅠㅠ