묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[실시간 채팅 with React]
WebSocket 연결 에러 질문
import { useCallback } from 'react'; import io from 'socket.io-client'; // 아무 key값이 들어올수 있으니 이런 형식으로 타입 지정 const sockets: {[key: string]: SocketIOClient.Socket} = {}; const backUrl = "http://localhost:3095"; const useSocket = (workspace?: string): [SocketIOClient.Socket | undefined, () => void] => { const disconnect = useCallback(() => { if(workspace) { sockets[workspace].disconnect(); // 연결 끊을때는 지우기 delete sockets[workspace]; } },[workspace]) if(!workspace) { // 한번 맺었던 연결을 끊는 함수 (끝맺음을 잘하자) return [undefined, disconnect]; } sockets[workspace] = io.connect(`${backUrl}/ws-${workspace}`,{ transports: ['websocket'], }); return [sockets[workspace], disconnect] } export default useSocket; const [socket, disconnect ] = useSocket(workspace); useEffect(()=>{ if(channelData && userData){ socket?.emit("login",{id : userData.id, channels: channelData.map((y)=> y.id)}); } },[userData, channelData, socket]); // socket연결을 끊어줄 때 useEffect(()=>{ return () => { disconnect(); } },[workspace, disconnect]) 버전이 달라서 이런 현상이 생기는건지 잘 모르겠습니다. ..
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android studio에서 hello_world 강의 따라할때 오류 발생
안녕하세요. flutter 강의 에서 android studio 시뮬레이터로 hello_world를 돌렸는데요.아래와 같이 에러가 출력 됩니다.cache도 지워보고 build.gradle의 코틀린 버전도 올리고flutter clean, flutter pub get 한 뒤에 재실행 해도 동일한데요.아래 Command를 실행하면 정상적으로 작업이 되는거 같은데... 뭐가 문제인지 알 수 있을까요? ###Error msgLaunching lib\main.dart on sdk gphone64 x86 64 in debug mode...Running Gradle task 'assembleDebug'...√ Built build\app\outputs\flutter-apk\app-debug.apk.ERROR: dump failed because resource androidmanifest.xml not foundFailed to extract manifest from APK: ProcessException: The command failed Command: C:\Users\wookheon.lee\AppData\Local\Android\sdk\build-tools\34.0.0\aapt dump xmltree C:\study\hello_world\build\app\outputs\flutter-apk\app-debug.apk AndroidManifest.xml.Exception: Problem building Android application: see above error(s).
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
SliverToBoxAdapter 관련 강의 위치 문의
안녕하세요 코드팩토리님 강의 잘 듣고 있습니다.다름이 아니라섹션 23'CategoryCard 제작하기' 강의에 1:32 쯤에SliverToBoxAdapter 를 CustomScrollView 강의때알려 주셨다고 하셨는데.CustomScrollView 강의 4개 다시 봤는데 안보여서요.제가 못찼는 건지 SliverToBoxAdapte 강의가 목록에서빠진 건지 확인 부탁 드립니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
docker-compose.yml 은 왜 루트에 하나염
docker-compose.yml 은 왜 루트에 두나요?.?~
-
미해결애플 웹사이트 인터랙션 클론!
특정 타이밍 스크롤 애니메이션 적용하기 섹션 수강중입니다.
초반부 messageA_opacity_in 을 콘솔로 찍었는데요,partScrollStart보다 currentYOffset이 작을때는rv에 values[0] 즉 '0'을 리턴해야하는데,그러지 않고 -1부터 0까지 쭉 커지다가 css가 적용되는 구간부터 1로 점점 커집니다...const sceneInfo = [ { //0 type:'sticky', heightNum:5,//브라우저 높이의 배수 세팅 scrollHeight:0, //각 씬의 스크롤 높이 objs:{ container: document.querySelector('#scroll-section-0'), messageA: document.querySelector('#scroll-section-0 .main-message.a'), messageB: document.querySelector('#scroll-section-0 .main-message.b'), messageC: document.querySelector('#scroll-section-0 .main-message.c'), messageD: document.querySelector('#scroll-section-0 .main-message.d') }, values:{ messageA_opacity: [0, 1, { start: 0.1, end: 0.2}], messageB_opacity: [0, 1, { start: 0.3, end: 0.4}] } }, { //1 type:'normal', heightNum:5,//브라우저 높이의 배수 세팅 scrollHeight:0, //각 씬의 스크롤 높이 objs:{ container: document.querySelector('#scroll-section-1') } }, { //2 type:'sticky', heightNum:5,//브라우저 높이의 배수 세팅 scrollHeight:0, //각 씬의 스크롤 높이 objs:{ container: document.querySelector('#scroll-section-2') } }, { //3 type:'sticky', heightNum:5,//브라우저 높이의 배수 세팅 scrollHeight:0, //각 씬의 스크롤 높이 objs:{ container: document.querySelector('#scroll-section-3') } } ];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; switch (currentScene){ case 0: let messageA_opacity_in = calcValues(values.messageA_opacity, currentYOffset) objs.messageA.style.opacity = messageA_opacity_in console.log(messageA_opacity_in) break; case 1: break; case 2: break; case 3: break; } } 도와주세요 ㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
WebViewController에서 launch 사용시 문의드립니다.
import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; final homeUrl = Uri.parse('https://blog.codefactory.ai'); class HomeScreen extends StatelessWidget { WebViewController controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..loadRequest(homeUrl) ..setNavigationDelegate(NavigationDelegate( onProgress: (int progress){}, onWebResourceError: (error){}, onNavigationRequest: (request) { if (request.url.startsWith('tel:')) { launch( request.url, forceSafariVC: false, // true로 설정하면 Safari View Controller에서 열릴 수 있습니다. universalLinksOnly: false, // iOS에서만 사용됩니다. enableJavaScript: true, // JavaScript 활성화 // headers: <String, String>{}, // 추가 헤더 (옵션) ); return NavigationDecision.prevent; } return NavigationDecision.navigate; }, )); HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Code Factory'), centerTitle: true, actions: [ IconButton( onPressed: (){ controller.loadRequest(homeUrl); }, icon: Icon( Icons.home, ), ), ], ), body: WebViewWidget( controller: controller, ), ); } }webview_flutter: ^4.0.2 url_launcher:잘 실행은 되는데 launch 에 가운데선을 없애기 위해서는 어떻게 해야 하나요.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
미세먼지앱 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 안녕하세요 현재 스타일링 마무리하기 << 여기 듣고 있습니다. 옆에 지역선택하기 누르면 안바뀐다고 나와있는데 그게 보니깐 제 코드에선 지역이 서울로 설정 돼있더라구요 그래서 어떤 지역을 넣든간에 서울로 고정돼있는 거 같은데 제가 실수로 빼먹었나해서 문의드렸습니다. 다른 지역 누르면 종류별 통계에 미세먼지가 양호가 아님에도 양호라고 뜨네요 앱바에 보이는 색과 아이콘은 서울 고정이고 지역이름은 바뀌는 것 같습니다.다른 지역 누르면 종류별 통계에 미세먼지가 양호가 아님에도 양호라고 뜨네요
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
잘 되다가 cors 에러가 계속 뜨는데
몇 번이고 완성코드랑도 비교해보고 영상도 계속 돌려보고다 확인해봐도 코드의 문제는 전혀 없는데도대체 왜 갑자기 cors 에러가 뜨는지 모르겠네요...
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
TodayBanner설계 7분경에 onDaySelected함수
안녕하세요코딩 기초가 없어서 너무 이상한 질문을 하는건 아닌지 죄송합니다만TodayBanner 설계 7분경에 onDaySelected를 밖으로 빼는 이유가 있을까요?원래 위치에 그대로 두고 this.widget.selectedDay= selectedDay; 이런식으로 코드 작성 하면 안되는 건지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
지도가 안보이고 있어요...
(사진)
-
미해결vue.js 실전 프로젝트(트위터 클론)
쪽지에서 메세지를 쓰면 상대방에게 즉시 나타나게 하려면 어떻게 해야 할까요?
쪽지에서 메세지를 쓰면 쪽지를 받는 상대방은 이름을 선택해 주어야 새로운 메시지가 나타나네요.메시지를 쓰면 상대방에게 즉시 나타나게 하려면 어떻게 해야 할까요?
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
TS1261: Already included file name
The file is in the program because: TS1261: Already included file name 'C:/Users/gram15/Desktop/slack/sleact-master/alecture/pages/LogIn/index.tsx' differs from file name 'C:/Users/gram15/Desktop/slack/sleact-master/alecture/pages/Login/index.tsx' only in casing. Imported via '@pages/LogIn' from file 'C:/Users/gram15/Desktop/slack/sleact-master/alecture/layouts/App.tsx' Root file specified for compilation 2 | import loadable from '@loadable/component'; 3 | import { Switch, Route, Redirect } from 'react-router-dom'; > 4 | const LogIn = loadable(() => import('@pages/LogIn')); | ^^^^^^^^^^^^^^ 5 | const SignUp = loadable(() => import('@pages/SignUp')); 6 | 7 | const App = () => { App.tsx import React from 'react'; import loadable from '@loadable/component'; import { Switch, Route, Redirect } from 'react-router-dom'; const LogIn = loadable(() => import('@pages/LogIn')); const SignUp = loadable(() => import('@pages/SignUp')); const App = () => { return ( <Switch> <Redirect exact path='/' to="/login" /> <Route path="/login" component={LogIn} /> <Route path="/signup" component={SignUp} /> </Switch> ); }; export default App; LogIn/index.tsx import React from "react"; const LogIn = () => { return ( <div>로그인</div> ); }; export default LogIn; SignUp/index.tsx import React from "react"; const SignUp = () => { return ( <div>회원가입</div> ); }; export default SignUp; 폴더 이름이 맞지 않다고 하는데 이름 대소문자 까지 다 맞춰서 했습니다. 오류가 왜 뜨는지 모르겠어요....
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
맥북 OS 업그레이드 이후 기존 진행하던 프로젝트 빌드가 되지 않음
xcode도 업데이트가 됐습니다시뮬레이터도 재설치 하고 하더라고요그런데 device가 iphone 15 만 나오와서 일단 그거 선택하고 빌드를 했는데 아래와 같은 에러가 뜨네요Uncategorized (Xcode): Command CodeSign failed with a nonzero exit codeCould not build the application for the simulator.Error launching application on iPhone 15. flutter cleanflutter pub get도 해보고 다시 실행해도 마찬가지 입니다
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
update를 만들던 도중 +버튼이 먹통이 되었습니다
강의를 보면서 따라가던 도중 영상12:00에서 print를 하던도중에 알게되었는데 +버튼을 눌러도 schedule_bottom_sheet가 올라오지 않았습니다. 혹시 그 이후 강의를 따라가다보면 오류가 해결될까 싶어서 이어서 더 해봤지만 update는 문제없이 되지만 여전히 +버튼이 먹통이라서 도저히 어디서 생긴 문제인지 모르겠습니다. 혹시나 싶어서 github의 코드도 봤지만 오타도 아닌 것 같아서 더욱 어디가 문제인지 모르겠습니다.
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
개인정보처리방침에 대한 질문
구글스토어에 배포할때 개인정보처리방침을 꼭 작성해야 하는데광고 배너는 어떤식인가 궁금해서 질문 올립니다.개인정보를 따로 수집하지 않고, 올려주신 처리방침에도 광고에 관해서는 아무런 언급이 없지만광고가 맞춤형 구글광고 아닌가? 라는 생각이 들어서 조금 검색해보니 맞춤형 광고에 개인정보 불법 사용해서 벌금 물었다는 뉴스도 나오고구글애드 홈페이지에는 개인 맞춤 광고리마케팅은 개인 맞춤 광고의 타겟팅 기능 중 하나이며, 이 기능을 이용하면 내 웹사이트를 방문했거나 내 모바일 앱을 사용한 적이 있는 사용자에게 광고를 게재할 수 있습니다. 개인 맞춤 광고를 원하지 않는 사용자에 대해서는 리마케팅 데이터 수집을 중지할 수 있습니다. 그러려면 allow_ad_personalization_signals 매개변수를 사용하면 됩니다.이 매개변수의 기본값은 true로 설정됩니다. 매개변수의 값을 false로 설정하면 개인 맞춤 광고를 위한 데이터 사용이 중지됩니다. 이렇게 나오네요.이 부분에 대해서는 따로 작성을 할 필요가 없는지 아니면 신경쓸 필요 없이 그냥 GPS 정보만 취급하면 되는건지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
비동기 프로그래밍 강의19분대 질문
Addnumbers 함수의 타입이 void이든 future<void>이든 둘 다 논리적인 오류없이 가능한건가요? 그냥 둘의 차이점은 addnumbers함수를 main함수 안에서 await할 수 있고, 없고 밖에 없는건가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
RE)색상정보 DB에 넣기 과정중에서 id문제가 생겼습니다
방금 질문에서 답해주신대로 에뮬레이터에서 앱을 uninstall 을 하고서 다시 시도해봤지만 여전히 같은 문제가 발생을 하였습니다.final colors = await database.getCategoryColors(); if (colors.isEmpty) { for (String hexCode in DEFAULT_COLORS) { await database.createCategoryColor( CategoryColorsCompanion( hexCode: Value(hexCode), ), ); } } print(await database.getCategoryColors());여기까지 하였는데 여전히 같은 오류가 생깁니다.오류내용입니다.InvalidDataException (InvalidDataException: Sorry, CategoryColorsCompanion(id: Value.absent(), hexCode: Value(F44336), rowid: Value.absent()) cannot be used for that because: • id: This value was required, but isn't present )
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
색상정보 DB에 넣기 과정중에서 id문제가 생겼습니다
영상을 보면서 따라가던 중에 final colors = await database.getCategoryColors(); if (colors.isEmpty) { for (String hexCode in DEFAULT_COLORS) { await database.createCategoryColor( CategoryColorsCompanion( hexCode: Value(hexCode), ), ); } } print(await database.getCategoryColors());이 부분을 입력하고서 실행을 해보니까InvalidDataException 오류가 발생했습니다.id값은 필수이지만 존재하지 않는다고 나옵니다.category_color.dart 와 schedule.dart 파일 모두 integer().autoIncrement()(); 로 해놨습니다.이런 경우에는 어떻게 해야할까요?오류 설명 내용입니다InvalidDataException (InvalidDataException: Sorry, CategoryColorsCompanion(id: Value.absent(), hexCode: Value(F44336), rowid: Value.absent()) cannot be used for that because: • id: This value was required, but isn't present )
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
database 삭제 하는법
CategoryColors에 hexcode 넣다가 hexcode 사이에 반점을 안찍어서 이상하게 데이터가 생성되었어요.데이터를 다시 삭제하고 시작하려면 어떻게 해야 할까요?
-
해결됨애플 웹사이트 인터랙션 클론!
[#svg, #이미지프레임과 텍스트 싱크] 스크롤 값에 움직이는 svg path, 이미지프레임과 텍스트 싱크 맞추는 것, 2가지 질문이 있습니다.
안녕하세요,유익하고 좋은 강좌 만들어주셔서 감사드립니다! 덕분에 브라우저 스크롤 애니메이션에 대한 개념이해를 갖게 됐습니다!. 이런 내용을 바탕으로 '미려한' 애니메이션을 만들고 싶은 욕심이 생겼는데요,해당 강좌를 시청하며 2가지 문의사항이 있습니다.감사합니다! #질문1. svg의 path의 생성하는 법, 만들어주신 강좌 중 svg 강의를 보면 아이디어를 얻을 수 있을까요?보너스로 추가해주신 아이패드 강좌 부분을 보면서, svg의 path를 커스텀으로 만들고 싶은 생각이 들었습니다. 아직 svg 로딩 강좌 섹션은 보지 못했는데, 혹시 인터렉티브 로드맵 중 svg강좌를 들으면, path를 만들 수 있는 힌트를 얻을 수 있을까요? 예를 들어 '안녕하세요 반갑습니다' 라는 svg를 브라우저 스크롤 하면서 하나씩 그려내고 싶습니다.#질문2. 3번째 섹션, 이미지프레임과 fixed된 텍스트들을 서로 싱크를 맞추려면, 어떻게 한땀한땀 해야할까요?강좌에서 공부한 스크립트와 마크업/스타일을 바탕으로, 새로운 애니메이션을 만들때, 이미지/비디오 프레임과 fixed된 텍스트를 서로 싱크 맞추는 요령? 방법?이 무엇이 있을까요? 혹시 이미지 애니메이션을 완성하고, 수작업으로 텍스트의 fixed위치를 변경하면서, 수치를 정하는건가요?