[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
국내 많은 기업들이 스프링 프레임워크를 사용중에 있는데요.. 백앤드를 스프링프레임워크로 강좌가 있으면 정말 좋겠다는 생각입니다. 이제 막 프론트단을 flutter로 검토하는 정도의 기업들이 조금씩 나타나고 있는것 같은데요.. 중견기업에서... 추후 flutter개발자가 늘어나도 스프링 프레임워크 기반의 서버(RDB포함)까지 바꾸려고 하지 않아서요... ㅠㅠ 해당 회사 사정이기는 합니다만... flutter 공부하는 입장에서는 회사에서 근접한 환경들을 배우고 싶은 사람들이 저말고 있을것 같아서 말씀드립니다. 물론 회사에 서버개발자가 있기는 하지만 flutter 도입을 위해서 netjs프레임워크로 바꿀거 같지 않아서요.. ㅠㅠ 개발관련 업무 담당자의 사견이오니 무시하셔도 됩니다. 지나가면서 의견 한마디 드린정도로 생각해 주세요 강의 잘듣고 있습니다. 감사합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요 지금 캘린더 강의 데이터베이스 생성하기 부분 듣고 있습니다. database 폴더 생성하고 drifr_database.dart 파일 생성해서 코드 작성하는 부분인데, getapplicationdocumentsdirectory()를 입력할때 자동완성이 안뜨더라고요. 대소문자 구분 안하는걸로 설정해놔서 대문자 없어도 떠야하는데 말이에요. 그리고 강의에는 저 메서드있는 패키지 import 하기가 옵션으로 뜨던데 저는 그런것도 아예 없고요. 그래서 직접 import 써넣었어요. 그리고 그 다음에 nativedatabase 적었을때도 마찬가지로 자동완성 안뜨고 패키지 import 옵션도 안뜨더라고요. 근데 여기서 문제가, getapplicationdocumentsdirectory는 강의에서 어떤 패키지가 import 되는지 보여서 그냥 그대로 써넣었는데, nativedatabase는 그게 아예 보이지도 않아서 구글링하며 찾느라 좀 헤맸습니다. 자동완성도 안뜨고 import 옵션도 안뜨는건 도대체 왜 그런가요? 어디서 고칠 수 있는 건가요? 너무 불편해요 ㅜㅜ
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
class _BottomSlider extends StatelessWidget { final Duration currentPosition; final ValueChanged<double> onBottomSliderChanged; final VideoPlayerController? videoPlayerController; 위의 형태로 videoController를 직접 넘겨줘도 정상작동하는 것을 확인했습니다. 만약 _BottomSlider에서 기능이 추가되어 videoController에 많은 접근이 필요해지면 일일히 넘겨주느라 복잡해질 것 같은데 통째로 넘겨주지 않는 것은 상태변화를 추적하기 원활하게 하기 위함인가요??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
floating button을 눌렀을때 modalbottomsheet가 builder를 통해 scheduleBottomSheet라는 "stateless"위젯을 반환합니다. 바텀시트에서 textfield를 눌러 키보드가 나오는 경우 final 변수인 bottomInset이 0에서 키보드 높이값으로 변하여 padding이 적용됩니다. 혹시 stateless위젯은 setstate를 사용하지 못할뿐 내부 시스템적으로 바뀌는 값에 대해서는 state처럼 값 변경이 발생하는 것인가요? 아니라면 modalbottomsheet의 builder가 바텀시트를 리랜더링하는 것인가요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
디버그시 *.g.dart 파일을 수정하며 디버그 해도 되나요? Future<CursorPagination<RestaurantModel>> paginate(); 에서 RestaurantModel 을 RestaurantDetailModel 로 잘못 입력하여 에러가 났는데, 아무런 에러 메세지도 나오지 않아서, *.g.dart 파일 수정하며 디버그했는데, 디버그 방법을 어떻게 하면 좋을지 알고 싶습니다. ================================= 새해 복 많이 받으세요 : )
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 잘모르겠습니다 ㅎㅎ.. 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 1. 데이터 삽입 순서 관련 질문 서버가 여러 대 있다고 가정했을 때, 각 서버에 하단의 이미지처럼 메모리에 50개씩 값을 올려둘 경우, DB에 들어가는 데이터가 순차적으로 안들어가지 않나요? 구체적으로 생각해보지는 않았지만, 순차적으로 데이터가 들어가지 않을 경우에 대한 이슈가 있지 않을까 싶어서 질문드립니다! 2. 중간에 비어있는 구간 관련 질문 위와 마찬가지로 서버가 여러 대 있고 각 서버마다 50개씩 메모리에 할당했다고 가정했을 때, 특정 서버가 죽게되면 죽은 서버의 메모리가 가지고있던 개수만큼의 공백이 생기지 않나요? (거의 그럴 일은 없겠지만) 서버가 시도때도없이 다운될 경우 아무리 Long 타입을 지정했음에도 수가 넘어가는 케이스가 생기지 않을까 싶습니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
질문1. 강좌에는 회원가입이 없는것 같은데요.. 아이디와, 패스워드 입력으로 회원가입을 했다는 전재하에 토큰인증을 하고 있다고 보면되는 건가요? 그 아이디와 패스워드는 각각 { test@codefactory.ai :testtest} 으로 사용하는 것으로 보면되는 거죠? 질문2. 그렇다면 회원가입 시점(id, pw를 db에 저장하는 시점)에 토큰을 발급해 주는 내용을 알 수가 없어서 질문드립니다. db에 id, pw 넣고 토큰을 즉시 발급해 주는 내용이 강좌에 없는것 같습니다. 이부분에 대한 의견을 듣고 싶습니다. 혹시 제가 못 알아보고 있는지도 알고 싶습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] 질문 1 ============================================ 별칭과 관련하여 영한님의 댓글을 찾아보던 도중 라는 글이 있습니다. 제가 이해한 바로는 1:N 이던 N:1 이던 1:1 이던 페치조인할때 별칭은 사용하지 않는것이 좋지만 페치 조인시 별칭을 사용했을때와 별칭을 사용하지 않았을때와 의 데이터가 일치한다면(정합성) 사용 할수 있다 이렇게 이해를 했는데 맞나요 ? 질문 2 ============================================ 페치조인시 1:N 에서 페이징을 사용할수 없는 이유는 페치조인의 메커니즘 자체가 1:N 이면 N 만큼 데이터를 다 가지고 있어야 하는데 ex) @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); (Team 은 페치조인시 members 의 뻥튀기 된 데이터를 모두 가지고 있어야한다) 그런데 이때 페이징을 실행하면 뻥튀기된 데이터를 가지고 있을수가 없다. 그래서 JPA는 메모리에 모든 정보를 끌어모아 저장 시킨후 메모리에서 페이징 처리를 실행 하기 때문에 메모리 부족 현상이 나타날수 있다 이렇게 이해를 했는데 맞나요 ? (질문1,2) ======================질문3 페이징 처리를 위해 N:1 을 1:N 으로 바꿔서 페치조인을 하면 되는데 막상 이 쿼리를 디비에 실행해도 둘다 데이터가 각 3건씩 똑같이 나오는게 맞나요 ? (뻥튀기 가 일어나면 데이터가 더많아야 하는게 아닌가요 ? 1:n 조인이) 각각 1:N , N:1 페치조인 실행한 결과 [데이터 뻥튀기는 -> 데이터 베이스 쿼리는 동일하게 나오나, 자바 객체에서 뻥튀기 ->[중복] 현상이라고 생각하면 되는건가요 ??] 이 부분은 몆번을 봐도 햇갈리네요
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] cmd창에서 dir입력하고 gradle은 있는데 gradlew는 나오지 않네요... C드라이브 안에 study 폴더가 있고, 그안에 hello spring이 있는 상태인데 어느 부분에서 잘못한 것일까요? ㅠㅠ
안녕하세요 궁금한 부분이 있어 질문 남깁니다 7:58~ 에서 프로퍼티 접근은 setter 를 통해 값이 들어가므로 @Data 애노테이션을 지우고 직접 getter, setter를 만들어주셨습니다. 저는 setter가 없으면 오류가 날 것이라 생각하여 getter, setter를 생성하지 않고 테스트를 해보았는데 정상적으로 실행되더라고요. 오류가 나지 않는 게 맞는지, 그렇다면 이유가 무엇인지 궁금합니다 ㅠㅠ 아래는 실행한 코드입니다 public class MemberDto { private String username; private int age; public MemberDto() { } } @Test public void findDtoBySetter() { List<MemberDto> result = queryFactory .select(Projections.bean(MemberDto.class, member.username, member.age)) .from(member) .fetch(); for (MemberDto memberDto : result) { System.out.println("memberDto = " + memberDto); } } +추가.. .....뒤늦게 MemberDto에 @ToString 을 달아 확인해보았습니다. 오류는 나지 않았지만 안에 값은 없었네요 ㅎㅎㅎ.......