본문 바로가기

분류 전체보기112

[wsl] wsl에서 redis server 실행하기 ubuntu sudo service redis-server start centos systemctl start redis-server 기존에 centos에서 redis server를 실행하듯이 WSL(Windows Linux System)에서 명령어를 입력하면 작동하지 않는다. WSL에서 레디스 서버를 실행 할 때는 sudo service redis-server start 를 사용한다. 2021. 9. 30.
[rn] 왜 Date { NaN } 이 나왔지?🤔 new Date('2021-09-30 22:35:23') // Date { NaN } IE8 이하는 YYYY-MM-DD 패턴 지원하지 않는다. 불안정한 네트워크 환경의 모바일에서 오프라인으로 사용하다 온라인 상황이 될 경우, 서버 데이터 시간과 로컬 데이터 시간을 비교해서 업데이트 여부를 결정하려고 했다. // React-Native 환경에서 아래 식은 항상 false를 리턴. new Date('2021-09-30 22:35:23') >= new Date('2021-09-29 21:34:23') 왜 그랬을까? 최신 브라우저는 아래와 같이 사용해도 Date 값을 정상적으로 리턴해준다. new Date('2021-09-30 22:35:23') 하지만 React-Native나 IE8 이하에서는 YYYY-MM-.. 2021. 9. 29.
[android] 실행중인 앱을 강제 종료시키고 싶을 때 adb shell am force-stop [--user | all | current] 디버깅 하던 중 실행 중인 앱이 갑자기 종료되었을 때, 어떻게 작동하는지 테스트해보고 싶었다. 예를 들면 큰 크기의 파일을 인코딩하고 업로드하는 일련의 처리에서 예상하지 못 하게 크래시가 발생해 앱이 종료 되면 어떻게 될까? 그리고 이런 상황이 발생했을 때도 사용자가 큰 불편함을 느끼지 않고 대처할 수 있게 개발하고 싶었다. adb shell am force-stop [--user | all | current] # 특정 패키지 강제 종료 adb shell am force-stop com.3stack.kakao # 특정 유저의 특정 패키지 강제 종료 adb shell am force-stop --user 10 com.3.. 2021. 9. 29.
[network] CSRF ? 🤔 https://email-checker.net 입력값이 실제로 존재하는 이메일인지 확인해주는 서비스를 제공하는 사이트. 이메일 검증시 서버로 보내는 Request 파라미터 값 중 _csrf, CSRF에 대해 알아봤다. 1. CSRF? - 사이트 간 요청 위조(크로스 사이트 요청 위조, Cross-site request forgery, CSRF, XSRF)는 웹 사이트 취약점 공격의 하나로, 사용자가 공격자가 의도한 행위를 특정 웹사이트에 요청하게 한다. - 사이트간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신뢰하는 점을 노린다. 사용자가 웹사이트에 로그인 한 상태에서 CSRF 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부.. 2021. 9. 28.
[Android] 어떻게 안드로이드 앱 사이즈를 줄일까?🤔 How to reduce Android App size in react-native? 안드로이드 앱 사이즈 줄이기 1. enableSeparateBuildPerCPUArchitecture - 사용할 경우 특정 ABI(Android Binary Interface)에맞춰 APK 파일을 따로 따로 생성. - 이 옵션을 사용하지 않으면 다양한 안드로이드 기기의 ABI를 전부 지원할 수 있는 하나의 APK 파일 생성. - assembleRelease가 아니라 bundleRelease를 사용하여 AAB(Android App Bundle)을 구글스토어에 업로드할 경우, 자동으로 사용자의 기기의 ABI에 적합한 앱으로 다운로드 된다. 구글스토어에 AAB파일을 업로드할 경우 사용할 필요 없음. 2. shrinkResou.. 2021. 9. 28.
[mssql] 숫자 인지 아닌지 어떻게 확인할 수 있을까?🤷‍♂️ mssql 숫자 체크 -- ISNUMERIC ( expression ) -- ISNUMERIC은 입력 식이 올바른 숫자 데이터 형식으로 평가되면 1을 반환하고 그렇지 않으면 0을 반환. -- ISNUMERIC은 더하기(+), 빼기(-)와 같은 숫자가 아닌 일부 문자 및 달러 기호($)와 같은 올바른 통화 기호에 대해 1을 반환. SELECT ISNUMERIC('')-- 0 SELECT ISNUMERIC('0')-- 1 SELECT ISNUMERIC(000)-- 1 SELECT ISNUMERIC('000')-- 1 SELECT ISNUMERIC('111')-- 1 SELECT ISNUMERIC(123.456)-- 1 SELECT ISNUMERIC('123.456')-- 1 SELECT ISNUMERIC('.. 2021. 9. 28.
[mssql] DATETIME cheatsheet mssql data format datetime 표시 convert datatime 번호 쿼리 결과 코드 0 CONVERT(CHAR(19), DATETIME, 0) 01 02 2000 1:14PM MM DD YYYY H:MM 1 CONVERT(CHAR(10), DATETIME, 1) 01/02/2000 MM/DD/YYYY 2 CONVERT(CHAR(8), DATETIME, 2) 00.01.02 YY.MM.DD 3 CONVERT(CHAR(8), DATETIME, 3) 02/01/00 DD/MM/YY 4 CONVERT(CHAR(8), DATETIME, 4) 02.01.00 DD.MM.YY 5 CONVERT(CHAR(8), DATETIME, 5) 02-01-00 DD-MM-YY 6 CONVERT(CHAR(8).. 2021. 9. 27.
SIGSEGV, SIGABRT 가 뭐지?🤷‍♂️ Signal 기본 개념 & 종류 # 시그널? 리눅스에서는 프로세스끼리 서로 통신할 때 사용. 즉, 특정 프로세스가 다른 프로세스에 메시지를 보낼 때 이용. 사용자가 인터럽트 키를 통해 발생시키는 시그널, 프로세스가 발생시키는 시그널, 하드웨어가 발생시키는 시그널 등 다양함. # signal list 확인 kill -l # signal 보내는 방법 # kill -signal -pid kill -9 1001 # 주요 시그널 1. 프로그램 에러 시그널(SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGABRT) - 심각한 프로그램 에러가 운영체제나 컴퓨터 자체에 의해 검출되었을 때 발생. - 일반적으로 이 시그널들은 프로그램이 심각하게 깨져있고, 에러가 포함된 그 실행을 계속할 방법이 없음을 말.. 2021. 9. 26.
[rn] Error: androidx.appcompat.widget.AppCompatEditText.setBackgroundDrawable androidx.appcompat.widget.AppCompatEditText.setBackgroundDrawable AppCompatEditText.java, line 112 java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' on a null object reference android.graphics.drawable.DrawableContainer$DrawableContainerState.createAllFu.. 2021. 9. 26.
[linux] 리눅스에서 메모리가 부족할 때 제공: 한빛 네트워크 저자: Mulyadi Santosa, 이정목 역 원문: When Linux Runs Out of Memory 아마도 여러분은 좀처럼 이 상황에 직면하지 않을 것이지만, 만약 그렇게 된다면 여러분은 무엇이 문제(free 메모리의 부족이나 Out of Memory (OOM))인지 확실히 알게 될 것입니다. 그 결과는 전형적인데, 여러분은 더 이상 더 많은 메모리를 할당할 수 없고 커널은 태스크(일반적으로 현재 동작하고 있는 것)를 제거(kill)할 것입니다. 대량의 스와핑(swapping)은 일반적으로 이러한 상황을 동반하게 되며, 따라서 화면과 디스크의 움직임이 이를 반영합니다. 이 문제의 기저에는 다른 문제들이 놓여져 있는데, 얼마만큼의 메모리를 할당하기를 원하는가? 운영체제(OS;.. 2021. 9. 26.