본문 바로가기

개발

(9)
오라클 클라우드 인스턴스 사용 시 접속이 안되는 문제 해결 오라클이 평생 무료 인스턴스를 제공한다 해서 가볍게 하고 있는 사이드 프로젝트의 인스턴스를 Digital Ocean 및 AWS EC2 에서 옮기게 되었다. SSH 에 접속을 해서 이런저런 DB(PostgreSQL)도 설치하고 nginx 를 설치하고 최종 외부 http / https(let's encrypt) 로 접속을 하려고 하는데 계속해서 브라우져에서 접속이 안되는 문제가 생겼다. 오라클은 아무래도 한국어 문서가 부족하다보니 삽질한 부분에 대해서 남들에게 도움이 되고자 조금 기록을 남긴다. 2가지를 해결해야한다. 1. 인스턴스 자체에서 UI 단에서 제공하는 Ingress rule 을 수정 2. 내부 방화벽 수정. (보통 여기서 막힌다.) 1. Ingress Rule 수정. 아마존 AWS EC2 에서는 ..
리액트 네이티브 안드로이드 다크 모드 자동 적용 해제하기 리액트 네이티브로 안드로이드 테스트를 하다보면 안드로이드 기기에 다크모드를 적용한 경우 기본 boilerplate 로 제공하는 코드가 다크 모드에 반응하여 일반 Text 들이 모두 흰색이 적용되는 것을 알 수 있다. 보통 개발할 때 기본 색상(화이트) 모드로 먼저 개발하게 되므로 일단은 dark scheme 이 적용되지 않도록 만들고 테스트 하는 것이 경험상 편리하였다. 해결방법은 styles.xml(android/app/src/main/res/values/styles.xml) 파일에 android:forceDarkAllowed 속성과 android:textColor 를 추가해주면 해결된다. 이외에도 react-native 에서 제공하는 기본 Alert 도 색이 다크모드 색상으로 dimmed 되어 나오는..
맥에서 .sh 쉘 실행 파일 만들기. AWS 나 기타 클라우드 환경 서버 접속(SSH) 을 할 때 보통 ssh -i ~~~ 기타 많은 명령어를 쳐야할 경우가 있다. 이런 명령어가 길 경우 에버노트, 노션 같은곳에 적어놓은 코드를 복붙하거나 기본 shell 에 명령어가 어느정도 자동완성 되니깐 명령어를 치곤 하는데, 이를 좀 더 쉽게 실행하기 위해 shell command 를 만들어 저장해놓고 실행하면 편하다. 실행이 가능한 파일을 만드는 방법은 매우 간단하다. $ touch 실행파일이름.sh 위의 명령어를 실행해서 실행파일 shell 파일을 만든다음에 좋아하는 에디터로 안에 실행시킬 shell command 를 적고 저장한다. 주의할 점은 저장한 파일을 그냥 바로 실행시킬 경우 실행이 되지 않을텐데 .sh 파일은 실행가능하도록 chmod 명..
리액트 네이티브 안드로이드 휠 픽커 2021년 기준 계속해서 wheel picker 가 deprecated 되고 쓸만한 픽커가 없었다. 그 와중에 이제야 조금 쓸만한 자바스크립트 라이브러리가 있어서 추천한다. https://github.com/erksch/react-native-wheely GitHub - erksch/react-native-wheely: An all JavaScript wheel picker for react-native without any native code. An all JavaScript wheel picker for react-native without any native code. - GitHub - erksch/react-native-wheely: An all JavaScript wheel picker fo..
m1 mac 에서 안드로이드 에뮬레이터 띄우기 리액트 네이티브로 안드로이드 에뮬레이터를 돌릴 일이 많은데 m1 칩을 mac mini를 사용하면서 안드로이드 스튜디오에서 에뮬레이터가 Could not start AVD 이야기를 띄우면서 동작안하게 되었다. 그럴땐 침착하게 디바이스를 Other Images 에서 arm64 가 적혀있는 이미지를 골라서 띄우면된다.
git init 취소하기 개발을 하다보면 git init 을 잘못 써서 원래 git 관리를 하려는 폴더가 아니라 엉뚱한 폴더에 'master' 브랜치가 생성되는 경우가 있다. 이럴 경우 당황하지 말고 다음과 같이 해결하면된다. $ ls -al .git 폴더가 생겼음을 확인하고 아래의 명령어를 통해 폴더를 지워주면 된다. $ rm -r .git/
Sourcetree 사용 중 diff 가 느린 경우 웹 및 앱 개발 또는 서버 개발을 하다보면 git 을 당연스레 많이 사용하게 된다. 그 중에 나는 git 사용 중 많은 처리를 sourcetree 를 이용하여 하는데 가끔씩 package-lock.json 이나 기타 자동으로 만들어지는 파일들이 원치않게 코드 변화를 보여주려고 하여 sourcetree 앱이 느려지는 경우가 많이 있었다. 꽤나 오랜 기간동안 이 파일을 무시하는 방법을 몰라서 고생하였으나 방법은 간단했다. 파일 패턴 무시에 원하는 파일을 넣으면 된다. 필자의 경우 package-lock.json 이나 yarn.lock 등을 넣어주니깐 한결 편해졌다.
JS 여집합 찾아내기. const A = [1, 2, 3, 4]; const B = [1, 3, 5, 7]; const diff = A.filter((x) => !B.includes(x)); console.log(diff); // [2, 4] ES6 의 'Set' 을 이용한 방법은 다음과 같다. let a = new Set([1, 2, 3, 4]); let b = new Set([1, 3, 5, 7]); let a_minus_b = new Set([...a].filter((x) => !b.has(x))); let b_minus_a = new Set([...b].filter((x) => !a.has(x))); let a_intersect_b = new Set([...a].filter((x) => b.has(x))); consol..