학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Joincolumn의 name속성은 그저 member테이블의 조인컬럼의 컬럼명을 지정하는것뿐 team과 매핑하는것과는 관련이없다. member와 team을 연관관계맺는것은 referencedColumnName속성이 하지만 이것을 생략하면 자동으로 team의 pk값으로 연관관계를 맺어줘서 생략한다. 이게 맞을까요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. WebView 실행 시 시뮬레이터가 빈화면으로만 나옵니다. 그래서 블로그 말고 m.naver.com으로 하면 네이버 화면은 나오는데, 블로그만 뜨질 않습니다. 구글링을 해서 플러그인도 써보았지만 안되서 방안을 요청드립니다. 해결방안이 있을까요? 원격지원도 가능하실까요?
안녕하세요. 강의를 따라 오던 중 복수의 이미지 리스트 List<String>으로 업로드하고 또 읽어올 수 있을지 궁금증이 생겨 테스트를 하던 중 도저히 해결되지 않은 문제가 있어 질문 올립니다.(업로드는 성공했습니다.) 현재 강의 코드에서 imageUrl 만 String 에서 List<String> 으로 바꿔 아래와 같이 수정했습니다. class Post { String id; String userId; String title; List<String> imageUrls; Post({ required this.id, required this.userId, required this.title, required this.imageUrls, }); factory Post.fromJson(Map<String, dynamic> json) { return Post( id: json['id'] as String, userId: json['userId'] as String, title: json['title'] as String, imageUrls: json['imageUrls'] as List<String>, ); } Map<String, dynamic> toJson() { return { 'id': id, 'userId': userId, 'title': title, 'imageUrls': imageUrls, }; } } 여기까진 문제가 없었는데, firestore에서 데이터를 불러와 List<Post>로 가공하는 부분에서 아래와 같이 에러가 발생하고 있습니다. List<Post> posts = snapshot.data!.docs.map((el) => el.data()).toList(); // type 'List<dynamic>' is not a subtype of type 'List<String>' in type cast 다음처럼 fromJson 함수를 수정해보려 했는데 해결되지 않아 질문합니다 ㅠㅠ 해결 방법이 있을까요?? import 'dart:convert'; // ... class Post { // ... factory Post.fromJson(Map<String, dynamic> jsonData) { final imageUrls = json.decode(jsonData['imageUrls']).cast<String>().toList(); return Post( id: jsonData['id'] as String, userId: jsonData['userId'] as String, title: jsonData['title'] as String, imageUrls: imageUrls, ); } (위와 같이 수정하면 type 'List<dynamic>' is not a subtype of type 'String' 이런 에러 메세지가 뜹니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
OOP 강의에서 상속 공부하던 중 의문이 생겨 질문 드립니다. void main() { print('-------------Idol-------------'); Idol apink = Idol(name: "에이핑크", members_count: 5); apink.say_name(); apink.say_members_count(); // apink.say_male(); - 이건 X print('-------------boy_group-------------'); boy_group bts = boy_group('bts',7); bts.say_name(); bts.say_members_count(); bts.say_male(); print('-------------girl_group-------------'); girl_group red_velvet = girl_group('Red Velvet',5); red_velvet.say_name(); red_velvet.say_members_count(); red_velvet.say_female(); print('-------------type_comparison-------------'); print(apink is Idol); print(apink is boy_group); print(apink is girl_group); print('-------------type_comparison2-------------'); print(bts is Idol); print(bts is boy_group); print(bts is girl_group); print('-------------type_comparison3-------------'); print(red_velvet is Idol); print(red_velvet is boy_group); print(red_velvet is girl_group); } // 상속 - inheritance // // 상속을 받으면, 부모 클래스의 모든 속성을 자식 클래스가 부여받는다. class Idol { //이름 String name; //멤버 숫자 int members_count; Idol({ required this.name, required this.members_count, }); void say_name() { print("저는 ${this.name}입니다."); } void say_members_count() { print("${this.name}은 ${this.members_count}명의 멤버가 있습니다."); } } // super가 부모를 의미하는! class boy_group extends Idol { boy_group( String name, int members_count, ) : super( name: name, members_count: members_count, ); // 밑의 super(~~) 이것이 Idol(~~) 을 의미하는 것임! 즉, 부모의 constructor 의미하는 것! void say_male(){ print("저는 남자아이돌입니다"); } } class girl_group extends Idol { girl_group( String name, int members_count, ) : super( name: name, members_count: members_count, ); // 밑의 super(~~) 이것이 Idol(~~) 을 의미하는 것임! 즉, 부모의 constructor 의미하는 것! void say_female(){ print("저는 여자아이돌입니다"); } } 여기에서는 name : name을 함으로써, 자식 class에서 받은 name을 부모 class의 name으로 복사해준다/넣어준다고 하셨는데, 그 다음 코드 void main() { TimesTwo tt = new TimesTwo(2); print(tt.calculate()); TimesFour tf = new TimesFour(2); print(tf.calculate()); } // method : function인데, class 내부에 있는! // override - 재정의 (우선시하다. 덮어쓰다) class TimesTwo { final int number; TimesTwo( this.number, ); //method int calculate() { return number * 2; } } class TimesFour extends TimesTwo { TimesFour( int number, ) : super(number); // @override //생략해도 되는데, 예의상 기입한다. int calculate() { // return super.number * 4; return super.calculate() * 2; // 이것도 가능! } } 이 내용을 보면, 부모class는 그냥 number인 것이 왜 그런 것이지 잘 이해가 안 됩니다. number:number가 아닌 이유가 어떤 것일까요?? named(required)의 여부가 이를 결정한 것일까요??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
flutter doctor 실행 했을때 이렇게 나옵니다. 2번째꺼는 저기서 말한 가이드 대로 flutter doctor --android-licenses 이렇게 나와요...ㅠㅠㅠ 그리고 마지막 [!] Android Studio (version 2022.1) ✗ Unable to find bundled Java version. 이부분은 어떻게 해결해야할지 모르겠습니다. ㅠㅠㅠㅠ
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 상태관리 라이브러리 관하여 여쭤볼게 있습니다. 상태관리 라이브러리가 많은데 그중 riverpod을 쓰시는 이유가 있으신가요? 다른 상태관리 라이브러리 (Provider, Bloc, Get 등)을 사용해도 강의에 나온것과 같은 기능, 같은 패턴으로 구현할수 있나요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Idol blackpink = new Idol( ~~~ ) Idol blackpink = Idol( ~~ ) 이렇게 둘 다 가능하다는 내용을 보았습니다. const생성자를 적용시킬 경우, 후자는 const Idol( )을 하면 error가 발생하지 않는데, 전자의 경우에는 new const Idol( ) 을 해도, const new Idol()을 해도 error가발생하는데 어떻게 해야 할까요? 후자의 경우에는?
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "PRODUCT" because "FKR3MKF1FYVW50W5N52XQ1B8A4B" depends on it; SQL statement: 참조때문에 drop이 안되어서 create를 다시할떄 문제가 생기는 것같습니다.
강의 잘 듣고 있습니다! 이것저것 해보다가 궁금한게 생겼어요. 19번째 줄이 실행되는 순간 customerList의 fee 값이 바뀌어야 하는거 아닌가요? 20번째 줄을 안쓸때는 아래처럼 fee값이 안바뀐채로 출력되는데 챈 50 0 레 45 0 모 40 0 벤 20 0 제 10 0 20번째 줄을 쓰니까 이렇게 나오는 이유가 궁금합니다! 챈 50 2000 레 45 2000 모 40 2000 벤 20 0 제 10 0
스프링부트 버전이 현재 2버전은 2.7.8밖에 없는데 자바11로 다운 받았으니 3버전 안하고 2.7.8로 하고 나머진 강의 그대로 해도 될까요?? 현재 화면입니다. 이렇게 설정해도 문제없는지 질문드립니다. 자주하는 질문에 보니 스프링부트 3버전부터는 Java17이상을 다운받아야한다고 나와있는데, 원래 Java19가 있는데 지웠다 11로 다시 설치한 상태라 컴퓨터에 Java여러 버전이 제대로 지워지지 않으면 오류가 날까봐 있는 버전으로 가능할지 질문드립니다.