inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

웹뷰 사용시 첨부파일 설정(<input type='file'>) 및 위치(Geolocation) 설정 문의

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

WebView.setWebChromeClient(new WebChromeClient() { @Override public void onGeolocationPermissionsShowPrompt( String origin, GeolocationPermissions.Callback callback) { ... } @Override public boolean onShowFileChooser( WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { ... } }); 위 안드로이드 코드에 대응되는 Flutter에서의 사용법에 대해 문의 드립니다. iOS는 환경이 안되어 확인 못한 상태이며, 안드로이드는 첨부파일 설정은 확인 했는데, 위치 설정 방법은 찾지 못했습니다. 알고 계시면 한수 전수 부탁드립니다. WebViewController _webViewController = WebViewController(); if (Platform.isAndroid) { final androidController = _webViewController.platform as AndroidWebViewController; await androidController.setOnShowFileSelector(showSelectMediaType); } Future<List<String>> showSelectMediaType( final FileSelectorParams params) async { }

  • flutter
  • 클론코딩
dckim 댓글 1 좋아요 0 조회수 885

26강, RestaurantModel.fromJson(json:item); 과 formJson 사용차이

해결됨

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

26 강 fromJson 생성자 만들기 편에서 final pItem = RestaurantModel.fromJson(json: item); 강의와 같이 선언하면 하기와 같이 에러가 납니다. 반면, formJson 을 사용하면 정상 작동 합니다. 일반적으로는 from 을 쓰는게 더 좋다고는 하는데, 어떻게 해야 맞는건지 모르겠습니다. 찾아본 바로는 이와같이 차이가 있네요... 강사님 고견을 부탁드리겠습니다.

  • flutter
  • fromjson
  • formjson
오명석 댓글 2 좋아요 0 조회수 436

refreshToken 활용한 로그인 로직에 대한 궁금증

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요. jwt를 발급할 때 refresh와 aceess 토큰에 담긴 페이로드는 동일할까요 ? accessToken의 탈취 당했을 때를 대비해서 accessToken의 만료기한 을 짧게두고 refreshToken의 만료기한을 길게 두는 것으로 알고 있는데, refreshToken이 탈취당했을 때 refreshToken으로도 사이트에 인가된다면 굳이 이 두개를 나누는 의미가 없을 것 같은데,, 현업에서는 어떠한 식으로 이뤄지는지 궁금합니다..

  • flutter
  • 하이브리드-앱
성수 댓글 1 좋아요 0 조회수 589

혹시 join 자체도 특정 조건에 따라 동적으로 작용되게 할 수 있나요?

미해결

실전! Querydsl

안녕하세요. where 조건을 동적으로 생성해주는 부분에 대해서는 충분히 이해가 되었습니다. 그런데 혹시 특정 condition 값에 따라 join을 해줘야하는 테이블이 다른 경우라면 어떻게 처리되어야 할지 모르겠어서 글을 남기게 되었습니다. condition조건에 teamName이 있을 때만 team을 조인해주고 싶은데 join 구문을 동적으로 처리할 수 있는 좋은 방법이 어떤 것인지 질문드립니다. 😭 감사합니다.

  • java
  • jpa
chaerin920 댓글 1 좋아요 0 조회수 1120

SendGird가입

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

안녕하세요 api 인증키를 발급받기 위해 sendgrid를 가입하려고 하는데 가입이 되지 않아서 질문남깁니다!!

  • react
  • python
  • django
  • docker
chlendyd7 댓글 3 좋아요 1 조회수 1126

selectedDate 변수에 특정 지정 날짜 넣는 방법

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

selectedDate 에 현재날짜를 입력했는데 현재날짜가 아니라 과거의 특정 고정날짜를 넣고자 하는데 어떻게 해야 할까요? 예를 틀어 2020.01.01 을 selectedDate 에 넣는 방법요

  • flutter
  • 클론코딩
덕쿵 댓글 1 좋아요 0 조회수 322

네비게이션바 질문

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요! 강사님께서 구현해주신 메인 화면에서 네비게이션바를 onTap의 controller를 통해 받아오며 화면이 전환되는데, 상세화면에 들어간 후에도 하위 탭이 유지되는 기능을 구현하고 싶어 구현중입니다. class _DefaultLayoutState extends State<DefaultLayout> { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: widget.backgroundColor ?? Colors.white, appBar: renderAppBar(), body: widget.child, bottomNavigationBar: NavigationBar(), floatingActionButton: widget.floatingActionButton, ); } NavigationBar() { if(widget.bottomNavigationBar == null) { return BottomNavigationBar( selectedItemColor: PRIMARY_COLOR, unselectedItemColor: BODY_TEXT_COLOR, selectedFontSize: 10, unselectedFontSize: 10, type: BottomNavigationBarType.fixed, onTap: (int index) { Navigator.of(context).push( MaterialPageRoute( builder: (_) => MainBoard(index: 1,), ), ); }, items: [ BottomNavigationBarItem( icon: Icon(Icons.work_history_outlined), label: '1', ), BottomNavigationBarItem( icon: Icon(Icons.attach_money), label: '2', ), BottomNavigationBarItem( icon: Icon(Icons.people_alt), label: '3', ), ], ); } else{ return widget.bottomNavigationBar; } } 위의 코드처럼 메인 화면에서 네비게이션바가 null로 전송된다면 디폴트 네비게이션바를 구현하려고 시도하는데, 화면이 넘어간 이후, 값을 다른 화면에 넘겨 NavigationBar 탭을 변경시키려고 하고 있습니다. 근데, widget.index 형식으로 받아오는 방식으로 이용하면 하위 탭만 선택되었다고 변경이 되고 onTap기능인 TabBarView의 controller 영역인 메인 화면이 변경되지 않는데 혹시 해당 부분은 어떤식으로 event를 줘야하는지 알 수 있을까요?

  • flutter
  • 하이브리드-앱
hajung.jun 댓글 1 좋아요 0 조회수 452

앱 빌드 시 발생하는 오류 메시지는 무었인가요?

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

PS D:\flutter\ubi> flutter build appbundle Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 1100 bytes (99.9% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app. Running Gradle task 'bundleRelease'... 97.9s Gradle build failed to produce an .aab file. It's likely that this file was generated under D:\flutter\ubi\build, but the tool couldn't find it. D:\flutter\ubi\build\app\outputs\bundle\release 에는 파일이 생성되어 있음

  • flutter
  • 하이브리드-앱
dckim 댓글 1 좋아요 -1 조회수 1920

PageView 이미지 총 개수 로드

해결됨

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요 페이지뷰 관련해서 학습하고 있는데 궁금한게 생겨서 문의드립니다. 강의에서 보면 페이지뷰에 이미지를 5개 넣고 nextPage에서 4보다 작을 때 0으로 초기화 해주고 있는데, 이때 이미지 총 개수를 상수가 아닌 컨트롤러나 다른 곳에서 가져올 수 있는지 알 수 있을까요? timer = Timer.periodic(Duration(seconds: 2), (timer) { int curPage = controller.page!.toInt(); int nextPage = curPage + 1; if(nextPage > 4){ // 상수말고 총 이미지 개수 또는 페이지 수를 가져올 수 있는지 nextPage = 0; } controller.animateToPage(nextPage, duration: Duration(milliseconds: 400), curve: Curves.linear,);

  • flutter
  • 클론코딩
인프런 수강 댓글 1 좋아요 0 조회수 275

안드로이드 스튜디오 (안드로이드 에뮬레이터 GPS 수정)

미해결

[LG유플러스] 앱 만들기 초급 과정 (Flutter)

...을 눌러 에뮬 설정창에서 로케이션 검색과 savepoint 등록후 set Location으로 내 위치를 변경해서 시뮬레이션 가능합니다.

  • flutter
  • 클론코딩
  • gps
양형준 댓글 2 좋아요 1 조회수 6480

update쿼리로 인한 영속성컨텍스트 불일치

해결됨

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 수정, 삭제 벌크 연산의 6:20 부분에서 update쿼리로 인한 영속성컨텍스트 문제를 설명해주셨는데요. 전 강의에서 em.flush()실행되는 조건들을 설명해주실 때, 직접 호출 시 트랜잭션 커밋 시 JPQL쿼리 실행 시 em.flush()가 실행된다고 설명해주신 것으로 기억하고 있습니다. querydsl도 결국 JPQL기반으로 작동된다고 알고 있는데, querydsl을 통한 select쿼리 실행을 하면 자동으로 em.flush()가 실행되지 않고, 직접 해주어야 하는 메커니즘이 궁금합니다!

  • java
  • jpa
Dompoo 댓글 1 좋아요 1 조회수 526

BottomTabScreen 관련 질문입니다.

해결됨

따라하며 배우는 리액트 네이티브 기초

import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; import {createNativeStackNavigator} from '@react-navigation/native-stack'; import React from 'react'; import Home from './src/screens/Home'; import Search from './src/screens/Search'; import Profile from './src/screens/Profile'; import Activity from './src/screens/Activity'; import {NavigationContainer} from '@react-navigation/native'; import Status from './src/screens/Status'; import FriendProfile from './src/screens/FriendProfile'; import EditProfile from './src/screens/EditProfile'; const App = () => { const Stack = createNativeStackNavigator(); const Tab = createBottomTabNavigator(); const BottomTabScreen = () => { return ( <Tab.Navigator screenOptions={() => ({ tabBarHideOnKeyboard: true, // tabBarShowLabel: false, headerShown: false, tabBarStyle: { height: 70, }, })}> <Tab.Screen name="Home" component={Home} /> <Tab.Screen name="Search" component={Search} /> <Tab.Screen name="Activity" component={Activity} /> <Tab.Screen name="Profile" component={Profile} /> </Tab.Navigator> ); }; return ( <NavigationContainer> <Stack.Navigator screenOptions={{headerShown: false}}> <Stack.Screen name="Bottom" component={BottomTabScreen} /> <Stack.Screen name="Status" component={Status} /> <Stack.Screen name="FriendProfile" component={FriendProfile} /> <Stack.Screen name="EditProfile" component={EditProfile} /> </Stack.Navigator> </NavigationContainer> ); }; export default App; 강의 내용과 같이 App 컴포넌트 안에서 BottomTabScreen 컴포넌트를 선언하면 "Do not define components during render." 라는 경고문이 뜹니다. 그래서 아래와 같이 코드를 수정하였는데 App 컴포넌트 바깥에서 이렇게 선언해도 문제가 없는건가요? import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'; import {createNativeStackNavigator} from '@react-navigation/native-stack'; import React from 'react'; import Home from './src/screens/Home'; import Search from './src/screens/Search'; import Profile from './src/screens/Profile'; import Activity from './src/screens/Activity'; import {NavigationContainer} from '@react-navigation/native'; import Status from './src/screens/Status'; import FriendProfile from './src/screens/FriendProfile'; import EditProfile from './src/screens/EditProfile'; const Stack = createNativeStackNavigator(); const Tab = createBottomTabNavigator(); const BottomTabScreen = () => { return ( <Tab.Navigator screenOptions={() => ({ tabBarHideOnKeyboard: true, // tabBarShowLabel: false, headerShown: false, tabBarStyle: { height: 70, }, })}> <Tab.Screen name="Home" component={Home} /> <Tab.Screen name="Search" component={Search} /> <Tab.Screen name="Activity" component={Activity} /> <Tab.Screen name="Profile" component={Profile} /> </Tab.Navigator> ); }; const App = () => { return ( <NavigationContainer> <Stack.Navigator screenOptions={{headerShown: false}}> <Stack.Screen name="Bottom" component={BottomTabScreen} /> <Stack.Screen name="Status" component={Status} /> <Stack.Screen name="FriendProfile" component={FriendProfile} /> <Stack.Screen name="EditProfile" component={EditProfile} /> </Stack.Navigator> </NavigationContainer> ); }; export default App;

  • react
  • react-native
  • expo
댓글 3 좋아요 1 조회수 612

캐싱에 대하여 궁금한 점이 있습니다.

해결됨

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

상품 리스트나 레스토랑 리스트, 레스토랑 상세 정보 등은 캐싱을 이용해서 데이터를 어느정도 저장시키고 로딩을 빠르게 끝낼 수 있도록 하는 것이라고 이해를 했습니다. 그럼 DB에서 값이 바뀐 경우에는 어떻게 해야 되나요? 캐싱된 데이터를 가져오게 되면 옛날 값이 아닌가용?

  • flutter
  • 하이브리드-앱
유제환 댓글 1 좋아요 0 조회수 345

함수로 리턴하는 경우와 stateless widget으로 리턴하는 경우의 차이점 문의

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

강의를 들으면서 궁금했던 사항 문의 드립니다. 질의 1. 함수로 정의할때 리턴값타입을 공통적으로 Widget으로 표시하는것과 리턴하는 특정 위젯 타입을 적어주는 것에 차이점이 무엇인가요? 질의 2. 아래와 같이 컬럼에 들어가는 Row 위젯을 함수로 정의하여 사용하는 경우와, Stateless 위젯으로 만들어서 사용하는 경우의 차이점이 무엇일까요?

  • flutter
  • 클론코딩
hyeon 댓글 1 좋아요 0 조회수 408

build.gradle 빌드 실패 에러(JDK 17.0.6, Spring boot 3.0.7)

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요, build.gradle의 빌드 실패가 나서 문의드립니다. JDK 버전은 다음과 같이 17.0.6입니다. 그리고 인텔리제이 설정은 다음과 같습니다. java 컴파일러 설정 2. 빌드 도구 설정 3. 프로젝트 설정 마지막으로 처음 프로젝트를 다운로드 받았던 설정은 다음과 같습니다.(spring boot 3.0.7 버전 사용) 처음 build.gradle을 실행할 때부터 에러 로그 하나도 없이 그냥 빌드 실패했다는 에러가 뜹니다. 컴퓨터를 여러번 껐다가 켜봐도 여전히 같은 에러가 뜹니다. 인텔리제이와 스프링이 완전 처음이라서 이 에러를 어떻게 해결해야 하는지 모르겠습니다. 커뮤니티의 다른 글들을 참고해봐도 딱히 도움이 되지는 않는 것 같습니다. 도와주시면 너무 감사하겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
spring study 댓글 4 좋아요 0 조회수 6253

엔티티 매니저 프록시 역할

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요! 질문 좀 드리려고 합니다 엔티티 매니저 프록시는 프록시를 싱글톤으로 주입해서 동시성 문제를 해결하고 실제 엔티티 매니저 인스턴스를 ThreadLocal로 관리하는 역할 정도로 생각해도 괜찮을까요? 추가적으로 실제 엔티티 매니저는 @Transactional을 사용하면 JpaTransactionManager에서 생성이 되는데 @Transactional을 사용하지 않으면 처음 엔티티 매니저를 사용할 때 생성이 되나요?

  • java
  • jpa
code-tree 댓글 1 좋아요 0 조회수 441

1012 - 반례를 모르겠습니다. JAVA

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } } 위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?

  • c++
  • 코딩-테스트
  • java
최찬호 댓글 2 좋아요 0 조회수 322

DDD 적용시 JPA 설계에 대해 궁금한 사항

해결됨

실전! 스프링 데이터 JPA

안녕하십니까 강사님. 좋은 강의 정말 감사합니다. 이번에 강사님께 강의를 듣고 현업에 적용하는 도중 궁금한 사항이 있어 문의하게 되었습니다. 저희는 현재 DDD 를 적용하려고 합니다. DDD 에서는 애그리거트끼리의 관계를 맵핑하는 것을 지양하는 것으로 알고 있습니다. 따라서 저희는 ERD 기준으로 도메인을 설계해보니 실제 나온 도메인을 보면 테이블이 전부 도메인 클래스가 되었고 서로간의 관계를 코딩으로 맺는 부분 (@ManyToOne 등)이 존재 하지 않습니다. 현업에서도 ERD 를 기준으로 도메인 클래스를 나누면 테이블 당 하나의 애그리거트가 나오는 것이 보편적인 사항일까요? DDD 로 개발하다보면 도메인 클래스에 관계를 맺는 부분이 없는게 보편적일까요?

  • java
  • spring
  • spring-boot
  • jpa
김가가가 댓글 2 좋아요 0 조회수 1310

비동기를 동기로 처리하는 이유

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

비동기 함수를 왜 굳이 동기처럼 실행시키기 위해 await을 사용하는 건가요? 처음부터 함수를 만들때 동기로 만들면 되는거 아닌가요? 동기, 비동기가 잘이해가 안가네요..

  • javascript
  • react
  • node.js
조우현 댓글 1 좋아요 0 조회수 2196

인기 태그

인프런 TOP Writers

주간 인기글