목록전체 글 (385)
만족
뭔 짓을 해도 pressed!!! 가 출력되지 않아서 난리를 쳤지만 해결법은 놀랍게도 디버그 터미널 재실행이다. 이 터미널을 그냥 끄고, 다시 터미널로 가서 yarn android, yarn ios 하니까 너무 잘된다. 이거 한시간째 검색하고있었는데 어이가 없다 Thiru... 당신이 옳았어....
npm config set save-exact=true 우선 위의 명령어를 이용하여 버전이 꼬이는 현상을 방지해준다. //react-native init [PROJECT-NAME] react-native init MyProject 위의 명령어를 이용해 프로젝트를 만들고 초기화한다 //cd [PROJECT-NAME] cd MyProject 만든 프로젝트로 이동하고 react-native run-ios //아이폰 앱 실행 react-native run-android //안드로이드 앱 실행 위의 명령어로 생성된 예제 프로젝트를 실행해볼 수 있다 이제부터는 아래의 공식 홈페이지 문서를 보고 필요한 것을 찾아 사용하면 된다. https://reactnative.dev/docs/getting-started Reac..
해당 포스트는 https://book.naver.com/bookdb/book_detail.nhn?bid=15767673를 참고하여 작성되었다. 스무디 한 잔 마시며 끝내는 React Native 단순하지만 강력한 앱을 원한다면,앱 개발을 위한 최고의 선택2020년 6월 5일, REACT NATIVE 0.62 버전과 REACT NAVIGATION V5에 맞게 수정판을 재구성했다. 새로운 내비게이션을 살펴볼 수 있는 좋은 기회가 book.naver.com https://reactnative.dev/docs/environment-setup Setting up the development environment · React Native This page will help you install and build ..
듣던 중 반가운 소식이다 3년 보증이라 함은 안드로이드 버전을 2-3개까지 판올림해주겠다는 뜻이다. 물론 플래그십 한정이다 ㅋㅋ (가령 A31같은 보급형 라인은 지원대상이 아니고, 갤럭시 폴드/S/노트 시리즈같은 고가 라인 대상이다) (+ A라인에서 A90처럼 사양이 높은 기기의 경우는 현재 고려 중이라고 한다) 솔직히 애플이 창렬이다.... 뭐다 하던 시절은 이미 한참전에 지나갔고, 오히려 애플이 혜자소리를 듣고 있는 마당에 이같은 소식은 매우 좋은 소식이지만 애플에서 5년된 아이폰6s를 아직도 지원해주고 있는 걸 보면 좀더 분발할 필요가 있어 보인다. 갤럭시 S10을 안드로이드 개발용으로 쓰고 있는데 원래대로라면 안드로이드 11버전까지만 지원하고 버려질 예정이였으나 12버전까지는 올라올 것 같다. 기..
Activity Lifecycle을 살펴보면 Activity가 Running 상태이다가다른 액티비티가 위로 올라오면 onPause()로 진입하고현재 액티비티가 보이지 않는 상태가 되면 onStop()으로 진입한다. 다시 유저가 해당 액티비티로 돌아오면 시점에 따라서onRestart()-> onStart()-> onResume() 또는onCreate()-> onStart()-> onResume() 또는onResume() 의 순으로 라이프사이클이 굴러간다. 다시 액티비티가 포그라운드로 돌아 왔을 때 onResume()은 반드시 실행된다는 점을 알고 적용해보자 public class SimpleActivity extends FragmentActivity{ //Lifecycle Phase에 따라 바뀌는 변수 p..
갑자기 다음과 같은 메일이 날라오며 앱 업데이트가 거부되었다. 의아한 것은 해당 업데이트 내용은 버그 수정 및 편의성 강화로써 광고 관련 코드는 수정된 바가 전혀 없다는 것이다. 이의 신청을 진행했으나 돌아온 답변은 더 이해할 수 없는 내용이였다. 광고가 내 앱을 벗어나 다른 앱 위에 있다는 것인데...무슨 말인지 잘 생각해보니 알게 되었다. 1. 앱이 백그라운드 상태일 때도 전면광고를 표시함mInterstitialAd.adListener = object : AdListener() { override fun onAdLoaded() { if (!isDestroyed){ mInterstitialAd.show() } } override fun onAdClosed() { super.onAdClosed() if(..
https://www.amitsn.com/blog/how-to-generate-a-sitemap-for-your-react-website-with-dynamic-content How to generate a sitemap for your React website with dynamic content This post illustrates how to use react-router-sitemap to generate a sitemap.xml file for your React.. www.amitsn.com 위의 페이지를 번역한 포스트입니다. 또한 Step 5(aws-amplify를 이용한 동적인 sitemap.xml 생성 부분)는 다루지 않았습니다 ================================..
주의 이 라이브러리를 사용 중 알 수 없는 오류로 사용이 어려울 경우 아래 링크를 참조해서 새로운 라이브러리를 사용해 보세요. react-snap은 유지보수가 중단된 프로젝트이므로 오류 수정 업데이트가 없습니다. https://satisfactoryplace.tistory.com/348 [React] 검색엔진 최적화(SEO):: Prerendering (react-hydratable) https://satisfactoryplace.tistory.com/131 [React] 검색엔진 최적화(SEO):: Prerendering (react-snap) React는 대표적인 SPA제작 라이브러리이다. SPA가 사용감이나 개발적인 측면에서는 유리하지만, 빌드된 결.. satisfactoryplace.tistory..
https://pages.github.com/GitHub PagesWebsites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.pages.github.com위 링크를 따라하면 아주 쉽게 호스팅할 수 있다 플레이스토어에 올릴 때나, 광고를 달 때 개인 페이지 루트 디렉토리에 app_ads.txt를 추가해야 하는데새로 서버를 구축하거나, 도메인을 사긴 좀 애매해서 github pages를 사용했는데 아주 유용한 것 같다 물론 제한이 없는 것은 아니다. 1. 사이트 전체 용량은 1GB를 넘길 수 없고2. 한달에 100GB의 트래픽 제한 (초과 시 접속..
https://github.com/Nightonke/BoomMenu Nightonke/BoomMenu A menu which can ... BOOM! - Android. Contribute to Nightonke/BoomMenu development by creating an account on GitHub. github.com 프로젝트에서 이 라이브러리를 사용하던 도중, 오류 리포트에 다음과 같은 예외가 엄청나게 발생하기 시작했다 Fatal Exception: java.lang.IndexOutOfBoundsException Index: 0, Size: 0 java.util.ArrayList.get (ArrayList.java:437) com.nightonke.boommenu.BoomMenuButton...
간단하게 정리한다 화면 구조가 다음과 같다고 가정하자 액티비티 내부에 프래그먼트A가 있고 프래그먼트A내부에 프래그먼트 B가 있다. getFragmentManager는 activity내부의 Fragment들을 대상으로 한다. 즉 프래그먼트 A를 대상으로 작업하려면 getFragmentManager를 사용한다 getChildFragmentManager는 Fragment내부의 Fragment들을 대상으로 한다 즉 프래그먼트 B를 대상으로 작업하려면 프래그먼트 A에서 getChildFragmentManager를 사용한다. 참쉽죠? https://stackoverflow.com/questions/51395604/getsupportfragmentmanager-vs-getchildfragmentmanager getS..
Fragment의 getActivity()는 언제 null을 반환할까 (When do fragment.getActivity() return null) Fragment의 onCreateView 내부에서 getActivity()가 Null을 반환하여 앱이 죽는 현상이 발생했다. 그런데 테스트 환경에서는 Null일때도 있고, 아닐때도 있어 재현이 어려웠는데, 이번 기회에 getActivity()가 언제 null을 반환하는지 알아보려 한다. 먼저 해당 프래그먼트는 다음과 같이 activity의 xml에서 선언되었다. 위의 LifeCycle을 참조하여 각 페이즈마다 getActivity가 Null인지 아닌지를 체크할 것이다. 위 코드를 이용하여 null여부를 로그에 기록한다. 결과는? 생명주기 내부에서는 getA..
뭐? 뒤통수에 탈모있냐고? 2019.10~2020.03까지 일할때 gitlab씀 근데 다 private repo다 미안해요 오픈소스
분석 조건 30일간 진행된 공식전 게임 중 랭킹 1000위 안의 유저들의 게임 기록을 기준으로 약 20000회의 경기 결과를 대상으로 분석합니다 분석 방법 사이퍼즈 OPEN API를 이용해 수집된 데이터를 js로 분석합니다. 카운터 픽 분석 방법 (파란색은 승리팀, 붉은색은 패배팀입니다) 해당 경기에서 각각의 캐릭터마다 한 번씩 비교하여 총 25번의 비교를 하여 다음과 같은 데이터를 만들어냅니다 (클레어vs까미유=> 승리1vs승리0, 클레어vs디아나=> 승리1vs승리0 ...... 스텔라vs호타루=> 승리1vs승리0) 이와 같은 작업을 20000여개의 경기에 대해 누적식으로 모두 진행한 다음, 해당 데이터를 가공하여 DB에 넣습니다. 이 데이터는 한번 더 백엔드에서 처리하여 프론트에 전달되는데, 최종적으..
매우 큰 javascript array를 파일로 저장하던 중 out-of-heap 오류가 뜨면서 프로그램이 정지되어서 힙 메모리에 충분한 값을 주고 실행했더니 이번엔 RangeError: Invalid string length 오류가 뜬다. 원인은, js엔진에서 객체 사이즈에 제한을 두고 있다고 한다. array를 JSON.stringify()하는 과정에서 생겨난 string 크기가 해당 사이즈를 넘어버린 것이다. 해결법은 해당 객체를 작은 사이즈로 나누거나 스트림을 이용해 잘게 쪼개어 파싱하면 된다. 참고: https://ohgyun.com/782 Node: String 크기 제한에 의한 RangeError 발생일: 2018.10.22 키워드: JSON.stringify, RangeError, Inva..
Nodejs로 크롤러를 만들던 중, 수집한 정보를 file로 저장하던 중에 해당 오류가 발생했다. 원인은 Nodejs의 기본 힙 메모리는 512MB라서 프로그램이 돌다가도 해당 사이즈를 넘어버리면 해당 오류가 출력되면서 프로그램이 강제 종료된다. 해결법은 간단히 실행 시 옵션에 --max-old-space-size=[SIZE] 를 주면 된다. 가령 내 프로그램을 돌리는데 1GB가 필요하다면 커맨드라인에 다음과 같이 입력하면 된다 node --max-old-space-size=1024 index.js
https://ko.reactjs.org/docs/react-api.html#reactmemo React 최상위 API – React A JavaScript library for building user interfaces ko.reactjs.org 요즘 클래스형 컴포넌트를 갖다 버리고, 거의 함수 컴포넌트만 사용중이다. 클래스형 컴포넌트에서는 shouldComponentUpdate 메서드를 사용하여 해당 컴포넌트를 업데이트할지 말지 결정할 수 있었으나, 함수 컴포넌트에서는 할 줄 몰라서 그냥 내버려뒀다. (사실 페이지 내에 요소가 그렇게 많지가 않아서 크게 신경쓰지 않아도 문제는 없었다) 그러나, 엘리먼트가 매우 많은 페이지를 만들면서 해당 문제를 해결하는 방법에 대해 알아보았다. 탭바 컴포넌트 구조를..
참고: https://expressjs.com/en/4x/api.html#res Express 4.x - API Reference Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex expressjs.com 자주 쓸 것 같은 프로퍼티에 대해 정리한다 Res.headersSent response heade..
참고: https://expressjs.com/en/4x/api.html#req Express 4.x - API Reference Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex expressjs.com 자주 쓸 것 같은 프로퍼티를 정리한다 req.ip request client ip req.meth..