전체 글 372

<깃헙> 푸시 에러 - Error: Permission denied (publickey)

🧭 # 깃헙 푸시 실패 새로운 프로젝트를 만들고 깃헙에 푸시를 하려던 중 다음과 같은 에러가 발생했습니다. Error: Permission denied (publickey) ... # SSH 키 생성 및 추가 SSH 키 생성 1. 아래 명령어로 SSH 키를 생성합니다. (쌍따옴표 사이에는 깃헙에 등록된 메일 주소를 입력, 쌍따옴표도 포함해야 함, 달러기호($)는 명령줄에 입력한다는 표현이므로 명령어 입력시 포함하지 않습니다) $ ssh-keygen -t ed25519 -C "your_email@example.com" * 보안암호(passphrase)를 입력하라고 하면 입력합니다. (암호없이 Enter 입력시 암호 설정없이 진행) ssh-agent에 SSH 키 추가 (똑같이 입력하시면 됩니다) 2. ssh..

<독서> 천 원을 경영하라 - 박정부

📖 싸지 않은 천 원 독서목록에 넣어둔 책이었지만 막상 읽으려고 보니 끌리는 구석이 없었습니다. 창업자가 노력해온 삶을 뻔한 과정으로 담았으려니 지레 짐작했기 때문입니다. 하지만 책을 읽기 시작하면서 마음이 바뀌었습니다. 다이소의 창업자인 박정부님의 진심이 느껴졌습니다. 다이소에 대해 부정적인 인식이 있었던 것도 사실입니다. 살아온 경험치에 미루어 보면 결국 비싼 제품이 양품일 확률이 월등히 높습니다. 양품을 싸게 구하기 위해서는 많은 노력이 필요하고, 굳이 아껴야 하는 상황이 아니라면 그런 노력은 삶을 피곤하게 합니다. 책에서 느낀 박정부님의 진심은 고객들이 천 원에서 기대하는 품질 이상을 끌어내기 위해 고민하고 실천하는 과정에 있었습니다. 천 원이라는 가격의 표면적인 가치는 싸게 느껴질 지 몰라도, ..

클래스/모험가 2023.02.11

<파이어베이스> 카카오 로그인 + firebase auth 개발 중 functions deploy 에러

🧭 파이어베이스 functions를 활용해서 카카오 로그인을 firebase auth와 연동하고 있습니다. (아래 첨부 유튜브 참고하여 진행) 에러#1 - firebase deploy 실패 예제를 따라하다 함수를 배포하기 위해 $ firebase deploy를 입력하는 순간, 아래와 같은 에러가 발생했습니다. Parsing error: Cannot read file '/users/mies/firebaseprojects/{MyProject}/functions/functions/tsconfig.json' /functions가 2번 반복되는 것이 문제인 것 같은데 해결방법을 찾기 못해 stackoverflow에 질문을 올렸고, 답변 받은 내용으로 .eslintrc.js 파일을 수정하여 다음 단계로 진행하게 되..

액티브 스킬 2023.01.28

<플러터> 안드로이드 네비게이션 스타일 확인하는 방법

🧭 네이게이션 스타일 안드로이드는 일반적으로 '메뉴, 홈버튼, 뒤로가기' 묶음을 가지는 네비게이션 스타일을 가집니다. 하지만 iOS 처럼 스와이프 제스쳐로 설정을 변경할 수 있습니다. 플러터에서 해당 설정을 확인하는 방법 그렇다면 사용자가 버튼 형태의 스타일을 사용하는지 스와이프 제스쳐를 사용하는지 확인할 수 있을까요? 디바이스의 높이를 계산하면 사용자가 어떤 스타일을 사용하고 있는지 파악할 수 있습니다. 디바이스의 실제 높이에서 화면에 사용하는 높이를 빼고 나면 남는 부분이 안드로이드 네비게이션의 높이일 것입니다. 디바이스 실제 높이 디바이스의 실제 높이를 확인하려면 device_info_plus라는 라이브러리가 필요합니다. 해당 라이브러리를 통해 다음과 같이 디바이스 높이를 알 수 있습니다. fina..

<플러터> 인앱업데이트 - 강제업데이트 후 재실행 안될 때

🧭 in_app_update 안드로이드 강제업데이트를 위해 인앱업데이트를 지원하는 in_app_update 라이브러리를 사용해 보았습니다. 업데이트 옵션으로 강제업데이트, 선택업데이트가 있습니다. 강제업데이트 시에는 업데이트 후 앱이 자동으로 재실행되어야 하지만 재실행 없이 종료만 되었습니다. singleTop vs singleTask AndroidManifest.xml 파일을 보면 아래로 다음과 같은 옵션이 있습니다. android:launchMode="singleTop" 해당 옵션을 singleTop에서 singleTask로 변경해주면 강제업데이트 후 앱이 재실행됩니다. android:launchMode="singleTask" singleTop과 singleTask의 차이점은 아래 두번째 링크를 참고..

<플러터> showDialog context 에러: Get.context, nullable

상황 showDialog 호출할 때 Get.context로 context 불러오는 중 null 체크 에러 발생 해결 MaterialApp을 GetMaterialApp으로 교체 참고 https://github.com/jonataslaw/getx/issues/695 Get.context is null during unit tests · Issue #695 · jonataslaw/getx I am using mobx for state management and before adding get package to my project, I was passing the context to each action I needed to. Now by the help of Get.context, I remove all t..

<플러터> StatefulBuilder

🧭 다이얼로그 안에서 setState 사용하기 StatefulWidget 내에서 다이얼로그를 띄우고, 다이얼로그의 상태를 변경하기 위해 setState를 사용하였으나 상태가 변경되지 않았습니다. 다이얼로그에서 setState를 썼을때 다이얼로그를 제외한 StatefulWidget의 상태가 업데이트가 되는걸까 라는 추측을 하게 되었습니다. 맞았습니다. 다이얼로그에서 StatefulBuilder를 통해 위젯을 만들어야 다이얼로그 내의 상태를 변경할 수 있었습니다. 공홈에서는 전체 위젯을 rebuild하지 않고 특정 부분만 rebuild하기 위한 용도로 설명하고 있습니다. 📌 https://changjoopark.medium.com/flutter-dialog-%EC%95%88%EC%97%90%EC%84%9C-..

<플러터> iOS에서 SafeArea 적용으로 발생하는 하단 여백 색상 변경

🧭 SafeArea 플러터에서는 모바일 화면 상단의 상태바, iOS 하단의 노치 등의 공간을 제외하고 작업하기 위해 SafeArea 위젯을 사용합니다. 한편 전체를 차지하는 화면이 아닌 화면의 일부, 그 중에서도 하단의 일부를 차지하는 위젯에 SafeArea를 적용하는 경우 배경 색상이 원하는 색상이 아닌 경우가 있습니다. 전체 화면에 적용된 색상과 하단의 일부를 차지하는 해당 위젯의 배경 색상이 다른 경우에 SafeArea로 띄어진 하단의 노치 부분은 전체 화면의 배경 색상을 가지고 있을 것입니다. 하단의 일부를 차지하는 위젯의 배경 색상을 그대로 적용하기 위해서는 SafeArea로 감싼 부분을 다시 Container 위젯으로 감싸고, color 값을 원하는 색상으로 설정해 주면 됩니다. 📌 https..