Blog

반응형

popostgres에서 항목이 있으면 수정을 하고, 없으면 추가를 할려고 merge into를 찾아보니 없다.

그러나 비슷한게 있었다.

WITH UPSERT AS (
	UPDATE test SET
		value1 = '값1',
		value2 = '값2'
	WHERE serial_id='serial_id' RETURNING *
)
INSERT INTO test (value1, value2)
SELECT '값1', '값2'
WHERE NOT EXISTS (
	SELECT value1, value2
	FROM UPSERT
) RETURNING serial_id

test 테이블에 value1, value2를 추가를 하는데 serial_id를 기준으로 있으면 수정, 없으면 삭제

반응형

Comment +0

반응형

 

더보기

info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.

Jetifier found 1301 file(s) to forward-jetify. Using 16 workers...

info JS server already running.

info Installing the app...

Starting a Gradle Daemon, 2 busy and 1 stopped Daemons could not be reused, use --status for details

 

FAILURE: Build failed with an exception.

 

* What went wrong:

Could not create service of type FileAccessTimeJournal using GradleUserHomeScopeServices.createFileAccessTimeJournal().

> Timeout waiting to lock journal cache (/Users/asata/.gradle/caches/journal-1). It is currently in use by another Gradle instance.

  Owner PID: 52416

  Our PID: 81601

  Owner Operation: 

  Our operation: 

  Lock file: /Users/asata/.gradle/caches/journal-1/journal-1.lock

 

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

 

* Get more help at https://help.gradle.org

 

BUILD FAILED in 1m 4s

 

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.

Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

 

위와 같이 오류가 발생하면서 빌드가 진행이 되지 않는다.

아래 명령을 실행 후 다시 빌드를 진행을 하면 동작이 된다.

cd android
./gradlew --stop
반응형

Comment +0

CRC32 계산

Programing2020. 11. 18. 11:01
반응형
#include <stdio.h>

unsigned int crc32b(unsigned char *message) {
   int i, j;
   unsigned int byte, crc, mask;

   i = 0;
   crc = 0xFFFFFFFF;
   while (message[i] != 0) {
      byte = message[i];            // Get next byte.
      crc = crc ^ byte;
      for (j = 7; j >= 0; j--) {    // Do eight times.
         mask = -(crc & 1);
         crc = (crc >> 1) ^ (0xEDB88320 & mask);
      }
      i = i + 1;
   }
   
   return ~crc;
}

int main () {
	unsigned long	crc;
	char		in_frame[12];
	
	in_frame[0] = 0x55;
	in_frame[1] = 0xA1;
	in_frame[2] = 0x12;
	in_frame[3] = 0x34;
	in_frame[4] = 0x55;
	in_frame[5] = 0xA1;
	in_frame[6] = 0x12;
	in_frame[7] = 0x34;
	in_frame[8] = 0x55;
	in_frame[9] = 0xA1;
	in_frame[10] = 0x12;
	in_frame[11] = 0x34;
    crc = crc32b(in_frame);
    
    printf("CRC : %lX", crc);

    return 0;
}
 

Online CRC-8 CRC-16 CRC-32 Calculator

Please enable JavaScript on this site or click one of the buttons above. Share your result: Cookies policies

crccalc.com

반응형

Comment +0

반응형

Big Sur로 업데이트 한 후에 이클립스를 실행하니 아래와 같은 오류가 나면서 실행이 되지 않는다

Failed to create the Java Virual Machine.

1. 응용프로그램에서 이클립스를 선택하고 오른쪽 버튼을 눌러 "패키지 내용 보기"를 선택한다.

2. Contents 폴더 안에 Info.plist 파일을 연다.

 - "~/.eclipse_keyring" 아래 부분에 아래 내용을 추가 후 저장을 한다.

 - 추가시 jdk 경로는 설치한 버전에 맞게 수정을 해 준다.

<string>-vm</string>
<string>/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java</string>

 

출처 : stackoverflow.com/questions/62647625/not-able-to-run-eclipse-on-macos-big-sur

 

반응형

Comment +0

반응형

PM2로 서버 및 각종 개발을 하던 중 어느날 갑자기 

Permission denied, activate current user

라는 메시지를 보이며 실행이 되지 않는 경우가 발생했다.

단순히 pm2 명령 입력은 되는데, 아래와 같이 목록이나 버전 정보를 조회를 하니 되지 않는다.

PM2를 재설치를 해도 해결이 되지 않았다.

PM2 경로에 권한을 바꿔주니 해결이 되었다.

sudo chmod -R 777 /Users/asata/.pm2/

저기서 PM2 경로는 사용자에 맞게 수정을 해 주면 된다.

반응형

Comment +0

반응형

HTTP request를 전달을 해야 하는데, 서버가 EUC-KR을 받아야 하는 경우가 있습니다.

encodeURI나 encodeURIComponent를 할 경우 UTF-8인 상태에서 변환이 이뤄지게 됩니다.

수신하는 쪽에서 UTF-8를 EUC-KR로 변환을 한다면은 문제가 없겠지만, 

EUC-KR로 보내야 한다면 iconv 라이브러리를 이용하여 전달을 하면 됩니다.

 var Iconv  = require('iconv').Iconv;
 var iconv  = new Iconv('utf-8', 'euc-kr');
 var buffer = iconv.convert('한글 파라미터'); 
 var param1 = escape(buffer.toString('binary'));

위와 같이 인코딩을 변경 후 buffer 저장된 값을 escape를 해 주면 됩니다.

 

encoding 및 decoding시 값 확인은 아래 사이트에서 확인할 수 있습니다.

https://dencode.com/string/hex

반응형

Comment +0

반응형

NodeJS로 개발을 진행 중 TCP 통신으로 다른 서버와 연결을 해야 하는 경우가 있습니다.

그 서버 인코딩이 UTF-8이라면은 아무런 문제 없이 개발을 할 수 있겠지만,

서버 인코딩이 EUC-KR일 경우 받는 쪽에서는 문자열이 깨져서 수신이 되게 됩니다.

 

보낼때 iconv 등을 통해서 인코딩을 EUC-KR로 변경해서 보내면 되겠지라고 생각 하지만,

TCP write시 인코딩은 UTF-8과 binary만 지정이 가능합니다.

역시나 받는쪽에서도 인코딩이 깨져서 수신이 됩니다.

 

서버 쪽에서 해당 하는 부분을 대응해서 개발을 해 주면 좋겠지만,

그렇지 않을 때에는 보낼때 EUC-KR로 보내야 합니다.

 

관련한 정보를 찾아보던 중에 문자열을 보내는게 아니라 buffer 형태로 보내는 방법을 찾게 되었습니다.

iconv를 통해서 UTF-8 문자열을 EUC-KR로 변경을 하면 buffer array가 반환이 됩니다.

이 값을 그대로 전달을 하면 EUC-KR 문자열을 전달 할 수가 있습니다.

 

TCP 연결 코드는 별도로 설명하지 않겠습니다. 

해당 부분은 검색하면 많이 나와서 생략하였습니다.

먼저 stream 모듈을 설치를 해 주세요.

그리고 write 함수를 사용하는 부분을 아래 코드와 같이 변경을 해 주시면 됩니다.

const stream 		= require('stream');

let readStream = new stream.PassThrough();
readStream.end(new Buffer('Test data.'));
readStream.pipe(client);

송수신 문자열은 iconv를 통해서 UTF-8 또는 EUC-KR로 변환을 해 주시면 됩니다.

반응형

Comment +1

반응형


윈도우에서 안드로이드 실제 기기로 빌드시 위와 같은 오류가 발생하는 경우가 있습니다.

맥에서는 해당 오류가 발생하지 않습니다.

빌드 과정 중 실행에 필요한 index.android.bundle 생성하지 못해 발생하는 오류로 해결 방법은 아래와 같습니다.


1. 프로젝트 폴더에서 android/app/src/main로 이동합니다.

2. "assets" 폴더를 생성합니다.

3. 아래 명령을 실행합니다.

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

4. react-native run-android 명령을 실행합니다.

반응형

Comment +0

반응형

1. 구글 계정 회원 가입 및 로그인



2. 개발자 계약 수락

  • 개발자 계약 수락에 동의를 합니다.

  • 다른 계정을 사용할 경우 다른 계정으로 로그인을 선택합니다.





3. 등록 수수료 결제

  • 결제에 필요한 정보를 입력합니다.

  • 결제 금액은 $25이며, 한번만 청구됩니다.

  • 결제가 가능한 카드는 Mastercard, Visa, American Express, Visa Electron입니다.





4. 계정 세부 정보 입력
  • 플레이스토어에 표시될 정보를 입력합니다.

  • 전화번호는 게시된 앱에 문제가 있을 때 연락을 받은 전화번호를 입력 해 주세요.

  • 전화번호는 국가 번호를 포함하여 입력 해 주세요.

  • 예) 010-1234-5678 => "+82-10-1234-5678"로 입력




5. 등록 완료

반응형

'Programing > Android' 카테고리의 다른 글

구글 플레이스토어 계정 등록  (0) 2018.01.15
샤오미 개발자 모드 활성화 하기  (1) 2017.06.26

Comment +0

반응형

* Android

 

Icon

Splash (Portrait)

LDPI

36 x 36

200 x 320

MDPI 

48 x 48

320 x 480

HDPI

 72 x 72

 480 x 800

XHDPI

 96 x 96

720 x 1280

XXHDPI

 144 x 144

960 x 1600

XXXHDPI

 192 x 192

1280 x 1920

Store

512 x 512

 


* iOS 

 

Icon

Splash (Portrait)

iPhone 4 이하

120 x 120 (@2x,  Required)

180 x 180 (@3x)

320 x 480

iPhone 4S

640 x 960

iPhone 5/5S/SE

640 x 1136

iPhone 6/7/8

750 x 1334

iPhone 6/7/8 Plus

1242 x 2208

iPhone X 

 1125 X 2436

iPad 

76 x 76

768 x 1024

iPad Retina 

152 x 152 (@2x, Required)

1536 x 2048

 iPad 9.7"

 iPad mini 4 7.9"

iPad Pro  10.5"

 167 X 167 (@3x)

1668 X 2224 

iPad Pro 12.9"

2048 x 2732

 App Store

 1024 X 1024

 

https://developer.apple.com/library/content/qa/qa1686/_index.html





* 앱 아이콘 생성

http://ticons.fokkezb.nl/ [추천]

http://icon.angrymarmot.org/

http://pgicons.abiro.com/

반응형

Comment +0