반응형

전체 648

react-native release 모드로 배포시 주의할 점(http 안되는 문제).

개발모드에서는 잘 되던 앱이 react-native에서 release 모드로 테스트를 하거나 build를 한 후 먹통이 되는 경우가 있다. 가장 흔히 겪는 문제는 api 호출이 제대로 안되는 경우인데, 원인은 http 프로토콜을 사용하기 때문이다. 기본적으로 react-native는 release 모드에서 http의 호출을 막는다. 따라서 https를 사용하도록 설정해야하는데, 여의치 않을 때 다음과 같은 설정으로 http 모드를 허용해주는 방법을 사용한다. android/app/src/main/AndroidManifest.xml 에서 ... ... android:usesCleartextTraffic="true" 추가

안드로이드 앱 등록 프로세스 정리중...

이 글은 React-native로 개발한 앱을 Android 테스트용으로 등록하는 과정(2021/12/23일 기준)에 대한 정리다. 크게 두 단계로 나누어 생각하기로 한다. 첫 째로 React-Native에서의 준비단계는 abd파일 apk파일을 생성하는 것이다. 두 번째로 google play console에 등록하는 과정이다. 등록과정은 테스트 버전과 배포되는 공개 버전 사이에 큰 차이는 없으므로 참고가 될 것 같다. React-Native 단계 구글에 앱을 올리기 위해서 가장 많이 문제가 되는 부분이 바로 업로드 키 와 사이닝 키라는 개념인 것 같다. 이 부분을 자세하게 설명한 문서는 보지 못해서 초보 앱 개발자의 경우 많이 헤멜 것이다. 문서가 있긴 하지만 이미 개념을 잘 아는 사람을 위한 설명뿐이..

비동기 호출과 ErrorBoundarry에 대해

우리는 종종 비동기 api호출을 useEffect 내에서 할 경우가 있다. 이 때 async ~ await을 사용한다 가정한다. 에초에 useEffect에 전달되는 첫 번째 파라미터 함수는 동기함수며 동기 함수 내에서 비동기 호출을 처리를 하기 위해서는 호출할 비동기함수를 또 다른 비동기 함수로 감싸줘야 한다. async function fetchData() { ... } useEffect(()=> { const func = async ()=> { const response = await fetchData(); } func(); },[])그리고 위 코드 처럼 결국엔 func 함수가 비동기적으로 호출되기 때문에 호출 결과를 동기적으로 처리할 수 없다. 따라서 fetchData의 결과로 Error가 발생된다..

오늘도 청명한 하늘과 걷기.

요사이 미세먼지에 답답했던 하늘이 맑고 청명하게 드러났다. 벌써 6개월 정도를 매일매일 등산을 한다. 그래서 나에겐 그날 날씨가 중요하다. 그렇다고 날씨에 따라서 등산을 쉬는 건 아니다. 비가 많이 몰아치거나 태풍이 불지 않는 한은 매일 운동을 했다. 200여 일 중 4번 정도만 쉬고 하루 2시간은 걸었다. 하루 많게는 3시간에서 1시간 30분을 매일 땀을 흘린다. 운동을 좋아했지만 살아오면서 다른 많은 것들에 집중하느냐 정작 내가 좋아하는 운동, 원하는 삶을 살지 못했다는 걸 느낀다. 난 매일 이렇게 흘리는 땀이 너무나도 좋다. 좋은 걸 알았지만 이렇게 꾸준히 매일매일 운동을 한 적은 없었다. 매일 컴퓨터 앞에 앉아서 멍하니 컴퓨터를 바라보고 있는 것보다 능률도 오른다. 그래서 난 지금 살아있음을 생생..

일상 2021.12.12

단순한 삶

단순한 삶은 거창할 필요가 없다. 오늘만 생각하며 살면 되기 때문이다. 지루할 수도 있는 삶이 단순한 삶이다. 단순한 삶은 몇가지 원칙만 지키면 된다. 오늘을 거창하게 살지 말것. 오늘 많은 것을 할 필요가 없다. 오늘 많은 것을 하려다 보면 내일 지치게 된다. 단순한 삶을 사는 자들은 오늘 많을 것을 하려고 하기보다는, 반드시 작은 무언가를 한다. 공부를 한다면 영어문장 하나를 머리 속에 넣어 두거나, 책을 읽는다면 책 속의 한 문장을 기억해 두는 것이다. 인간은 본래 많은 것을 한번에 하지 못하게 되어있다. 공부, 놀기, 먹기, 쉬기, 걱정 등등 한번에 몰아서 하면 병이난다. 돈이 많아도 한번에 쓰진 않을 것이다. 단순하게 오늘 내가 할일을 내 욕심의 반에 반에 반에 반 이하로 낮추고 매일 꾸준히 해..

일상 2021.12.05

javascript(typescript) 비구조화 할당과 함수의 keyword argument 다루기

본론에 들어가기 전에 자바스크립트에 대해서 투덜거리고 싶다. 자바스크립트의 생태계는 너무 크다. 웹의 발전에 지대한 역할을 하며 지금까지 건재해왔지만 필자의 견해로는 언젠가는 이 틀을 깨트려야한다고 생각한다. 설명을 하면 너무 길어져서 결론만 말하면 자바스크립트는 너무 생태계가 복잡하다. 타입스크립트는 훌륭하지만 애초에 javascript의 한계를 보완하기 위해 만들었다. 그런데 typescript 또한 제대로 쓰려면 만만한 것이 아니다. 같은 동적 타이핑 언어인 python 진영에는 pydantic이라는 것이다. 지금까지 typescript와 pydantic을 비교해온 결과 pydantic이 더 깔끔하고 사용하기도 편리하다. 이번에 keyword argument를 자바스크립트에서 사용하는 방법을 정리 ..

javascript에서 시간 다루기 moment, new Date()

시간을 생성하고 표시하는 것은 매우 간단하다. 자바스크립트의 경우 new Date(); 를 사용한다. 하지만, 서비스시에 문제가 생기기 마련이다. 시간은 전 세계 공통이 아니다. 한국 시간과 UTC(협정 세계시 또는 GMT) 시간은 9시간의 차이가 있다. 일명 시차라고 하는 이 시간 간격 때문에 우리가 원하는 지역의 시간을 표시하기 위해서는 여러가지 사항을 고려해야한다. 같은 코드를 사용해도 사용하는 플랫폼, 디바이스에 따라서 다른 결과를 표시하기도 한다. 그래서 우리는 UTC시간을 베이스로 두고 지역마다의 시차를 +-로 표시한다. 한국은 +09가 된다. 지역에 따라서 플랫폼에서 사용하는 locale이 다르기 때문에 시간과 locale 두가지를 정확히 알고 적용해야한다. 한국에서는 3시라고 하지만 UTC..

나는 내일, 어제의 너와 만난다.

약간의 스포. 일본 멜로영화 특유의 잔잔한 감성이 느껴지는 영화. 가끔 유투브에서 배우들이 나온 뮤직비디오를 보고 나서 관심이 생겨 보게되었다. 뭘까? 이 느낌은, 처음부터 영상이 너무 아름다운 느낌이라 눈물이 날 것 같았다. 이 영화는 제목이 바로 영화의 세계관이다. 마지막 부분에서 에미의 시점으로 전환되었을 땐 너무나도 에미의 감정에 몰입이 되서 눈물이 났다. 흘러간 아련하고 아름다웠던 추억 같은 느낌의 아름다운 영화...

관심사/영 화 2021.10.08

redux-saga에서 websocket을 이용하기.

이 글은 redux-saga에서 websocket사용을 위해 필요한 사항들을 개인적인 방식으로 정리를 위한 글이므로 참고만 하시길 바랍니다. 발단은 이렇습니다.(1차 실패 과정) react(react-native)에서 socket통신을 위해 websocket을 사용하기로 결정합니다. - 소켓 통신이 필요한 페이지 로딩마다 websocket을 연결하는 방식을 사용할 수도 있으나, 이렇게 하면 소켓 연결과 종료가 빈번히 발생하여 소켓 연결의 의미가 퇴색되게 느껴집니다. 그리하여 로그인 시에 연결을 하고 로그아웃을 할 때 소켓을 종료시키도록 설계하려 합니다. 물론 소켓 통신이 필요없는 페이지에서도 연결 상태를 유지하므로 서버 리소스가 증가할 수 있다는 점은 염두해 둔 결정입니다. - 이 방법을 사용하기 위해서..

반응형