개발바닥곰발바닥
반응형
article thumbnail
[Android] 안드로이드 센서와 NFC
Android 2021. 12. 4. 02:22

센서 요즘 스마트폰에는 자이로, 근접, 가속도, 조도, 나침반 등의 여러 가지 센서들이 내장되어 있다. 샌서 관리자 클래스 SensorManager 클래스는 장치에 내장되어 있는 센서의 리스트를 제공한다. sensor_manager = (SensorManager)getSystemService(SENSOR_SERVICE); Sensor getDefaultSensor(int type) 주어진 타입에 대한 디폴트 센서를 얻을 수 있다. 센서의 타입 센서로부터 값을 받는 방법 값을 받고 싶은 센서에 리스너를 등록해 놓으면 애플리케이션에서 값을 전달받을 수 있다. SensorEventListener listener = new SensorEventListener() { public void onSensorChang..

article thumbnail
[Android] XML처리와 안드로이드 멀티미디어
Android 2021. 12. 4. 02:18

XML 처리 인터넷을 통하여 전달되는 데이터는 주로 XML 형식으로 html과 비슷한 형태를 띄고 있다. XML 처리 과정은 XML 문서 -> XML 파서 -> DOM 트리 의 과정을 거친다. XML 파서 XML 파서의 종류로는 대표적으로 DOM 파서, SAX 파서, PullParser 파서가 있다. DOM: 요소들을 한 번에 트리 구조로 파싱하여 메모리에 저장하여 언제든지 원하는 요소에 대한 정보를 얻을 수 있다는 장점이 있고, 메모리를 많이 차지한다는 단점이 있다. SAX : 라인 단위로 파싱하기 때문에 메모리의 소모가 적다는 장점이 있고, 지나쳐간 요소의 정보를 얻고 싶으면 다시 파싱해야 한다는 단점이 있다. PullParser : SAX와 유사하지만 원하는 부분까지만 파싱이 가능하다. DOM DO..

[C#] 소켓 통신시 Byte -> String 에서 널(\0)문자 제거하기
TCP&IP 2021. 11. 23. 11:21

C#으로 TCP 소켓 통신 구현 중에 클라이언트에서 보낸 메시지를 byte로 읽어와 string으로 변환 후에 Split 함수를 이용해서 나누어 쓰는 로직을 구현하고 있었는데 결과 값이 이상하게 나와서 값을 확인해보니 byte는 1024 바이트인데 그걸 string으로 변환 후에 Split 하니 Split 된 문자열 배열의 마지막 원소에 \0으로 끝이 꽉 차있어서 결과가 이상하게 나온 것을 알게 되었다. 찾아본 결과 이런 경우 해결 방법은 굉장히 간단했는데, 그냥 Trim 함수로 끝에 널 문자를 모두 제거해주면 된다. for (int i = 0; i < 1024; i++) bytes[i] = 0; net = tcp.GetStream(); //네트워크스트림 net.Read(bytes, 0, bytes.Le..

Mysql 예약어를 필드명, 컬럼명으로 사용시 해결방법
데이터베이스 2021. 11. 23. 11:12

insert문을 작성하는데 분명 맞게 쓴 것 같았는데 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key' 라는 오류가 떠서 확인해보니 컬럼명이 key라는 예약어와 동일한 이름으로 되어 있어서 예약어로 인식해서 오류가 난 상황이었다. 이런 경우 아주 간단하게 해결할 수 있는데, 쿼리문의 컬럼명 앞 뒤에 `key`처럼 TAB 키 위에 있는 ` 키 ( Single quotation )로 감싸주면 된다. string insertQuery = "insert into table(a,b,`key`) values('1',..

이미 push한 파일 .gitignore 적용시키기
기타 2021. 11. 19. 19:26

gitignore에 설정된 파일이라도 이미 원격 저장소에 push된 상태라면 push된 파일을 지울 필요가 있다. 간단한 명령어지만 가끔 필요할 때 찾기 귀찮기 때문에 블로그에 포스팅 해놓기 $ git rm -r --cached . $ git add . $ git commit -m "gitignore 적용" $ git push

article thumbnail
공개 키 암호(Public-Key Cryptography)와 RSA
보안 2021. 11. 3. 02:23

공개키 암호 대칭키 암호의 문제점 대칭 암호로는 고대의 암호인 스키테일, 시저, 단일치환, 비제네르부터 근대의 에니그마, 현대 암호인 DES, AES, SEED, ARIA 등 대부분의 암호가 대칭 암호이다. 대칭키 암호에도 다음과 같은 3가지의 문제점이 존재한다. 키를 서로 알고 있어야 하므로 송신자가 암호화 할 때 사용한 키를 수신자가 모르고 있다면 암호를 해독할 수 없다. 그리고 여러명과 암호 통신을 한다면 서로 다른 키를 모두 보관해야한다는 문제가 있다. 예를 들어 수신자가 100명이라고 하면 송신자는 100개의 키를 보관해야 한다. 모르는 사람과의 신뢰성 있는 통신이 어렵다. 수신자가 모르는 사람일 경우 누가 수신자를 사칭해도 누가 진짜 수신자일지 알 수 없기 때문에 키를 송신하기 어렵다. 키 배..

[Android] 스레드
Android 2021. 10. 13. 01:41

안드로이드에서의 프로세스와 스레드 애플리케이션이 시작되면 안드로이드 시스템은 새로운 리눅스 프로세스를 생성한다. 기본적으로 애플리케이션 안의 모든 컴포넌트들은 동일한 프로세스의 동일한 스레드로 실행된다. 이 기본적인 스레드를 메인 스레드(main thread)라고 부른다. 프로세스 : 프로세스는 독자적으로 실행이 가능한 환경이다. 프로세스는 자기만의 메모리 공간을 가진다. 각각의 프로세스와 메모리 공간은 분리되어 있다. 스레드 : 스레드는 경량 프로세스라고도 불린다. 스레드를 생성하는 것은 프로세스를 생성하는 것보다 훨씬 부담이 적게들기 때문이다. 스레드들은 프로세스 안에서 존재하고 모든 프로세스에는 적어도 하나의 스레드는 존재한다. 스레드들은 메모리와 파일을 포함하여 프로세스의 모든 자원을 공유한다. ..

AES(Rijndael)와 국내개발 블록 암호
보안 2021. 10. 12. 05:23

AES DES를 대신하는 새로운 표준으로 1997년 1월 2일 미국의 표준화기구인 NIST에서 AES 공모를 시작했고 2000년에 Rijndael이라는 대칭암호 알고리즘이 AES로서 선정됐다. AES의 선정 과정 AES의 응모조건 무료로 이용 암호 알고리즘의 규격이 적힌 사양서, ANSI와 Java에 의한 구현, 암호 해독에 대한 강도의 평가 가능 제안되는 암호 알고리즘은 설계 규격과 프로그램을 공개 속도가 빠르고 단순하고 구현하기 쉬울 것 암호화 자체의 속도뿐만 아니라 키의 셋업 속도도 중요 스마트카드나 8비트 CPU 등의 계산력이 작은 플랫폼부터 워크스테이션과 같은 고성능의 플랫폼에 이르기까지 효율적으로 동작해야함 블록 길이가 128비트인 대칭 블록 암호이어야 하고 키의 길이는 128, 192, 25..

반응형