윈도우에서는 안드로이드 빌드 밖에 되지 않지만 윈도우 11 PC 의 속도와 편리함을 무시할 수 없기에 윈도우 환경에서 개발도 상당한 메리트가 있다. 그래서 관련 이슈를 정리. 윈도우 10 이나 윈도우 11 의 콘솔에서 yarn 이나 다른 명령어들 사용시 "이 시스템에서 스크립트를 실행할 수 없으므로..." 에러시... Get-ExecutionPolicy 로 확인. 아마도 Recstricted 로 되어 있을 것. get-help Set-ExecutionPolicy 전부 y 할 것. Set-ExecutionPolicy RemoteSigned 해주면 된다. 전부 y 할 것. eslint 의 CRLF , LF 문제 해결. https://simsimjae.medium.com/vscode%EB%A5%BC-%EC%8..
Lower Camel Case: function, method, variable, constant Upper Camel Case: class, struct, enum, extension /// for logging - print - dump: description property 까지 출력. /// String Interpolation import Swift let age: Int = 10 print("Hello! I am \(age) years old") print("Hello! I am \(age + 1) years old") /// constant: let, variable: var let name: type = value var name: type = value type 이 명확하다면 type 은..
https://pub.dev/packages/graphql_flutter https://pub.dev/packages/graphql_flutter/example flutter pub add graphql / dart pub add graphql flutter pub remove graphql / dart pub remove graphql https://hasura.io/learn/ https://hasura.io/learn/graphql/intro-graphql/graphql-vs-rest/ https://hasura.io/learn/graphql/flutter-graphql/introduction/
https://pub.dev 권한 요청 https://pub.dev/packages/permission_handler https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler/README.md https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler/example/ios/Runner/Info.plist 휴대폰 연락처 정보 얻기 https://pub.dev/packages/contacts_service Android 휴대폰 번호 얻기 https://pub.dev/packages/mobile_number
initializer list https://stackoverflow.com/questions/50274605/colon-after-constructor-in-dart 아래와 같이 생성자 뒤에 콜론 : 뒤에 오는 로직은 생성자로 인한 객체가 생성되기 전에 수행된다. assert 도 해줄 수 있고 초기값을 넣어줄 수도 있다. super 를 호출해줄 수도 있다. 아직 객체가 생성되기 전이기 때문에 this 를 붙이지 않는다. 실제 생성자의 파라미터에 네임드 옵션에는 this 를 붙이는데 이런것 때문에 혼동되지는 말고 그냥 각각의 사용법일 뿐. 그냥 굳이 말하자면 아직 객체 생성전이라 그렇다고 생각하면 이해하기 편하다. FbAuth() : _firebaseAuth = FirebaseAuth.instance; ..
https://pub.dev/packages/table_calendar TableCalendar( firstDay: DateTime.utc(2010, 10, 16), lastDay: DateTime.utc(2030, 3, 14), focusedDay: DateTime.now(), ); firstDay: 캘린더에서 가능한 첫째일. 이 날짜 이전에 접근불가. lastDay: 캘린더에서 가능한 마지막일. focusedDay: 현재 타겟되는 날짜. 몇월을 보여줘야 하는지 결정해준다. selectedDayPredicate: (day) { return isSameDay(_selectedDay, day); }, onDaySelected: (selectedDay, focusedDay) { setState(() { _s..
https://pub.dev/packages/grouped_list grouped_list: ^4.1.0 https://pub.dev/packages/grouped_list/example import 'package:flutter/material.dart'; import 'package:grouped_list/grouped_list.dart'; void main() => runApp(MyApp()); List _elements = [ {'name': 'John', 'group': 'Team A'}, {'name': 'Will', 'group': 'Team B'}, {'name': 'Beth', 'group': 'Team A'}, {'name': 'Miranda', 'group': 'Team B'}, {'..
https://www.youtube.com/watch?v=2g8DsOSreqk 30분 안에 배우는 Dart 언어 https://www.youtube.com/playlist?list=PLgRxBCVPaZ_1j9Z66HEu71ST3GqssBdma 개남 플러터 유튜브 리스트 https://docs.flutter.dev/development/ui/widgets 위젯 https://api.flutter.dev/flutter/material/Icons-class.html 기본 머터리얼 아이콘들 https://github.com/flutter/gallery 플러터 갤러리 예제 깃헙 https://gallery.flutter.dev/#/ 플러터 갤러리 웹 https://flutter.github.io/samples/#..
Business Logic Component : MVC 가 있고 MVVM 이 있다 하면 MVVM 이라 볼 수 있는데 그 중에서도 거의 Model 이라고 볼 수 있는 부분이지만 통틀어 Business 로직이라 볼 수 있는 부분을 UI 와 완전히 분리 시킨다. Provider : React 의 Provider 와 거의 같다고 보면 된다. GetX: 오호라~
React Boundaries 라는 것은 선언형으로 전체 에러처리에 좋다. 그리고 react- https://www.youtube.com/watch?v=hszc3T0hdvU react-error-boundary 라는 라이브러리를 추가로 사용해야 한다. react-query 와 같은 api 단계의 에러 처리는 onError 부분에서 처리해주면 좋다. react-error-boundary 를 사용한 React Boundaries 는 전체 에러 처리용. (앱 전체에 걸쳐 예기치 않은 에러 모두 포함) api 단계의 에러처리 부분은 해당 부분 에러처리를 위한 것. 또한 api 부분 외에도 각 포인트 별로 에러처리가 필요하다면 적절한 곳에 포인트를 주면 된다. Exception 와 Error State 는 다르게..
번역: https://react-query.tanstack.com/guides/paginated-queries Paginated/Lagged Queries 페이지네이션 데이타를 렌더링하는 것은 리액트 쿼리에서 매우 일반적인 UI 패턴입니다. 단지 페이지 정보만을 포함하면 작동합니다. const result = useQuery(['projects', page], fetchProjects) 하지만, 이 예제를 실행하면 이상한 걸 알 수 있습니다: success / loading 상태를 들락날락거립니다. 왜냐하면 각 새로운 페이지는 새로운 쿼리로 취급되기 때문입니다. 이러한 부분은 적절하지 않습니다. 그리고 운 나쁘게도 많은 툴들이 이렇게 동작합니다. 하지만 리액트 쿼리는 아닙니다! 예상하듯이, 리액트 쿼리는..
On arriving in Devonport, I had looked for backpackers and I could find two backpackers. Devonport backpackers and the other is Tasman backpackers. There was Devonport YHA but it is changed to a mental hospital. And One more backpackers in Devonport city but it’s not on google map. The name is Molly Malones Irish Pub. I think Molly Malones Irish Pub is the best. But not easy to find parking area..
Today, in the end, I’ve got a job. The strawberry picking now. I don’t know exactly how much an hourly rate is. Anyway current days, there isn’t a job except this. But there is the lowest hourly rate legally. So first I trust the owner will give me as much as that. I’ve arrived here AU already almost a month. Not a month, about three weeks. Until now from the first week passed I was busy. So I’d..
confluence: 요구사항 정의서 및 제안요청서 (RFP, Request For Proposal) 를 뽑아내기 위한 토론, 협의 문서화 도구. 여기서 요구사항을 정의하고 RFP 도 뽑아내어 RFP 를 바탕으로 프로젝트를 진행할 사람을 모집할 수 있다. 해당 요구사항 들은 이슈화 되어 실제 프로젝트 진행시 jira 에서 백로그 > 에픽 > 스토리 > 기술작업 으로 분류되어 기능 구현을 수행한다. jira: 요구사항을 바탕으로 이슈를 만들어 관리한다. 이슈는 백로그, 스토리 이다. 백로그는 대기열에 있는 이슈들. 스토리는 이번 스프린트에 포함된 이슈들이다. 에픽은 이슈들을 폴더처럼 그룹화 시킨 것. 스토리 구현에 실제로 기술적으로 구현해야할 사항들이 기술작업이다. bitbucket: 실제 소스 코드 저장..
https://www.apple.com/kr/newsroom/2021/09/apple-will-open-developer-academy-in-pohang-city-next-year/ Apple은 Apple Developer Academy를 내년 포항에 개소할 예정이다 Apple Developer Academy와 Apple 최초의 제조업 R&D 지원센터는 한국 개발자와 중소기업, 학생들을 지원하기 위해 포항에 Apple이 새로이 단행하는 주요한 투자의 일환이다. www.apple.com https://www.joongang.co.kr/article/25009933#home 세계 최초로 애플 두곳 들어선다…포항공대, R&D·개발자 아카데미 '둥지' 제조업에 특화한 세계 최초 애플 제조업 R&D 지원센터와 미..
인공지능(AI)은 아직도 스스로 민주화할 수 없기 때문에, 모두가 사용할 수 있도록 도움을 줄 것 래트너는 구글의 엔지니어 디렉터로 취임해 구글이 개발한 기계 학습 엔진 '텐서플로(TensorFlow)' 관련 개발에 종사할 것이라고 전했다. 텐서플로는 2015년 11월에 오픈 소스화해 무료로 공개되어 있으며, 래트너가 참가하게 된 구글 브레인은 인공지능 프로그래밍 절차를 간소화하기 위한 텐서플로의 개발 부문이기도하다. 텐서플로는 이전에 사용된 클로즈드 소스인 '디스트빌리프(DistBelief)'의 역할을 거의 대체해 구글의 서비스 연구 및 생산에서 사용되고 있으며, 구글을 지탱하고 있는 핵심 기계 학습 라이브러리의 하나로 자리매김했다.
우선 dependency injection (Inversion of Control, IoC) 만 언급. spring boot jsp mybatis mariadb basic gradle with intellij ultimate lombok 이곳에서도 언급했듯이 프레임워크라 함은 기본적으로 DI 기능을 제공하는 것을 말한다. 조립하듯이 해당 규격에 맞다면 다른 구현체로 갈아 끼울 수 있도록 하는 것을 말한다. 여기에는 Factory Pattern, Stratege Pattern, Dependency Inversion Principal 의 디자인 패턴이 사용될 수 있다. 전략패턴은 인터페이스들 정의하고 로직을 분리하여 사용하고자 하는 곳에서 가져다 사용하는 것이고 DIP 는 사용하고자 하는 곳에서 인터페이스를..
infinite scroll 을 구현하는 경우 useQuery 로는 대응이 안된다. infinite scroll 의 경우 page 가 한개씩 늘어나면서 늘어난 page 가 데이터에 추가되는 식이다. 참고로 pagination 은 새로운 page 로 데이터가 갱신된다. react-query 는 useQuery, useInfiniteQuery 를 대표적으로 사용한다. pagination 은 useQuery 로 대응한다. https://react-query.tanstack.com/reference/useQuery https://react-query.tanstack.com/guides/paginated-queries https://react-query.tanstack.com/guides/infinite-quer..
자꾸 한번씩 의심을 하게 된다. redux 대신 좀 더 쉽게 사용할 수 있는 전역 상태 라이브러리는 없는가에 대해서... 하지만 다른 것들은 쉬운게 아니라 기능이 없는 것이다. redux 가 아직까지는 제일 낫다. 그러나 recoil 은 아직 experimental 인데 이 경우는 아직 잘은 모르겠고 (왜냐하면 리액트 팀의 공식 라이브러리이니깐...) constate 라던가 뭐 이런건 그냥 거의 contextAPI 와 hook 를 사용한 단순한 라이브러리 정도여서 그냥 기능이 없을 뿐이지 심플한 것이 아니다. React 의 useState, useReducer 같은 거 사용한 contextAPI 와의 조합 정도... 전역 상태는 redux-toolkit 이 현재로서는 최고의 선택. flux 패턴의 구현체..
정리하면, sass 와 같은 css preprocessor 적용, styled-components 와 같은 css-in-js 도 적용. 추가적인 헬퍼인 polished, classnames 같은 것 추가. reset 을 전역 scss 파일에 추가해서 적용해주고, postcss 에서 필요한 부분 추가해주면 되는데 이는 보통 browerslist 설정에 대부분 다 포함되어 있다. scss 즉, sass 용 preprocessor 는 node-sass 는 deprecated 되었으니 dart-sass 를 사용해야한다. 명령어는 npm install sass 이다. postcss 란 autoprefixer 나 flexbox 또느 grid 관련 오류라던가 하는 등등의 몇몇 고려해야할 사항들을 위해 컴파일된 css..