1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) multipart/form-data 1편에서 application/x-www-form-urlencoded방식을 설명했다. 이 방식의 가장 큰 문제 파일을 전송할 수 없다는 것이다. 파일을 전송하기위해서는multipart/form-data방식을 써야 한다. 이 방식의 전송데이터는 다음과 같이 생겼다. POST /test HTTP/1.1 Host: foo.example Content-Type: mu..
1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) 서버에 데이터를 전송하려면 기본적으로 "application/x-www-form-urlencoded" 방식을 쓴다. x-www-form-urlencoded의 구조는 다음과 같이 생겼다. 이름2=값1&이름2=값2&이름3=값3&이름4=값4 이름과 값이 한쌍을 이루며, 쌍을 분리하는 것은 '&', 이름과 값을 분리하는 것은 '='로 구분되어지게 된다. 여기서 이름과 값 모두 UrlEncoded라는 형..
html 화면상에 그림을 넣으려면 다음과 같이 img태그를 쓴다. 이 것의 크기를 지정하려면 속성으로 다음과 같이 픽셀값으로 지정을 하든지 %를 이용하여 지정할 수 있다. 픽셀로 지정한 경우 %로 지정한 경우 픽셀값으로 지정하면 해당 크기로 출력이 되고, "%"를 사용할 경우 상위요소의 크기에 따른 비율로 레이아웃이 잡힌다. 이 것은 css로 지정해도 동일하게 동작을 한다. 두번째 그림의 경우 height가 상위요소의 높이의 %값이므로 이미지가 찌그러지게 된다. 그림을 상위요소의 폭에 딱 맞추고 그림의 비율을 유지하면서 그리려면 다음과 같이 height를 지정하지 않으면 브라우저는 알아서 비율을 맞추게 된다. 레이아웃을 잡아야 한다. 하지만 우리는 레이아웃을 미리 잡아 두기위해 높이도 미리 정해줘야 할 ..
1. 안드로이드 http 다운로드하기( HttpURLConnection + SSL ) 2. 안드로이드 HttpUrlConnection 서버로 전송 #1 (기본편, x-www-form-urlencoded ) 3. 안드로이드 HttpUrlConnection 서버로 전송 #2 ( multipart/form-data ) 목차 1. 서론 2. 준비사항 3. 파일로 다운로드 4. Self-Signed 인증서 5. String으로 받기 서론 안드로이드에서 web의 파일 등을 다운로드하려면 DownloadManager를 쓰면 쉽게 되지만 문제는 알림이 뜨게 된다. 여러 개를 다운로드하면 정신이 없을 정도다. 그냥 프로그램상에서 받았으면 할 경우가 있는 데, 이 때 사용할 것이 바로 HttpURLConnection이다...
최근 12월 들어서 사용자의 클릭 수가 폭증을 했다. 평소에는 하루에 클릭 1번 많아야 2번되는 방문자도 별로없는...ㅠㅠ 비인기 블로그지만(글이 두서 없긴하다) 그래도 방문자가 있기는 있는...(에효 글 200개에 일방문자 200이라니..) 애드센스 관리창에서 보니 방문자수는 변하지 않았는 데, 클릭수가 평소보다 2~10배 늘어난 것이다. (물론 수익도 같이..) 사람들이 "내 아름다운 글에 마법이 갑자기 걸렸나? 아니면 코로나 때문에 머리쪽에 상해를 입었나?"라는 생각으로 확인을 해 보기로 했다. 이런... 전면광고가 수시로 뜬다. 특히 검색엔진에 링크된 글로 들어오는 즉시 전면광고가 보일 때도 있고, 다른 글로 이동하거나 다운로드 링크를 클릭했을 때마저 전면광고가 뜨는 것이었다. 완전히 내 블로그가..
이제 화면 내부만이 아닌 화면의 근처에 있는 이미지를 미리 로드하는 코드를 추가하도록 해보자. 트래픽과 시스템리소스는 조금 더 먹겠지만, 사용자에게 가장 깔끔하게 보여지는 것이 더 중요할 것이다. 이왕하는 김에 다른 내용도 추가한다. 할 일 1. 스크롤시 화면근처에 있는 이미지를 로드한다. 2. 이미지가 로드되면 화면 내부(화면에 조금이라도 겹친다면)일 경우 fade-in처리를 하지만, 화면 바깥이라면 그냥 그린다. 3. (추가로) 기본 이미지를 미리 깔아 놓고, 로드된 이미지를 위에 덮어 그리기를 한다.(로딩중 같은 이미지에 적용하면 좋을 듯하다) 어디까지 로드할 것인가? 필자가 테스트한 바로는 현재 보고있는 화면크기에서 위로 한화면, 아래로 한화면이 가장 적당한 듯 했다. 마우스로 스크롤하기도 하지만..
#1편에서 언급했듯이 img태그를 쓰지 못하는 경우가 있다. 특히 img태그를 쓰지 않고 이미지를 화면에 표시하는 방법을 쓰는 경우가 있다. 예를 들면 div태그에 background-image를 이용하여 표시하는 경우가 이에 해당한다. 당연히 이 div태그에는 loading속성은 존재하지 않기에(css도 없는 듯) Lazy-Loading은 javascript로 구현해 낼 수 밖에 없다. 이로인해 img태그의 loading속성은 무용지물이 되지만, 그래도 javascript로 만들면 제어가 가능하기에 오히려 장점도 많으니 이 방법을 이용해 보자. 시나리오는 다음과 같다. [사용자가 "스크롤"할 때마다~] 1. 페이지내의 "lazy"가 있는 모든 요소를 가지고 온다. 이 때 이 요소에는 data-imgsr..
이미지를 필요할 때만 로딩하는 방법이 있다. 브라우저는 HTML을 전송받으면 다음으로 이미지를 서버에 요청하게 되는 데, 이 때 HTML파일이 이미지가 100개 있다면, 브라우저는 100개를 모두 서버에 요청하게 된다. 하지만 이 100개의 이미지를 사용자가 다 볼일은 없다. 물론 다 볼 수도 있지만, 보이지 않는 이미지도 있을 것이고, 페이지가 길면 길수록 사용자가 보지 않는 이미지는 더 많아 질 것이다. 이미지의 전송량을 줄이는 것은 서버의 부담을 줄이고, 네트워크 전송량을 줄이는 데 아주 효과적이다. 실제 긴 화면상의 이미지중에 70~80%는 사용자가 보지않고 다른 페이지로 이동을 하는 경우가 대부분이다. 이말은 네트워크사용량을 20% 수준으로 줄일 수 있다는 말이 되고, 서버도 쓸데없이 자원을 허..
책상 서랍을 뒤지다가 언제 산지도 기억이 않나는 블루투스 동글이 있었다. (주)유니콘 정보시스템에서 출시한 BlueXen이라는 동글이다. 모델명은 XU-400B 예전에 블루투스를 지원하지 않는 PC에 블루투스로 연결하여 음악을 들으려고 샀던 것인데, 몇 번이고 버리려다 그냥 서랍속에 쳐박에 둔 것을 꺼내 보았다. 음.. Bluetooth 4.0 +EDR을 지원하는 모델이고.. 칩셋을 보니 CSR8510을 사용하는 것이 있다.. 잠깐... CSR8510 모델명이 뭔가 Apt-X를 지원할 것 같은 느낌이 들어 구글에 모델명을 쳐보니.. Apt-x를 지원하는 칩이었다. 그러면 뭐하나... Window7까지 지원하는 모델이고 Apt-X는 드라이버를 깔아야 될텐데.. 그냥.. Window 10에 슬쩍 꼽아 봤다...
화별 화 내용 127화 헌터협회 감시과의 우진철이 이 게이트에 들어서게 되고, 헌터스 길드에 도움을 요청한다. 압도적인 힘의 시스템 설계자, 그림자병사의 도움을 받을 수 없는 성진우는 점점 싸움을 리드하기 시작한다. 결국 설계자를 잡은 성진우 128화 성진우는 꿈을 꾸 듯 숨어있던 기억을 살리게 되고, 꿈과 같은 상황에서 이전의 전쟁을 보게 된다. 은빛 병사와 마수의 싸움, 은빛 병사의 우세를 넘어 승리의 상황에서 나타난 "그림자군주" 판세를 완전히 그림자군주의 승리로 가고 있는 데... 던전에 도착한 헌터스 길드.. 129화 헌터스길드는 시스템설계자와 싸움이 시작되지만, 실력차이가.. 따라서 성진우를 깨우는 것에 전력을 다하는 헌터스길드... 성진우의 기억의 꿈은 종료되고.. 130화 자신의 실체를 반..
화별화 내용 117화 학교에 나타난 녹색오크 냄새를 통해 먹잇감의 위치를 파악하는 아주 위험한 존재, 현재 성진우는 부산에 레이드를 뛰고 있는 상황. 동생 진아는 헌터 친구인 한송이와 같이 있지만 오히려 한송이의 마력으로 인해 오크가 찾아내기 쉬운 상황... 118화 기사단 길드와 합동 레이드를 뛰는 성진우, 진아에게 심어둔 그림자 병사의 신호를 감지하고 베르에게 레이드를 맡긴 뒤 급히 진아가있는 곳으로 이동하려하지만 스킬 [그림자교환]의 쿨타임이 남아있는 관계로 카이셀로 이동을 결정한다. 119화기사단은 베르와 레이드를 이어가고, 성진우는 학교에 도착한다. 120화 던저 브레이크로 나타난 오크를 학살하는 성진우. 베르는 던전을 쉽게 진행해 나아간다. (성진우의 무서움이 소름으로 느껴지는 화) 121화 ..
너무 경악스럽고, 충격적이라 이렇게 펜을 듭니다. 이 집회에 모인 사람들이 얼마나 무지하고 충격적인 행동을 한 것인지를 좀 언급하려고 합니다. 경제문제코로나로 인해 가장 충격을 받는 것 중 하나은 바로 경제문제입니다. 우리나라의 특성상 Lock-Down같은 조취를 취할 수가 없습니다. 우리나라는 Lock-Down하는 순간 경제는 망할 수 밖에 없는 구조를 가지고 있습니다. 이 Lock-Down을 하지 않으려고, 미리 준비한 방역으로 인해 비록 마이너스 성장이지만, 전세계 1위의 경제 성장률을 이번에 만들어 냈습니다. 유럽의 많은 나라들은 사람하나 없는 거리가 만들어 졌으니까요. 우리나라의 내수 시장은 이전부터 상당한 어려움을 겪고 있습니다. 그로인해 재난지원금을 지원해야 할 만큼, 먹고살기힘든 상황이었습..
화별화 내용 111화 광휘라는 단어가 자꾸 등장한다. 이게 뭘까?신급(?) 인간들이 등장하고 그를 방해하는 사나이가 등장한다.산급(?) 인간과 방해하는 사나이의 싸움이 있지만 시즌2의 내용을 암시하는 정도다.레드게이트에 들어간 성진우는 참혹하게 게이트를 클리어한다. 상대방이 개불쌍할 뿐.. 단지 시즌1과 시즌2를 연결하기위해 각색된 부분이라 큰 의미가 없는 부분이다. 카르테논신전(성진우가 능력을 보유하게 된)의 열쇠를 보며, 시즌2 또는 마무리의 포석을 깐다. 112화 악플러를 처단(?)하고 있는 유진호.길드이름을 정하려하지만 성진우의 센스(?)로 그냥 우낀 내용이 됨이 성진우길드에 가입하려 차해인 헌터가 찾아 오고, 헌터스길드에 위약금을 내고서라도 싱진우길드에 가입하려고 한다. 길드에 가입하려면 테스트..
GLSurfaceView안드로이드는 OpenGLES을 사용할 수 있는 방법 중에 간단하면서도 쓸만한 GLSurfaceView를 지원해 주고 있다.속도가 빠른 장점이 있다. 정확히 TextureView를 이용한 것 보다는 빠른 것 같다. GLSurfaceView는 화면을 그리는 코드가 Render Thread로 분리되어 실행되기 때문에 MainThread에 주는 무리를 줄일 수 있고, 분리된 Thread로 인해 빠르게 화면을 그릴 수가 있다. 기본 사용법1. AndroidManifest.xml설정2. 초기화 및 Renderer지정3. onPause/onResume 1. AndroidManifest.xml 설정 일단 OpenGLES를 사용한다는 것을 알려야 하기 때문에 AndroidManifest.xml파일..
wait(), notify(), notifyAll() 스레드간에 서로 변수를 동시에 바꿔 발생하는 문제는 지난 글의 내용이고 이제 쓰레드간의 정보의 전달을 위해 사용하는 방법을 배워보자, 정확히 주로 정보의 전달에 사용하기 위한 방법으로 사용되는 방식일 뿐, 정보를 전달하는 것은 아니다. 쓰레드A에서 변수의 값을 변경했다면, 쓰레드B에서 변경되었다는 신호를 인지하여 변경한 값을 가져오는 방식에 대부분 사용되기 때문에 이런 설명을 달았다. 다른 용도로도 당연히 쓸 수 있으니... 세개의 함수가 있는 데, 이는 전부 Java의 Object객체에 달려있는 메소드이다. 따라서 객체로 되어있는(Object에서 상속받은) 모든 객체는 이 함수를 쓸 수 있다. 일단 이 함수가 어떻게 동작하는 지 설명할테니, 천천히 ..
이미 이 주제로 수많은 글들이 있지만,..... 나도 그냥 한번 정리를 해본다. 일단 동기화라는 말부터 설명을 해야 되는데(대체 누가 이름을 이[따구]로 지어서 헤깔게 하는지), [동기]의 반대말은 [비동기]라는 표현을 쓴다(이름이 이따구니..원..). 워낙 자주 사용되는 표현이라 적응이 되면 어렵지 않지만, 처음 접할 때는 서로 해깔리는 문제다. Synchronization의 뜻은 "조화"다. 따라서 비동기는 "조화롭지 못하다"라는 뜻이 되고, 쓰레드에 적용해 다시 정리하면, 비동기 : 쓰레드가 다른 쓰레드에 신경 쓰지않고 그냥 자기 할일만 한다.동기 : 쓰레드가 작업이 다른 쓰레드와 조화롭게 동작한다.(다른 쓰레드가 관여할 경우 자신의 실행을 잠시 멈춘다.) 라는 뜻이다. 멀티쓰레드로 프로그래밍을 할..
이전에 포스트한 (C/C++)버전의 PHP버전이다. 하지만 이글을 바로 읽는 독자가 있을 수 있으니... 명령줄에서 다음과 같이 암호화 작업을 했다면 openssl enc -e -aes-256-cbc -in plain.txt -out encrypted.data -k "my_password" 이렇게 생성된 파일을 복호화하는 코드를 작성해 보자. 실제 위의 명령줄은 문제가 많지만, 처음 openssl을 접하는 사용자는 위의 명령을 통해 암호화작업을 많이 하게 될 것이다. 그러다 보니, 이 문제많은 방식에서 다른 방식으로 변경할 경우 일단 복호화작업을 해야 하니, 복호화 프로그래밍도 익힐 겸 복호화하는 코드를 생성해보자. 저장된 파일의 구조는 이전 포스트에서도 언급했듯이 다음의 구조를 가진다. 검은색 부분에 ..
명령줄에서 다음과 같이 암호화 작업을 했다면 openssl enc -e -aes-256-cbc -in plain.txt -out encrypted.data -k "my_password" 이렇게 생성된 파일을 복호화하는 코드를 작성해 보자. 실제 위의 명령줄은 문제가 많지만, 처음 openssl을 접하는 사용자는 위의 명령을 통해 암호화작업을 많이 하게 될 것이다. 그러다 보니, 이 문제많은 방식에서 다른 방식으로 변경할 경우 일단 복호화작업을 해야 하니, 복호화 프로그래밍도 익힐 겸 복호화하는 코드를 생성해보자. 저장된 파일의 구조는 이전 포스트에서도 언급했듯이 다음의 구조를 가진다. 검은색 부분에 "Salt__"(8bytes)가 있으며, 이어서 실제 Salt값(노란색)이 8bytes가 따라온다.그 다음..
openssl을 설치하고 암호화작업을 하기위해 인터넷을 뒤져보면 다음과 같이 암호화와 복호화를 할 수 있다. 암호화 하기openssl enc -e -aes-256-cbc -in plain.txt -out encrypted.data 이 명령어를 이용하면 중간에 비밀번호를 묻게되는 데, 이 때, 비밀번호를 입력하면 암호화가 된 파일이 생성되게 된다. 복호화 하기openssl enc -d -aes-256-cbc -in encrypted.data -out plain.txt 이 또한 비밀번호를 물어보게 되고, 암호화할 때 입력한 비밀번호를 입력하게되면 문제없이 복호화된 파일이 생성된다. 옵션을 살펴보도록 하자.enc : 암호화/복호화작업을 하겠다는 것이다, dec 명령은 없으며 -e와 -d를 이용하여 암호화인지 ..
- Total
- Today
- Yesterday
- 전기요금
- gpgpu
- 전기세
- 애드센스
- 전기료
- TTS
- 컴퓨트셰이더
- OpenGLes
- 재태크
- 안드로이드
- 블로그
- 에어컨
- 재테크
- 컴퓨트쉐이더
- 경제보복
- 에어콘
- 애드핏
- 금리
- ComputeShader
- texture
- 아끼는 법
- Android
- 티스토리
- 텍스처
- choreographer
- 적금
- 예금
- 사용료
- 공유 컨텍스트
- OpenGL ES
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |