묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.mv.db 삭제 방법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 버전을 최신 버전으로 다운받아서 강의자료에 있는 1.4.00 버전으로 다시 다운을 받았는데요, test.mv.db 파일을 삭제해야 한다고 하셔서 해보는데 윈도우라 어떻게 하는건지 모르겠습니다...ㅠㅠdir /w로 검색해서이렇게는 나왔는데 rm test.mv.db 또는 윈도우는 rmdir test.mv.db로 지우는게 아닌가요?이렇게 나오고 삭제가 되지 않는데 삭제 방법이 궁금합니다ㅠ
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
vi /etc/sysconfig/docker 하면 new File만 나와요
이거 왜이럴까요..??
-
미해결데이터 분석 SQL Fundamentals
Dbeaver 실행시 꼭 Postgres 실행이 된 상태여야하나요?
안녕하세요! Dbeaver 실행시 꼭 Postgres 실행이 된 상태여야 하는지 궁금합니다..! 왠지 컴퓨터가 느려지는 것 같아서요ㅠㅠ
-
해결됨디자인 시스템 with 피그마
컴포넌트를 리액트기반 코드로 추출하는 법
디자인시스템을 json코드로 추출이 가능한대혹시 컴포넌트를 코드로 추출하는 방법이 없을까요?overlay플러그인을 이용해봤는데 생각보다 오류가 많아서 혹시나 하여 여쭈어봅니다ㅠㅠ
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
생성한 변수 hm 미사용 & 미치는 영향
스프링 MVC 2편 중 섹션 7. 로그인 처리2 - 필터, 인터셉터의 '스프링 인터셉터 - 요청 로그' 강의 11:09쯤에 코드 중 다음과 같은 코드가 있는데요. if(handler instanceof HandlerMethod){HandlerMethod hm = (HandlerMethod) handler;}위와 같이 만든 hm이라는 변수를 사용하지 않는데 만드는 이유가 뭔지, 왜 캐스팅해서 무엇을 보여주고자 하는지 모르겠습니다.바로 밑에 로그에 출력하는 handler에 영향을 주나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
수업 순서에 질문있습니다.
섹션1,2,3을 마친 학생입니다.섹션4인 react를 시작하다보니 버전도 안맞고 혼자 헤매다 보니까섹션23부터 다시 react파트부터 리뉴얼 되었더라구요섹션1,2,3을 마쳤다면섹션3~섹션22까지 뛰어넘고 23부터 들으면 되는건가요?그렇게 하는게 맞다면 진도에 의한 수료증은 어떻게 받을수 있나요?
-
미해결5개 거래소별 코인차익알림봇, 구체적인 개발 가이드 with Python
이벤트 참여 !
이벤트 참여 ! 참고해서 더 발전하고 싶어요 !
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
react-hook-form으로 기본값 설정하기
안녕하세요 지금 section31과제를 진행하고 있습니다.제가 지금 useForm으로 포트폴리오 과제를 진행하고 있는데 초기값 설정하는 데 어려움이 있습니다현재 useForm이 가지고 있는 defalutValues속성으로 기본값을 설정하는데 console에서는 data값이 찍히는데 defaltValues에서는 undefined값으로 나옵니다.변수가 먼저 선언되고 값이 할당이 안되는 걸까요?useForm에서는 기본값을 어떻게 설정해야 하는걸까요?useForm을 사용하기 시작했는데, 점점 벅찬거같아요... 이제라도 input으로 변경해야할까요..export default function BoardWriteUI({isEdit, data, onSubmitCreate, onSubmitUpdate, onClickMoveToBack}) { console.log(data) const {register,watch, formState : {errors, isValid}, handleSubmit} = useForm({ mode : 'onSubmit', defaultValues : { writer : data?.fetchBoard.writer, password : "", title : data?.fetchBoard?.title, contents : data?.fetchBoard?.contents, } });
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
11. 임시반장정하기 질문 있습니다.
아래의 3중 for문에 print문을 넣어서 실행해보면 자기자신과 같은 경우도 포함되어 if문에 들어가게 되는데, 그렇게 해서 count에 1이 더해지는 것은 잘못된 로직 아닌가요? 그렇다면 3중 for문 안의 if문 조건에 i != j 를 포함시켜야 맞지 않을까요? public int solution(int n, int[][] arr) { int answer = 0; int max = Integer.MIN_VALUE; for (int i = 1; i <= n; i++) { // i번 학생 int count = 0; for (int j = 1; j <= n; j++) { // j번 학생 for (int k = 1; k <= 5; k++) { // k : 학년 if (arr[i][k] == arr[j][k]) { System.out.println("arr[" + i + "][" + k + "] = " + arr[i][k] + " / arr[" + j + "][" + k + "] = " + arr[j][k]); count++; System.out.println("count : " + count); System.out.println(); break; } } } if (count > max) { max = count; answer = i; } } return answer; }
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
gorouter 7 버전 상세화면 이동 오류
안녕하세요강의 실습 중 오류가 발생해서 도움을 요청드립니다현재 개발 중인 환경은 윈도우에서 안드로이드 시뮬레이터로 진행 중이며 IDE 는 인텔리제이를 사용하고 있고 gorouter 7.0.1 버전을 사용해서 실습을 하고 있습니다GoRouter 설정 부분은 7.0.1 버전 실습 강좌를 참고해서 변경했고 정상적으로 로그인 및 스플래시 스크린까지 동작을 했습니다.레스토랑 리스트에서 레스토랑 상세화면으로 이동하는 부분을 실습 중 오류가 발생합니다첫번째. context에서 gorouter 관련 메소드가 자동완성이 안되며 실제로 동작도 하지 않습니다.두번째. context.named() ,context.go() 둘 다 아래와 같은 오류가 나타납니다 레스토랑 스크린import 'package:actual/common/component/pagination_list_view.dart'; import 'package:actual/restaurant/component/restaurant_card.dart'; import 'package:actual/restaurant/provider/restaurant_provider.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; // 미사로 나옵니다 class RestaurantScreen extends StatelessWidget { const RestaurantScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return PaginationListView( provider: restaurantProvider, itemBuilder: <RestaurantModel>(context, index, model) { return GestureDetector( onTap: () { context.go("/restaurant/${model.id}"); }, child: RestaurantCard.fromModel(model: model), ); }, ); } } 레스토랑 디테일 스크린import 'package:actual/common/layout/default_layout.dart'; import 'package:actual/common/model/cursor_pagination_model.dart'; import 'package:actual/common/utils/pagination_utils.dart'; import 'package:actual/product/componet/product_card.dart'; import 'package:actual/rating/component/rating_card.dart'; import 'package:actual/rating/model/rating_model.dart'; import 'package:actual/restaurant/component/restaurant_card.dart'; import 'package:actual/restaurant/model/restaurant_detail_model.dart'; import 'package:actual/restaurant/model/restaurant_model.dart'; import 'package:actual/restaurant/provider/restaurant_provider.dart'; import 'package:actual/restaurant/provider/restaurant_rating_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:skeletons/skeletons.dart'; class RestaurantDetailScreen extends ConsumerStatefulWidget { static String get routeName => "restaurantDetail"; final String id; const RestaurantDetailScreen({required this.id, Key? key}) : super(key: key); @override ConsumerState<RestaurantDetailScreen> createState() => _RestaurantDetailScreenState(); } class _RestaurantDetailScreenState extends ConsumerState<RestaurantDetailScreen> { final ScrollController controller = ScrollController(); @override void initState() { super.initState(); ref.read(restaurantProvider.notifier).getDetail(id: widget.id); controller.addListener(listener); } void listener(){ PaginationUtils.paginate(controller: controller, provider: ref.read(restaurantRatingProvider(widget.id).notifier)); } @override Widget build(BuildContext context) { final state = ref.watch(restaurantDetailProvider(widget.id)); final ratingsState = ref.watch(restaurantRatingProvider(widget.id)); print(ratingsState); if (state == null) { return DefaultLayout( child: Center( child: CircularProgressIndicator(), ), ); } return DefaultLayout( title: "제목", child: CustomScrollView( controller: controller, slivers: [ renderTop( model: state, ), if (state is! RestaurantDetailModel) renderLoading(), if (state is RestaurantDetailModel) renderLabel(), if (state is RestaurantDetailModel) renderProducts(products: state.products), if (ratingsState is CursorPagination<RatingModel>) renderRatings( models: ratingsState.data, ), ], ), ); } SliverToBoxAdapter renderTop({ required RestaurantModel model, }) { // 일반 위젯 넣기 return SliverToBoxAdapter( child: RestaurantCard.fromModel(model: model, isDetail: true), ); } SliverPadding renderRatings({ required List<RatingModel> models, }) { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 16.0), sliver: SliverList( delegate: SliverChildBuilderDelegate( (_, index) => Padding( padding: const EdgeInsets.only(bottom: 16.0), child: RatingCard.fromModel( model: models[index], ), ), childCount: models.length, ), ), ); } SliverPadding renderLoading() { return SliverPadding( padding: EdgeInsets.symmetric( vertical: 16.0, horizontal: 16.0, ), sliver: SliverList( delegate: SliverChildListDelegate( List.generate( 3, (index) => Padding( padding: const EdgeInsets.only(bottom: 32.0), child: SkeletonParagraph( style: SkeletonParagraphStyle( lines: 5, padding: EdgeInsets.zero, ), ), ), ), ), ), ); } SliverPadding renderLabel() { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0), sliver: SliverToBoxAdapter( child: Text( "메뉴", style: TextStyle( fontSize: 18.0, fontWeight: FontWeight.w500, ), ), ), ); } SliverPadding renderProducts({ required List<RestaurantProductModel> products, }) { return SliverPadding( padding: EdgeInsets.symmetric(horizontal: 16.0), sliver: SliverList( delegate: SliverChildBuilderDelegate( (context, index) { final model = products[index]; return Padding( padding: const EdgeInsets.only(top: 16.0), child: ProductCard.fromRestaurantProductModel(model: model), ); }, childCount: products.length, ), ), ); } } 라우터 설정부분 (auth_provider.dart)List<GoRoute> get routes => [ GoRoute( path: "/", name: RootTab.routeName, builder: (_, state) => RootTab(), routes: [ GoRoute( path: "restaurant/:rid", name: RestaurantDetailScreen.routeName, builder: (_, state) => RestaurantDetailScreen( id: state.pathParameters['rid']!, ), ), ], ), GoRoute( path: "/splash", name: SplashScreen.routeName, builder: (_, state) => SplashScreen(), ), GoRoute( path: "/login", name: LoginScreen.routeName, builder: (_, state) => LoginScreen(), ), ]; 메인import 'package:actual/common/provider/go_router.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; void main() { runApp( ProviderScope( child: _App(), ), ); } class _App extends ConsumerWidget { const _App({Key? key}) : super(key: key); // 라우팅시 BuildContext 사용하기 위한 구조 @override Widget build(BuildContext context, WidgetRef ref) { final router = ref.watch(routerProvider); return MaterialApp.router( theme: ThemeData( fontFamily: "NotoSans", ), debugShowCheckedModeBanner: false, routerConfig: router, ); } } 라우트 프로바이더 (go_router. dart)import 'package:actual/user/provider/auth_provider.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; final routerProvider = Provider<GoRouter>((ref) { final provider = ref.read(authProvider); return GoRouter( routes: provider.routes, initialLocation: "/splash", refreshListenable: provider, redirect: (context, state) { return provider.redirectLogic(state); }, ); }); 오류 로그======== Exception caught by gesture =============================================================== The following NoSuchMethodError was thrown while handling a gesture: Class 'ConsumerStatefulElement' has no instance method 'go'. Receiver: Instance of 'ConsumerStatefulElement' Tried calling: go("/restaurant/5ac83bfb-f2b5-55f4-be3c-564be3f01a5b") When the exception was thrown, this was the stack: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5) #1 RestaurantScreen.build.<anonymous closure>.<anonymous closure> (package:actual/restaurant/view/restaurant_screen.dart:17:21) #2 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:275:24) #3 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:654:11) #4 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:311:5) #5 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:281:7) #6 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:167:27) #7 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:469:20) #8 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:445:22) #9 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:331:11) #10 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:400:7) #11 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:363:5) #12 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:320:7) #13 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:293:9) #14 _invoke1 (dart:ui/hooks.dart:158:13) #15 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:382:7) #16 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:31) Handler: "onTap" Recognizer: TapGestureRecognizer#cc27d debugOwner: GestureDetector state: ready won arena finalPosition: Offset(158.8, 246.5) finalLocalPosition: Offset(142.8, 190.5) button: 1 sent tap down ==================================================================================================== F/crash_dump32(30915): crash_dump.cpp:474] failed to attach to thread 188: Permission denied
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 루키스님. 클라 연동에 관해서 질문을 드리고 싶습니다.
안녕하세요 루키스님.제가 비쥬얼 스튜디오에서 윈도우 어플리케이션을 만들어서 DX11포폴을 만들고 서버를 연동하려고 시도중입니다. 이 상황에서 wWinMain에 ClientServiceRef service = MakeShared<ClientService>( NetAddress(L"127.0.0.1", 7777), MakeShared<IocpCore>(), MakeShared<ServerSession>, // TODO : SessionManager 등 1); ASSERT_CRASH(service->Start()); GThreadManager->SetFlags(1); for (int32 i = 0; i < 2; i++) { GThreadManager->Launch([=]() { while (true) { service->GetIocpCore()->Dispatch(10); } }); } //밑은 DX11을 작동시켜주기 위한 함수들입니다. while (true) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (WM_QUIT == msg.message) break; if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } else { CEngine::GetInst()->progress(); CEditorObjMgr::GetInst()->progress(); ImGuiMgr::GetInst()->progress(); // 렌더 종료 CDevice::GetInst()->Present(); } }이렇게 쓰레드를 생성해서 작동을 시켜주었습니다.그런데 생성된 게임 윈도우에서 X키를 눌러서 프로그램을 강제로 종료시켰는데, 이 메인 쓰레드 자체는 정상적으로 WM_DESTROY를 호출 받아서 종료되었는데, 멀티 쓰레드들이 멈추지 않고 계속 돌아 프로그램이 종료되지 않고, 좀비처럼 살아남는 현상이 계속되고 있습니다.쓰레드를 강제로 종료시키니 메모리 릭이 남고, 어떻게 문제를 해결해야할지 해결책을 찾지 못해서 이렇게 질문 남깁니다.참고) 루키스님의 패킷 직렬화#3 코드를 참조해서 만들고 있습니다!감사합니다.
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Atom 서비스 종료 되었으니 vs code로 하면 되는거죠??
우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original) 과목을 수강하려 하는데 영상이 오래되어서 그런지 아톰으로 설명하시네요 vs code 쓰면 되는거죠??
-
미해결JSP WEB MVC Model2 Programming(중급 과정)
강의가 완강이안된것같은데 미완된부분 다른강사님이라도 촬영해주실수없나요?
강의구성을 보니까 게시판 crud까지만 강의하고 해당강사님께서 계약만료로 하차하신것같은데... 너무아쉽습니다. 많이 쓰이는게 model2방식인데 중간에 강의흐름이 끊겨서... 혹시 소프트캠퍼스의 다른강사님꼐서 원래 예정했던 커리큐럼중 빠진 뒷부분을 완성해주실수없으신지?
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
좋은 UX/UI 사례 분석 과제 - 유튜브
주제: 유튜브 - 재생 목록 내 영상 시청 화면의 UX/UI 분석분석 배경: 재생 목록 요소가 같이 보이게끔 유튜브 영상을 시청한 적이 있습니다. 소소하지만 현 상태를 나타내는 UI 아이콘이 눈에 띄었고, (우측 재생 목록 요소 내, 재생 중 애니메이션과 좋아요 버튼이 표시됨) 사용자를 위한 세심한 배려로써 느껴져 좋은 경험을 받았던 것 같습니다. 또한 수업에서 배운 원리들도 몇 가지 보여 분석하면 좋겠다고 생각했습니다.좋은 UX/UI 사례1. 일관적인 재생 목록: 재생 목록 내 UI 요소들이 동일하게 디자인 되어 있습니다. 사용자는 재생 목록을 스크롤하여 올리거나 내리면서 이전/이후 목록 확인이 가능한 것을 쉽게 예측할 수 있습니다. 2. 재생 영상과 재생 목록 별 유사성의 원리:왼쪽의 경우 현재 재생중 영상이 전체 화면의 80% 채웠고, 나머지 부분은 재생목록으로 표시되어 있습니다. 화면상의 비율뿐 아니라 각각 제공되는 기능이 다르기에 UI상에서도 차이가 보입니다.사용자는 재생 영상 혹은 재생 목록 관련 영역을 구분하여 필요한 기능을 찾아갈 수 있습니다.3. 현재 상태를 알려주는 UI:왼쪽 재생 영상이 실제로 재생중이라면 우측 재생목록에서는 재생중 애니메이션이, 좋아요 버튼을 눌렀다면 해당 아이콘이 표시됩니다. 사용자는 현 영상 상태를 UI 상에서 확인 가능합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ConflictingBeanDefinitionException
질문:ConflictingBeanDefinitionException 을 왜 import 할 수 없는건가요? 사례:자동 빈 등록 vs 자동 빈 등록에 대해서 아래와 같이 테스트 코드를 작성해서ConflictingBeanDefinitionException 예외를 발생시키는지 검증하는 테스트 코드를 작성해보았습니다그런데 아래와 같이 ConflictingBeanDefinitionException 을 찾을 수 없다고 오류가 발생하였습니다.자동 import가 안되길래 검색을 통해서 경로를 찾아서 직접 아래와 같이 임포트 하였습니다.그런데 여전히 import가 되지를 않는데 어떤 문제가 있나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
content부분 초기화가 되지않아 질문 남깁니다!
안녕하세요 강사님 :)강의 수강 중, author, emotion부분은 저장 이후 초기화가 되나, content부분은 초기화가 되지 않습니다! 🥲 아무리 오타 있나...확인을 해보고 ㅠ_ㅠ..어떤 오류가 있는건지 찾아아도 더 이상 모르겠어서 글을 남깁니다! 샌드박스 포크(?) 주소를 함께 남겨요. 감사합니다! https://codesandbox.io/s/chapt-2-forked-dc3sm8
-
미해결토비의 스프링 부트 - 이해와 원리
블로그 정리 문의
안녕하세요 토비님먼저 좋은 강의 만들어주셔서 감사드립니다.스프링의 기본부터 다시 배우고자 해당 강의를 신청하게 됐습니다. 다름이 아니라 혹시 강의 내용과 pdf 강의 자료를 제 블로그에 정리해서올려도 되는지 여쭙고자 글 남겨드렸습니다.다른 분들과 공유보다는 스스로 복습하는 용도로 글을 작성하는 목적이 크지만 인터넷에 올라오는 내용인 만큼 먼저 허락을 구하고자 합니다.(강의 내용과 강의 자료를 그대로 복붙하지는 않고 스스로 정리한 다음 포스팅 하고자 합니다.)최대한 지양하겠지만 필요하다면 pdf 파일 속 그림이나 사진을 올릴때도 있을것 같습니다.당연히 출처는 남기겠습니다.만약 불가하시다면 비공개 처리하여 공유 및 열람이 안 되도록 조치해놓겠습니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
logging과 print 차이 질문입니다..!
해당 강의에서 너무 수준 낮은 질문일지는 모르겠지만 너무너무 궁금해서요...!회사에서 모델개발을 하는데 logging모듈이 보여서 안그래도 찾아보고 있었는데 이 강의에 자주 등장하더라구요기본적으로 Logging 모듈이 디버그 할때 훨씬 편리하다는건 파악이 되었는데요 혹시 특별히 print를 쓰거나 logging 모듈을 쓰는 경우가 있을까요?예제파일 2-2에도 sub process 가 있는 proc_func 함수엔 print구문을 쓰시고, 메인 함수에는 logging 모듈을 사용하셨는데 특별한 이유가 있을까요?!
-
미해결[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)
Transformations 가 import가 안됩니다!!
현재 이 버전의 Lifecycle을 사용중인데 혹시Transfomations가 Unresolved reference 에러가나는 이유를 알 수 있을까요 ?implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
확장프로그램 질문입니다
강의 중 특정 모듈에 있는 함수를 클릭하면 해당 코드를 볼 수 있게 이동하는? 확장프로그램이 있는것 같은데 혹시 알 수 있을까요..?찾아봐도 못찾겠어서 여쭤봅니다...!