소개
프로필
블로그 : 개발하는남자 블로그
유튜브 : 개발하는남자 유튜브
깃허브 : 개발하는남자 깃허브
소개
개발을 즐기는 사람이 되고 싶은 개발자.
안녕하세요 개발하는남자 개남입니다.
강의
전체2수강평
- 무료로 좋은강의해주셔서 감사합니다. 잘듣겠습니다.
pc.doomco
2023.10.09
1
게시글
질문&답변
2024.03.18
doc id와 uid
파이어 베이스 데이터베이스 사용방식으로 docId 값을 내부 field의 값으로 사용하지 말라는 말이나 사용해도 된다는 내용은 없습니다. 그리고 docId와 uid 값을 같게 하면 몇가지 유용한 점이 있습니다. 우선 docId를 uid와 같게 해도 문제 되지 않는 이유는 DocId는 방대한 문서들의 유일한 key입니다. 즉, collection내에 하나만 존재하는 조건만 갖춘다면 어떤 데이터라도 상관이 없습니다. 실제로 firebase console로 접속해서 데이터를 넣으려고 할때 docId를 직접 입력할 수도 있습니다. 그렇다면 고객의 uid는 유일한 키 입니다. 나의 서비스의 고객들중에 고객의 uid가 중복될 가능성은 없습니다. 그렇기 대문에 docId를 uid로 사용해도 무방한 조건이 됩니다. 또한 docId를 uid로 사용해서 한다면 장점이 있습니다. 조회 속도가 훨씬 빠릅니다. 왜냐면, 많은 document들이 있는데 document를 찾는데 docId를 가지고 조회를 한다면 direct로 조회를 할 수 있지만 특정 필드의 값으로 조회하는 where를 사용하게 되면 문서들을 하나하나 확인하면서 찾기 때문에 속도 차이가 분명하게 나뉘게 됩니다.물론 field들을 색인이라고 해서 docId처럼 빠르게 찾을 수 있는 설정을 할 수 있지만 이부분을 추가 비용이 발생될 수 있는 부분입니다. (색인 할 수 있는 field개수 있음 -무료에서) 물론 보안상 중요한 문서를 DocId를 uid를 같게 사용하면 보안상 문제의 요소가 있을 수 있습니다. 그래서 이를 막기 위해 데이터베이스 접근 권한을 자신의 데이터에만 접근 할 수 있도록 설정하는 등의 방법을 사용 할 수 있습니다.
- 0
- 2
- 97
질문&답변
2024.03.14
실제 폰에서 테스트 시 리뷰 작성 버튼 위치
확인해보니 그렇군요 시뮬레이터로 하다보니 가상 키보드가 올라오지 않아서 확인이 안됐었군요. 알려주셔서 감사합니다. 해당 문제는 여러가지 방법으로 문제를 해결 할 수 있겠지만 그 중 가장 간단한 방법은 하단 리뷰 TextField가 아닌 다른 영역을 더치시 키보드가 닫히도록 처리 하는 방법이 있습니다. 그것을 위해서는 body 영역의 Column 위젯을 GestureDetector로 감싸주고 onTap시 FocusScope를 onfocus 시켜주는 것입니다. 소스코드는 다음과 같습니다. GestureDetector( onTap: () => FocusScope.of(context).unfocus(), behavior: HitTestBehavior.translucent, child: Column( children: [ BookReviewHeaderWidget( naverBookInfo: naverBookInfo, reviewCountDisplayWidget: // 이하 소스 동일 이렇게 작성을 하게 되면 다른 영역 터치시 키보드가 다시 내려가는 것을 확인 할 수 있습니다. 그렇게 하면 발생되는 문제는 이상하게 수정한 내용이 다시 초기화 되는 문제가 발생되는 것을 알 수 있습니다. 그것은 _ReviewBox 위젯에 didUpdateWidget을 initReview 값으로 초기화 해주고 있기 때문입니다. 이 부분은 최초 위젯이 랜더링 될때만 initreview를 받고 그 이후에는 업데이트 해줄 필요가 없는 부분입니다. 그래서 최초 위젯 랜더링 시에는 editingController.text 값이 빈 상태이기 때문에 다음과 같은 조건을 추가해줘야 합니다. @override void didUpdateWidget(covariant _ReviewBox oldWidget) { super.didUpdateWidget(oldWidget); if (editingController.text.isEmpty) { editingController.text = widget.initReview ?? ''; } } 이렇게 수정해주면 문제를 해결 할 수 있습니다. 또 다른 방법은 외부 라이브러리를 이용한 방법입니다. keyboard_attachable 이 라이브러리를 사용하면 키보드 상단에 고정을 시키는 방식으로 채팅 화면을 생각하시면 쉬울 것입니다. 단 이렇게 하면 화면 디자인을 수정해 줘야 하는 부분도 있고 소스코드를 많이 수정해야 하는 부분이라 현 강의에서는 위 첫번째 방식으로 문제를 해결하는 것을 추천드리겠습니다.
- 0
- 1
- 69
질문&답변
2024.02.26
후속 강의 질문
후속 강의에 관심 가져주셔서 감사합니다. [Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter대시보드 강의는 Cubit으로 강의를 진행하고 있습니다. 감사합니다.
- 0
- 1
- 67
질문&답변
2024.01.22
애플 로그인 위해 애플 개발자 인증센터는 Developer 프로그램 가입해야 하나요?
안녕하세요 애플로그인 관련해서 질문을 주셨는데;; 아쉽지만... 개발자 가입이 되어야 테스트가 가능합니다... 제가 알고있는것과 관련해서 저도 예전에 찾아보았는데 그런 방법은 없다고 하더군요 지금 시점에서는 그런방안을 제공하고 있을지는 찾아보진 못했지만. 아마도 개발자 가입이 되어야 할 것입니다.
- 0
- 1
- 108
질문&답변
2024.01.21
GoogleService-Info.plist > REVERSED_CLIENT_ID 안보입니다.
GoogleService-Info.plist파일은 앱 설정후에 다운로드 받게 되면 위에 모습처럼 보이는것이 당연한 상태입니다. 하지만 추가적으로 sns 로그인을 위해 google 로그인을 활성화(로그인 제공업체)를 추가하신뒤에는 GoogleService-Info.plist 파일에 REVERSED_CLIENT_ID 항목이 추가 되게 됩니다. 아마 구글 로그인 설정후에 다시 GoogleService-Info.plist파일을 다운받지 않아서 발생되는 문제로 확인됩니다. 프로젝트 개요 우측 톱니바퀴 클릭 > 프로젝트 설정 > 일반탭 > Apple앱 > GoogleService-Info.plist 파일을 받아보시면 될것 같습니다.
- 0
- 2
- 227