반응형

expo를 사용하여 리액트 네이티브 구동 중 다음과 같은 에러가 발생했습니다.

에러는 내비게이션 사용 중 발생하였는데요.

Unable to resolve "react-native-safe-area-context" 
from "node_modules/@react-navigation/bottom-tabs/src/views/BottomTabBar.tsx"

 

에러가 발생하는 이유는 react-native-safe-area-context가 설치가 안 되어 있어 발생하였습니다.

분명 수개월 전?? 어쩌면 1년 전쯤?? 이런 에러가 발생하지 않았는데 변화의 속도를 몸소 겪고 있습니다.

네비게이션 사용방법도 버전이 변하면서 패키지도 변경되고 사용방법도 변경되었기 때문입니다.

아래 패키지를 설치해줍니다.

expo install react-native-safe-area-context

그럼 위의 문제는 해결이 될 것입니다.

 

하지만 위의 패키지를 설치하고 또 다른 에러가 발생할 수 있습니다.

문서에 따라 패키지들을 설치를 해주었습니다.

npm install @react-navigation/native
expo install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context @react-native-community/masked-view

 

그리고 이전에 사용하던 방식이 아닌 최신의 방법들을 익히고 적용하니 에러가 사라졌습니다.

패키지 문제뿐만 아니라 버전이 맞지 않아 발생할 수도 있습니다.

최신 버전의 패키지와 이전 버전의 방식으로 코드를 작성하고 있으실 수도 있습니다.

문서를 꼼꼼하게 읽어 보고 하나씩 하나씩 적용을 해야겠습니다.

 

 

* 리액트 네이티브 네비게이션 가이드

https://reactnavigation.org/docs/en/getting-started.html

 

 

 

반응형
반응형

주위를 둘러보면 프로그래밍을 배우고자 하는 사람들이 많습니다.

그렇게 프로그래밍 공부 방법과 어떻게 배워야 할지 검색을 하며 질문을 많이 하십니다. 그에 대한 답변은 학원 광고들도 많이 보입니다. 강의만 들으면, 책 한 권을 끝내면 프로그래밍을 능수능란하게 할 것처럼 이야기를 합니다.

하지만 어떤 분야든 그렇지만 무언가를 하나 잘하기 위해서는 연습 그리고 또 연습이 필요합니다.

 

그렇다고 너무 어렵게 생각하지 마세요.

조금은 힘을 빼고 프로그래밍을 도구로써 사용한다는 마음을 가지세요.

 

프로그래밍을 잘해야지가 아니라 프로그래밍이라는 도구를 사용해서 문제들을 해결해야지라는 생가을 갖으셔야 됩니다.

프로그래밍을 하는 이유는 문제를 해결하고자 프로그래밍을 합니다. 도구를 활용하여 문제들을 해결하시는 겁니다.

결국에 도구를 잘 사용하게 되면 프로그래밍을 잘하게 되는 겁니다.

조금 더 프로그램 언어를 능수능란하게 쓰고 싶으면 그때부터 알고리즘도 공부하고 각종 구조들도 공부를 하시면 됩니다.

 

프로그래밍을 통해서 무엇을 할 수 있을까요?

프로그래밍을 활용하면 삶을 편하게 만들 수 있습니다.

웹 사이트 데이터를 수집할 수 도 있습니다.

데이터 분석에 활용할 수도 있습니다.

컴퓨터를 사용해서 하는 반복적인 업무들도 자동화시킬 수도 있습니다.

더 크게는 세상에 도움이 되는 일도 할 수 있습니다. 대표적으로 오픈소스를 통해서 말이죠.

 

검색을 조금만 해봐도 프로그래밍 관련 강의들이 정말 많습니다. 퀄리티들도 정말 높습니다.

프로그래밍을 통해서 삶을 조금은 더 편하게 그리고 재미있게 만들기 위해서 프로그래밍 독학 이야기를 시작하겠습니다.

 

파이썬 프로그래밍 독학 시리즈 목표

-> 프로그래밍을 도구로써 학습을 위한 주식(or 스마트 스토어 주문) 시스템을 구축

* 자동 주문 프로그램

* 웹 사이트 데이터 수집 (크롤링)

* 데이터 분석

 

-> 위의 목표가 있지만 재미있는 목표가 생기면 위의 기술을 활용하여 변경!!

* 크롤링 후 맛집 지도를 그릴 수도 있고

* 등등

반응형
반응형

우부투 기반에서 안드로이드 가상머신을 실행시키기 위해서 안드로이드 스튜디오를 실행했다.

그리고 다음과 같은 에러가 발생했다.

 

kvm is required to run this avd

 

해결방법은 다음과 같다.

 

1. 첫번째로 qemu-kvm를 설치해준다.

sudo apt install qemu-kvm

 

2. 두번째로 /dev/kvm 권한을 확인한다.

ls -al /dev/kvm

 

3. 세번째로 그룹에 유저를 확인한다.( 유저 확인 이후에 some_number를 확인해주자)

grep kvm /etc/group
결과 -> kvm:x:some_number:

 

4. 마지막으로 현재 유저를 kvm 그룹에 추가를 해주면 실행이 된다.

sudo adduser $USER kvm

 

반응형
반응형

prisma는 GraphQL을 이용하는 Backend server를 제공해준다. Prisma를 사용한다면 별도의 서버, DB 구성 없이 모델 그리고 사용 할 API만 만들면 된다.

서비스를 만들 때 초기 세팅 그리고 API 만드는 시간이 굉장히 빠르다.

Prisma 초기 세팅

  • prisma 초기화
  • prisma 소스 배포
prisma init
prisma deploy

 

테스트 쿼리

  • ex) 유저 조회
{
  user(where:{id: "abcdefghizklmopu"}) {
    username
    firstName
    lastName
  }
}

 

  • ex) 유저 업데이트
mutation {
  updateUser(
    data: { following: { connect: { id: "abcdefg" } } }
    where: { id: "abcdefghizklmopu" }
  ) {
    username
    firstName
    lastName
    following {
      username
    }
  }
}

 

https://www.prisma.io/

 

Prisma - Database tools for modern application development

Prisma replaces traditional ORMs and can be used to build GraphQL servers, REST APIs, microservices & more.

www.prisma.io

반응형
반응형

앱 디자인

  • 장고 앱은 한 번에 한 가지 일을 충실히 하도록 디자인 한다.
  • 앱 이름은 지루하더라도 명료한 이름을 선호하며 짧은 한 단어를 선호 한다.(url도 고려가 필요)

ex) 아이스크림 앱

flavors : 아이스크림 관리(종류)
blog : 아이스크림 blog
events : 행사내용을 웹 사이트에 보여주는 앱
shop : 온라인 주문
ticekts : 티켓 판패

예제의 앱들을 보면 합칠 수도 있는 앱들이 있다. 이후 앱 확장 시 복잡한 로직이 생길 수 있다. 그렇기에 기능들을 작게 나누도록 앱을 디자인 한다.

settings/requirements 파일

  • 버전 컨트롤 시스템으로 모든 설정 파일 관리
  • 반복되는 설정들은 제거
  • 암호나 비밀 키 등은 안전하게 보관

여러개의 settings 파일 이용

  • 한개의 settings 파일을 이용하기 보다는 여러개의 셋업파일을 이용한다.
base.py / local.py / staging.py / test.py / production.py
  • base.py 세팅파일은 공용으로 사용 되는 세팅 파일이다.
  • debug_toolbar 같은 경우는 로컬(개발)환경에서만 사용을 한다. 그럼 local.py에만 세팅을 해놓고 같이 개발하는 이들과 공유를 하는 것이다. 상용에 올라가는 production.py에는 당연히 명시 되어 있지 않다.
  • 개개인이 요구에 맞는 개발 환경도 dev_jun.py와 같이 파일 생성 후 형상관리로 공유를 한다. 팀원간 서로의 개발 세팅도 참고가 필요할 때가 있어 공유하면 유용하다.
  • 비밀키는 환경변수를 이용하여 저장하며 이를 환경 변수 패턴이라 부른다.
  • 로컬에서는 환경변수에 저장하며(e.g ~/.profile), 상용은 자체 환경변수 관리법(e.g aws는 자체 저장)을 사용한다.
  • 환경 변수를 이용 할 수 없을 때(e.g 웹서버)는 비밀 파일 패턴이라는 방법을 이용한다.
  • 비밀 파일 패턴 작성법: 비밀 파일 작성 -> 코드 내 비밀 파일 로더 작성 -> .gitignore에 추가

여러개의 requirements 파일 이용

  • 각각의 세팅 모듈에 대한 독립적인 requirements 파일이 필요로 하다.
  • 유용 패턴 중 하나, requirements 디렉토리를 만들고 세팅 파일과 동일하게 .txt 파일을 만들어 준다.
base.txt / local.txt / staging.txt / test.txt / production.txt
  • base.txt는 공통, 나머지는 환경에 따른 의존성을 입력해주자.
  • 개발 환경에 맞는 설치는 다음과 같다.
pip install -r requirements/local.txt
pip install -r requirements/production.txt

 

 

  • 경로를 하드코딩 하지 않고 setting 모듈 최상위에(e.g base.py) BASE_DIR라는 root 변수를 사용하자.
  • 환경파일 관리는 쿠키커터를 사용하면 환경에 맞게 파일을 생성해준다. 쿠키커터를 사용하여 환경 설정법을 익혀보자.

<Two Scoops of Django 중>

반응형

+ Recent posts