안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2023년 6월 9일 금요일

React Native에서 페이지간 이동하는 방법(Navigation)

출처: https://reactnavigation.org/docs/navigating/


 네비게이션을 이용해서 페이지간 이동을 한다.

2023년 6월 6일 화요일

아이폰에서 상단에 M자 형태로 생긴 시간이 뜨는 상단부를 뭐라고 부를까?

노치 영역이라고 한다.(Notch)

react-native 사용 시 아이폰 notch 영역에 ui를 그리지 않게 하는 방법

 출처: https://www.freecodecamp.org/news/how-to-use-safe-area-context-to-avoid-notches-in-react-native-apps/

safe-area-view를 사용한다.

import {SafeAreaView} from 'react-native'

SafeAreaView를 먼저 적고 안에 코드를 적는다.

 <SafeAreaView>

<View> 

</View>

</SafeAreaView>

 이 방법은 iphone에 적용되고 android에는 적용되지 않는다.

android에까지 적용되는 방법은 출처를 확인해 보자.

UnableToResolveError: Unable to resolve module AccessibilityInfo

 출처: https://github.com/facebook/react-native/issues/14209


node_modules를 지우고 npm install을 한다. 그러면 바로 해결이 안되는데 npm install 시에 문구를 보면 버전이 안 맞다고 추가로 install 하라고 command를 알려준다. 그것까지 하면 해결이 된다.

2023년 6월 5일 월요일

npm install 시 발생하는 vulnerabilities 에 대해서

출처: https://stackoverflow.com/questions/70418259/why-does-my-npm-install-give-so-many-vulnerabilities#:~:text=If%20you%20are%20following%20an,then%20run%20npm%20i%20again.

 이게 정답인지는 모르겠으나 구글링 해보니 버전 문제라고 한다. 

안 나오게 하려면 package.json에서 @version을 지우고 다시 해보라고 한다.


If you are following an old video, you are likely installing old packages. Therefore it's pretty common to have vulnerabilities. If you want the warnings to disappear, you can try to remove @version in your packages inside package. json and then run npm i again.

React Native UI Components(ReactNative elements,Native Base)

 React Native에서 UI를 그리려고 하니 components 들이 있다는 걸 알았다. 

 React Native Elements 와 Native Base 등 여러가지 종류가 있었다. 

 Tableview를 넣으려고 하는데 막상 Table view는 튜터리얼에서 찾아 볼 수가 없었다.

Tableview를 대신해서 ListView로 원하는 구현이 가능할 지 알아 보든지 

TableView를 다른 방법으로 구현할 수 있는지 알아 봐야겠다.

2023년 5월 16일 화요일

[DB] 변경 history 관리하는 방법 2가지

 출처:https://softwareengineering.stackexchange.com/questions/156220/ways-to-have-a-history-of-changes-of-database-entries


1. audit table(이전 데이터를 모두 저장) 을 만든다.

2. From, to 를 이용한다.

   새로운 row 생성시 이전 column의 to 에 현재시간을 저장하고 새로운 row의 from에도 현재시간을 저장한다.

2023년 5월 14일 일요일

admob - 구글 애드센스를 앱에 연결하는 방법

 공짜 앱을 만들 때 수익창출을 위해 광고를 넣고 싶다면 admob(애드몹)을 알아 보자.

 

 가이드 대로 애드몹을 설치하고 앱에 연결하면 수익창출이 된다.


2023년 5월 13일 토요일

db browser for sqlite - mac을 위한 sqlite 공짜 client 프로그램

 SQlite 를 위한 공짜 client 프로그램을 찾다 보니 발견하였다.


db browser for sqlite라는 프로그램이다.


 돈을 사용한다면 제일 평이 좋은 것은 SQliteflow 인듯 하다.

[DB] foreign key (외래키)

 foreign key(외래키)를 사용하여 다른 table column의 id 등 정보를 이용하여 table column을 구성할 수 있다. 다른 table과 연결 해주는 역할을 하게 된다.

2023년 5월 12일 금요일

iphone app을 위한 local db에 대하여

 iphone app 개발을 구상하다 보니 db에 대해서 생각하게 되었다.


web server에서의 DB라 함은 db server를 가지고 그곳에 account를 통해 access 하도록 구현 되었는데 iphone app에서는 이와 같은 방식의 db server를 이용하면 app을 다운 받은 각 개인의 개인정보를 db server에 저장하게 된다. 그러면 어떤 식으로든 개인 정보를 저장한다는 측면에서 문제가 발생하기 때문에 이를 대신할 새로운 방식의 db가 필요하다. 


 이를 통해 조사를 해보니 local db가 있었다. local db를 사용하게 되면 사용자 id/password를 사용하지 않고 저장하는데 그럼 어떻게 보안을 적용할 수 있느냐? 하는 의문이 생기는데 이를 해결하는 방식이 저장된 데이터 자체에 보안이 적용되어서 다른 앱에서는 열람을 못한다던지 하는 데이터 자체를 보호하는 방식을 취하게 된다고 한다.


 좀 더 조사가 필요해 보이지만 일단은 iphone app을 위한 db는 local db가 좋아 보인다.

 조사 결과 3가지 DB가 많이 사용된다고 한다. 그리고 sqlite의 경우 id/password 방식을 취하지 않는데, 다른 db도 유사할 것으로 보인다.

1. sqlite

2. realm

3. core data 

가 있다고 하겠다. 


 짧은 지식으로 조사한 결과임으로 오류가 있을 수도 있음을 양해 부탁드립니다.