묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 3] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 2] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 1] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결Flutter 중급 1편 - 클린 아키텍처
Try implementing the missing methods, or make the class abstract. 문제해결 공유
---- freezed 3.0 선생님 강의 필독 ---동영상 보시면 됩니다.https://youtu.be/I-OdCNneoXQ?si=5Pop20gdzUyEByV3 답변 전 글class abstract 내용 공유드립니다. 환경dependencies:cupertino_icons: ^1.0.8provider: ^6.1.4sqflite: ^2.0.0+4json_annotation: ^4.9.0freezed_annotation: ^3.0.0sqflite_common_ffi: ^2.1.0dev_dependencies:flutter_lints: ^5.0.0json_serializable: ^6.9.4freezed: ^3.0.6build_runner: ^2.4.15 freezed: ^3.0.6작성이 변경되었습니다.내용 참고 바랍니다. class Note with _$Note {=> abstract class Note with _$Note { factory Note({=> const factory Note({ 위 내용 수정 후 진행해야 오류 안남flutter pub run build_runner build --delete-conflicting-outputs 기존 버전이라 힘들군요. ㅠㅠ *freezed 공식
-
미해결Flutter 중급 1편 - 클린 아키텍처
This is likely caused by a misconfigured builder definition. 오류 해결 방법
버전을 최신으로 마춰도 에러나는 경우 해결방법 공유합니다. 일단 선생님 환경은 현재 할수 없으므로 최신버전으로 마춰주시고 최신버전 의존성도 전부 완료되었는데도 안되는 경우는 아래 부분을 해보세요. 환경 샘플 플러터 3버전dependencies:provider: ^6.1.4sqflite: ^2.0.0+4json_annotation: ^4.9.0 →json 직렬화freezed_annotation: ^3.0.0 →불변 코드 생성dev_dependencies:json_serializable: ^6.9.3 → JSON 직렬화 및 역직렬화 자동 생성freezed: ^3.0.6 → 불변 객체 생성build_runner: ^2.4.15 → 코드 생성 도구 생성 패키지 실행 첫번째 방법1.컴퓨터 off on2.flutter clean3.flutter pub run build_runner build4.flutter pub run build_runner build --delete-conflicting-outputs4단계까지 안되면...5.신규 프로젝트 생성... 2번째 방법dependencies:provider: ^6.1.4sqflite: ^2.0.0+4json_annotation: ^4.9.0 →json 직렬화freezed_annotation: ^3.0.0 →불변 코드 생성analyzer: ^6.0.0 dev_dependencies:json_serializable: ^6.9.3 → JSON 직렬화 및 역직렬화 자동 생성freezed: ^3.0.6 → 불변 객체 생성build_runner: ^2.4.15 → 코드 생성 도구 생성 패키지 실행 낮은 버전으로 진행 후에 높은버전으로 진행했을때json_serializable에서 analyzer가 삭제가 제대로 안되서 문제가 되는 경우가 있는것 같습니다. 억지로 analyzer 맞추고 진행하고 되었을대analyzer을 제거하면 잘되었습니다. flutter 환경 세팅은 어렵군요...시간 낭비 안되도록 공유해봅니다. 에러내용: C:\project\flutter_cleancode\flutter_note_app> flutter pub run build_runner buildDeprecated. Use dart run instead.[INFO] Generating build script completed, took 326ms[WARNING] /C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:84:52: Error: The argument type 'ClassElement' can't be assigned to the parameter type 'InterfaceElementImpl'. - 'ClassElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/dart/element/element.dart'). - 'InterfaceElementImpl' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart'). for (final v in manager.getInheritedConcreteMap2(element).values) { ^/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:90:43: Error: The getter 'isGetter' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart').Try correcting the name to the name of an existing getter, or defining a getter or field named 'isGetter'. if (v is PropertyAccessorElement && v.isGetter) { ^^^^^^^^/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:91:16: Error: The getter 'variable2' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart').Try correcting the name to the name of an existing getter, or defining a getter or field named 'variable2'. assert(v.variable2 is FieldElement); ^^^^^^^^^/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/field_helpers.dart:92:26: Error: The getter 'variable2' isn't defined for the class 'ExecutableElementOrMember'. - 'ExecutableElementOrMember' is from 'package:analyzer/src/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/src/dart/element/element.dart').Try correcting the name to the name of an existing getter, or defining a getter or field named 'variable2'. final variable = v.variable2 as FieldElement; ^^^^^^^^^/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.9.4/lib/src/decode_helper.dart:65:23: Error: The getter 'augmented' isn't defined for the class 'ClassElement'. - 'ClassElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/Users/karyo/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-7.4.0/lib/dart/element/element.dart').Try correcting the name to the name of an existing getter, or defining a getter or field named 'augmented'. element.augmented ^^^^^^^^^[INFO] Precompiling build script... completed, took 880ms[SEVERE] Failed to precompile build script .dart_tool/build/entrypoint/build.dart.This is likely caused by a misconfigured builder definition.
-
해결됨앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
런타임 오류 - 조언 부탁드립니다.
안녕하세요. 강사님또다시 어려움이 생겨서 질문 드립니다.섹션19 의 Step #11 - CoreData를 수강하면서 질문 올립니다.시뮬레이터 iPhone 15 Pro로 진행했고요.컴파일 오류는 없는데 런타임 오류가 나서요.바쁘시겠지만 한번 봐 주시면 감사하겠습니다.
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
Task 클로저에서 weak self 미사용에 대해 질문드립니다!
양질의 강의 만들어주셔서 업무에 많이 도움이 될 것 같아 먼저 감사의 말씀 드립니다:)'Task(작업)과 self 사용 관련 및 캡처리스트의 weak self 사용 (5강)'에서 질문 드립니다. Task 클로저 내에서 weak self를 생략하더라도 메모리 누수 관점에서 문제가 없는 것은 이해가 되었습니다!다만, GCD를 Task로 전환하는 관점에서 생각해봤는데요 'self가 해제된 시점'에서 'weak self 사용'한 'GCD 클로저'에서는 내부 동작이 실행되지 않을 것 같은데요'self가 해제된 시점'에서 'weak self 미사용'한 'Task 클로저'에서는 내부 동작의 실행이 보장될 것 같은데 제가 이해한게 맞을지 궁금합니다!길지 않은 비동기 작업이더라도 미세하게 동작 차이가 발생할 수 있는 부분이 아닐까 싶어 질문 드렸습니다!
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-2)
안녕하세요. 액터 홉핑 관련 질문드립니다.
📌자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-2-1acbbab5ec9280a0944edcab00e027dd?pvs=4 자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다. [질문 예시](1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )(2) 강의자료 몇 페이지의 내용이 잘 이해가 안갑니다.(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요 안녕하세요. 실행자(executor)와 액터 홉핑(actor hopping)과 관련해 질문이 있어요. 액터에 실행자 개념까지 나오니 너무 헷갈리네요. 액터 홉핑이 일어나게 되면, 액터에 내장되어 있는 실행자(executor)가 전환되고, 이는 곧 액터에서 실행되는 스레드의 묶음이 바뀌는 것이니, (실행 컨텍스트는 물론) 스레드 컨텍스트 스위칭이 일어날 수 있다라고 보는 게 맞을까요? 메인 액터-일반 액터 간 홉핑은 메인 스레드와 협력형 스레드 풀 간의 전환이니, 실행 컨텍스트와 스레드 컨텍스트 전환이 무조건 일어나는 게 맞을까요? 일반 액터-일반 액터 간 홉핑은 모두 Swift 동시성이 기본으로 제공해주는 직렬 실행자(serial executor)에서 실행되고, 이 직렬 실행자는 협력형 스레드 풀에서 실행되는 것이니, 실행 컨텍스트 전환은 일어날 수 있어도 스레드 컨텍스트 스위칭은 일어날 수도 있고, 일어나지 않을수도 있다고 보는 게 맞을까요?(플레이그라운드에서 Thread.current로 찍어 실험을 해봤을 땐, 모두 동일한 스레드에서 실행되는 걸로 보입니다)
-
해결됨Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)
JSON_Decodable.playground에서 print문이 안찍히는 문제
JSON_Decodable.playground 에서 print 문이 안찍혀요
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
최신버전 firebase_ui_auth 할때 EmailAuthProvider 오류 잡는 방법
이메일 로그인 기능 구현 관련 변경된 라이브러리 사용시 auth_gate.dart 참고 import 'package:firebase_auth/firebase_auth.dart' hide EmailAuthProvider;import 'package:flutter/material.dart';import 'package:firebase_ui_auth/firebase_ui_auth.dart';import 'package:instagram_clone/tab/tab_page.dart';class AuthGate extends StatelessWidget { const AuthGate({super.key}); @override Widget build(BuildContext context) { return StreamBuilder<User?>( stream: FirebaseAuth.instance.authStateChanges(), builder: (context, snapshot) { // User is not signed in if (!snapshot.hasData) { return SignInScreen(providers: [EmailAuthProvider()]); } // Render your application if authenticated return const TabPage(); }, ); }}
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
업데이트 예정 강의 공개 일정이 궁금합니다.
안녕하세요.part1 강의에서 업데이트 예정 항목이 몇가지 있는데요. 해당 영상은 언제쯤 공개 되는지 궁금합니다. (업데이트) TaskGroup 실행함수 파라미터 추가 관련 업데이트 예정(업데이트 예정) 취소 핸들러 관련 내용 업데이트 예정 (API 업데이트)
-
미해결앨런 Swift Concurrency for Swift 6 (Part-1)
29강 async let 작업 취소 부분 질문
📌 자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-1-22eecb0b83154ac28c7c66446f6e54e1?pvs=4 자주하는 질문을 먼저 확인 부탁드리며, 질문은 최대한 구체적으로하셔야 빠르게 답변드릴 수 있습니다. [질문 예시](1) 몇강, 몇초의 내용이 잘 이해가 안갑니다. (제가 적어놓은 강의 번호 "10강, 7분 강의 내용 중에... " )(2) 강의자료 몇페이지의 내용이 잘 이해가 안갑니다.(3) 정확하게 어떤 포인트에 대한 내용이 이해가 안갑니다. 다시 설명해주실 수 있나요?29강 17:10 ~ 18:00 사이 내용에 질문이 있습니다.CASE2에서 배열이나 튜플로 구현하는 경우 취소 전파가 늦게 된다고 적혀있고 설명도 그렇게 해 주시는데, CASE1에 비해 취소 전파가 늦게 될 수 있다고 이해가 되는데요.CASE2는 CASE1에 비해 try await을 연달아서 사용하지 않아도 된다는 점만 다르고, 나열하는 순서대로 실행되는 동작 자체는 동일한것 같은데 두 case가 실제로 차이가 있는건가요? 두 case가 완전히 동일하게 동작하는 것 같은데 차이가 있는 것처럼 설명하시는것 같아서 제가 잘못 이해한 것인지 궁금합니다.
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
예전코드도 배워야 할까요?
안녕하세요, 강의를 듣다가 궁금한점 생겨 문의드리려 합니다.2023년 후로 대거 전체적으로 바뀌었다고 강의에서 배웠는데요.그러면 취업해서 유지보수도 필요하다고 하면 예전 코드도 전체적으로 마스터 해야 취업하는데 큰 도움이 되거나 또는 필수적으로 해야할까요?
-
해결됨앨런 Swift Concurrency for Swift 6 (Part-2)
재개될 때 스레드 변경시 왜 컨텍스트 스위칭이 발생하지 않는 건가요?
📌 자주하는 질문 모음링크: https://pointed-earwig-996.notion.site/Swift-Concurrency-for-Swift-6-Part-2-1acbbab5ec9280a0944edcab00e027dd?pvs=4안녕하세요. 몇 가지 궁금한점이 있어서 질문남겨요.part.1의 7강, 책 26페이지에서 멈췄다가 다시 실행될때 다른 쓰레드에서도 실행될 수 있다고 되어있는데요.우선 제가 이해한 것은기존의 프로세스(앱)하나당 여러개로 나뉘어서 쓰던 쓰레드가 CPU-프로세스-쓰레드 각 하나씩으로 연결로 바뀌었다.하나의 쓰레드에서 멈췄다 재개했다를 반복하며 재개 전까지 다른 일을 처리할 수 있게 됐다.그래서 프로세스 내부에서 일어나던 컨텍스트 스위칭이 없어졌다.제가 헷갈리는 부분은 아래와 같아요.현재강의 3:15에 보면 한 쓰레드에서 멈췄다 재개했다 하며 중간에 다른 일도 처리하고 하는걸로 보여요. 그래서 컨텍스트 스위칭이 일어나지 않는다고 이해했어요. 그런데 다른쓰레드에서 재개되면 쓰레드가 바뀌는데 왜 컨텍스트 스위칭이 일어나지 않는 건가요?CPU당 하나씩 쓰레드를 가지게 되면 최대 동시 실행할 수 있는 앱은 CPU코어수 만큼으로 제한되나요?
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
Appium Studio Comman 작성 후 다시 실행 오류
Android 모바일 웹 테스트 강의를 듣고 테스트 케이스로 코드를 작성 후 다시 실행을 하면위 사진과 같은 에러가 발생합니다. 원인이 무엇일까요?
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
Appium Studio Emulator 연결 오류
환경 변수 설정, 에뮬레이터 실행 모두 강의와 동일하게 진행했음에도 Appium Studio에서 에뮬레이터 디바이스 추가가 되지 않고 있습니다. 원인이 무엇일까요?
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
Apppim Studio 시작 후 리포트 생성
Appium Studio 실행 후 생성되는 리포트가 위 사진과 같이 index.html 로 생성되는데,Android - 모바일 웹 테스트 강의에서처럼 바로 웹 브라우저에서 실행되도록 하려면 어떻게 설정해야 할까요?
-
해결됨쉬운 모바일 테스트 자동화 시작하기 : Appium Studio
Appium Studio 다운로드 주소
Appium Studio 다운로드는 https://digital.ai/products/continuous-testing/appium-studio/free-trial/ 아래 링크에서 진행하면 될까요?
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
ProfileView에서 toolbar이용시 문제점 발생, 로직이 이해가 되지 않습니다.
var body: some View { NavigationStack { ScrollView { } } .navigationBarBackButtonHidden() .toolbar { ToolbarItem(placement: .topBarLeading) { Button { dismiss() } label: { Image(systemName: "arrow.backward") .tint(.black) } } } //:TOOLBAR위와 같이 ProfileView에서 body를 정의하셨는데,NavigationStack에 toolbar가 항상 나타나는 것으로 이해가 됩니다.그렇다면, 앱을 실행하고 바로 Profile tab을 누른다면, .toolbar가 자동으로 생성되면서 dismiss()가 작동하지 않는 toolbar가 생기는 상황이 발생했습니다.다시 FeedView로 돌아가면 기존 toolbar는 없어지지 않은채로 "<- : arrow.backward" 가 나타나고,FeedView에서 .overlay { } 로 정의된 NavigationLink를 클릭한다면 toolbar가 두개 생기는 것을 확인할 수 있었습니다. 두 개중 위의 버튼은 작동하지 않으며, 아래의 버튼을 누르면 dismiss()가 작동하여 Stack에 쌓인 ProfileView가 없어지면서 FeedView로 돌아가는 것을 확인할 수 있었습니다. 상황에 따라 toolbar가 보일 수 있도록 따로 설정을 해야하는 것일까요?다시 말해, ProfileView를 Profile을 tab하여 이동하는 경우는 .toolbar가 나타나지 않도록 해야하는 걸까요?
-
미해결앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스
Playground 실행중 오류
안녕하세요. 강사님너무나 강의를 잘 듣고 있습니다.알찬 강의 감사드립니다.요즘에 강의 중에 playground에서 실습하는 내용이 있어서 playground에서 실습을 하면 이상한게 떠서 문의 드립니다.그리고 아울러 import 구문에 UIKit을 import하면 오류가 나고 Foundation으로 하면 오류가 나지 않네요..왜 그런건지도 알고 싶습니다. Xcode를 재실행도 해보고, 맥도 재실행 해봐도 마찬가지입니다.읽어주셔서 감사합니다.