안녕하세요. 어제부터 DeepingSauce님 로드맵을 갓 시작한 코린이 입니다. 금일 강의를 전부 결재하고 시작점에 섰는데 확인해보니 공부 환경상 Jupyter lab 활용이 불가능 하여 두가지 질문 드립니다. Colab 활용 가능성 수강 환경상 Jupyter Notebook은 쓸 수 있지만 Jupyter Lab의 사용이 불가능합니다. 그래서 Colab을 사용해볼까 하는데, 수업 진행에 무리가 없을런지 질문 드립니다. (수업내용을 보니 Jupyter에 Extention까지 설치해서 사용하던데 Colab이 해당 기능들을 다 지원할지 모르겠습니다.) Colab 설치 및 세팅방법 Colab이 활용 가능하다면 선생님 수업을 위해 (Jupyter Lab에서 했듯이) Colab의 설치 및 세팅방법도 알고 싶습니다. 혹시 가능하다면 안내 부탁 드립니다. 아는 지식이 짧아 있는 그대로 질문 드립니다.
안녕하세요~ 덕분에 클린 아키텍쳐 구조 잘 공부했습니다. 혹시 의존성 주입부분에서 질문이 있습니다. 제가 개인적으로 연습을 하면서 클린 아키텍쳐를 적용하고 있습니다. /di/provider_setup.dart 에서 한번에 의존성 주입 List<ChangeNotifierProvider> getProviders() { final dio = Dio(); SongRepository repository = SongRepository(dio); UseCases useCases = UseCases( getSearchSong: GetSearchSongUseCase(repository: repository), getSearchSinger: GetSearchSingerUseCase(repository: repository), getRecentlySongsList: GetRecentlySongsListUseCase(repository:repository), ); SearchViewModel searchViewModel = SearchViewModel(useCases: useCases); HomeViewModel homeViewModel = HomeViewModel(useCases: useCases); return [ ChangeNotifierProvider(create: (_) => searchViewModel), ChangeNotifierProvider(create: (_) => homeViewModel), ]; } main 에서 주입 void main() { // provider 호출 final providers = getProviders(); runApp( MultiProvider( providers: providers, child: const MyApp(), ), ); } context.watch <SearchViewModel>(); 은 잘 작동해서 뷰에 출력을 잘 하고있습니다. class _SearchScreenState extends State<SearchScreen> { @override Widget build(BuildContext context) { final searchViewModel = context.watch<SearchViewModel>(); final state = searchViewModel.state; ... } context.watch <HomeViewModel>();은 에러가 발생합니다. class _Body extends StatelessWidget { const _Body({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final homeViewModel = context.watch<HomeViewModel>(); final state = homeViewModel.state; ... } 에러내용 ======== Exception caught by widgets library ======================================================= The following ProviderNotFoundException was thrown building _Body(dirty): Error: Could not find the correct Provider<HomeViewModel> above this _Body Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of the provider you are trying to read. Make sure that _Body is under your MultiProvider/Provider<HomeViewModel>. This usually happens when you are creating a provider and trying to read it immediately. For example, instead of: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } ``` consider using `builder` like so: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } ``` If none of these solutions work, consider asking for help on StackOverflow: https://stackoverflow.com/questions/tagged/flutter The relevant error-causing widget was: When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 WatchContext.watch (package:provider/src/provider.dart:693:21) #3 _Body.build (package:what_do_you_want_to_sing/presentation/home/home_screen.dart:79:35) #4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4949:49) #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15) #6 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5) #7 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:19) #8 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21) #9 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5) #10 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15) #11 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9) #12 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:881:7) (elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch) 저번에 이런 에러가 발생했을때, 의존성 주입이 안된 상태에서 context.watch() 를 해서 오류가 나 의존성을 추가해 해결했습니다. 하지만 이번에는 잘모르겠습니다. 의존성도 잘 주입되어서 view 단에서 잘 호출 하고 있는거 같은데.. 어떻게 해결해야할까요?
a = {'Phone': '01095136634', 'birth': '910904', 'adress': 'Busan', 'rank': [1, 2, 3], 'test': 'test_dict'} a라는 딕셔너리에서 910904라는 value값을 통해 key 값을 찾아서 출력 하고 싶습니다. 제가 생각 해낸 방법은 딕셔너리에는 순서가 없음으로 리스트로 형 변환을 하여 해당하는 인덱스를 불러오는 방법을 사용했습니다. print(list(a.keys())[list(a.values()).index('910904')]) 이거보다 더 효율적이고 간결한 방법이 있을 가요?
unittest 기반의 Unit Test시 Celery 혹은 ProcessPoolExecutor을 이용하면 해당 Context에서 DB 접근 시, Test DB를 참조 하는 것이 아니라 settings의 Default로 설정해놓은 Exist DB에 접근하는 이슈가 있더군요. 해당하는 경우 어떻게 해야 Test DB로 붙어서 작업할 수 있을까요? with concurrent.futures.ProcessPoolExecutor() as executor:
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
stream강의 처음코드에선 controller라는 변수에 streamcontroller()를 할당해주고 stream이라는 변수에 controller.stream을 할당해주고나서 stream을 사용할수있었는데요. 두번쨰 calculate 코드에선 해당작업을 하지않고도 listen을 할수있더라고요. 이 이유는 무엇인가요?? 또한 첫코드에선 broadcaststream을 사용해야 여러번 리슨할수있다고 하셨는데 두번째 calculate코드에서 제가 임의로 playcalculate().listen(( val ) {print('$ val ');}); 스테이트먼트를 두개만들어서 시험해봤을땐 broadcaststream과 같은 기능을 하더군요. 이는 Stream<int> playasync()async*{ yield* claculate(1); yield* claculate(1000); } 처럼 stream<>데이터타입을 가진 함수를 만들게되면 dynamic처럼 Single subscription streams와 Broadcas streams 어떤 종류로 써도 무방하게 만들어진것인가요??
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
서버쪽 bearer-token.guard.ts 쪽에서 토큰으로 유저정보 만드는 부분에 아래처럼 sub으로 유저정보를 검색하는데 sub이 user id이더라구요.. 그래서 user 값이 제대로 조회가 안되서 에러가 발생했었습니다. request.user = await this.userService.findByUsername(payload.sub); 일단 payload.username 으로 검색하게 하니 잘되는것 같습니다~
강의대로 인스타그램 클론까지 작성후 앱을 실행해서 테스트를 진행하려고하는데 앱[Flutter]아이콘이 안보입니다.. 혹시몰라서 강의목차중 '안드로이드 에뮬레이터 설치 및 데모 앱 실행' 강의를 듣고 따라해보니 화면이 다르게 보입니다. 강의 화면은 데모앱이 실행되는데 제화면은 안드로이드가 실행되어버리며 강의에 나오는 앱[Flutter]아이콘이 안보입니다. *환경 : Windows 프로그램 : 안드로이드 스튜디오 *에뮬레이터 실행후 상단에서 선택후 실행시 아래와 같은 오류가 발생하네요..
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
인녕하세요 안드로이드 라이센스 추가시 오류가 나는데 해결방법 문의드립니다 기존에 c:/app/ 경로에 안드로이드 스튜디오가 깔려있었는데요 xl예물레이터는 실행시 오류가나서 일단 다른 디바이스로 실행 시켰습니다. 문의내용: 안드로이드 라이센스 추가시 오류 1.sdk 매니저에서 영상에 나온 항목 설치 ( Android SDK Command-line Tools 등등) 2.환경변수 설정 위 두가지 내용들 다 적용된것도 확인했는데 해결방법을 모르겠습니다 확인해봐야할 부분 알려주시면 감사하겠습니다
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
코드를 그대로 따라하면서 작성했는데 이상하게도 영상 마지막 부분에서 나온 웹사이트를 통해서 시도해보면 채널 참가 첫 1회시에만 기능하고 채널 나가기를 누른 후 다시 참여할때는 emulator에서 아무리 기다려도 채널에 유저가 없습니다 가 뜹니다. 이유를 찾으려고 해봤지만,, 쉽지 않네요...
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
client 쪽에서는 에러가 안나지만 server 쪽에서 데이터는 잘 받지만 Error: DataSource is not set for this entity. 나네요. 백엔드쪽은 익숙하지가 않아 구글링을 해봐도 어디서 에러가 나는지 잘 모르겠습니다. 게시판에 유사한 글이 있긴 하지만 해결책을 안되어 문의 드려요. AppDataSource는 이렇게 되어있습니다. 제 깃 주소는 https://github.com/ssinking91/Reddit 입니다. 이 버그 너무 해결하고 싶습니다. 감사합니다. 임시방편으로 모든 entity를 불러와 AppDataSource의 entities경로로 넣어 줬습니다. 혹시 에러나시는 분들 임시방편으로 이렇게 해주시면 잘 됩니다. import "reflect-metadata"; import { DataSource } from "typeorm"; import User from "./entities/User"; import Post from "./entities/Post"; import Sub from "./entities/Sub"; import Comment from "./entities/Comment"; import Vote from "./entities/Vote"; export const AppDataSource = new DataSource({ type: "postgres", host: "localhost", port: 5432, username: "postgres", password: "password", database: "postgres", synchronize: true, logging: false, // entities: ["src/entities/**/*.ts"], entities: [User, Post, Sub, Comment, Vote], migrations: [], subscribers: [], });
Redux Toolkit을 써보고 싶은데 고민이 생겼습니다. 제로초 님이 실무에서 리덕스 할 떄 Saga를 더 잘 쓰셨다고 말씀하셨던 거 같습니다. 근데 Redux Toolkit을 쓰려면 Thunk를 쓰는 게 더 편할 거 같은데 어떻게 생각하시나요?? 그리고 이미 Saga를 열심히 배워놨고 익숙해 졌는데 Toolkit를 쓰려고 Thunk로 다시 돌아가야 된다는 게 조금 배웠던 시간이 아깝기도 하고 고민중입니다. 물론 둘 다 동일한 비동기 요청을 하는 기능을 하는 것이지만 배우고 있는 입장에서는 고민이네요. 제로초 님은 Redux Toolkit 쓸 때에도 Saga를 같이 쓰시는 편인가요? +인피니트 스크롤링을 구현할때의 경우도 생각을 해봐야 될 거 같은데, 이부분은 강의를 끝까지 안 들어봐서 어떤 결정이 나을지 모르겠네요
수업 잘 듣고 있습니다. 자동화를 하고 싶으서 예전 영상 보다가 최근에 다시 올라와서 보는 중 강의 발견하고 바로 수강해서 듣고 있습니다. 궁금한 것이 하나 있는데요. 셀레니움에서 하나의 윈도우 창의 특정 태그 값을 찾아서 다른 윈도우 창을 오픈 한 후 특정 필드에 값을 넣을 수 있나요?