private String multipartRequest(ArrayList datas){ try{ URL Url = new URL(url); Log.d("httputils","서버로 MultiPart 요청 : "+url); con = (HttpURLConnection) Url.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); con.setDefaultUseCaches(false); con.setUseCaches(false); con.setDoInput(true); con.setDoOutput(true); setCookie..
여기서는 안드로이드와 서버(스프링 프레임워크)사이에 유저의 세션을 유지하는 방법에 대해서 알아보겠다. 기본적으로 Http 프로토콜은 무상태성이다.(stateless) 사용자의 정보를 서버측에서 관리하지 않는다. 한번의 요청과 응답이 지나면 사용자와의 연결을 끊어버리는 프로토콜이다. 하지만, 웹 사이트를 만들다 보면 사용자의 정보를 계속 유지해야 하는 일이 빈번하게 발생한다. 그리하여 http의 무상태성을 극복하기 위해 세션과 쿠키라는 방법을 사용하게 된다. 세션이라는것은, 사용자의 상태를 서버측에 저장하는 기술이다. 사용자가 어떤 웹 사이트에 요청을 보내게 되면, 그 웹 사이트를 관리하는 서버에서는 현재 요청에 걸린 세션의 아이디를 얻게 된다.(임의의 문자열) 그 아이디를 Http 응답 헤더에 Set-C..
자바에서 http/s에 연결할땐 HttpURLConnection, HttpsURLConnection 와 같은 클래스를 쓰게됩니다. 상속관계의 클래스이기 때문에 HttpURLConnection 만 가지고 설명하겠습니다.1. 세션은 어디에 저장되는가?세션은 다들 아시다시피 서버에 저장되며, 세션아이디를 통해 인증합니다. 세션아이디는 사물함의 열쇠라고 보시면됩니다. 즉, 처음에 사물함을 배정 받고 사물함의 132번 열쇠를 받았다고합니다. 이후 132번 열쇠를 통해 자신의 사물함에 접근하는 것과 같습니다. http의 공격기법 중 스크립트 인젝션은 대부분 클라이언트 브라우저에서 이 열쇠를 복사하는 행위라고 보시면됩니다. (이 세션아이디는 수십자의 임의 문자열이기 때문에 찍어맞추는건 거의 불가능합니다. : 어떤 소..
MotionEvent 객체는 터치에 대한 정보를 담고 있는 객체이다. 터치 된 점의 (x,y)좌표 터치 압력, 포인터의 개수등의 정보를 담고 있다. 만약에 하나의 액티비티가 여러개의 뷰로 겹겹이 쌓여있다고 해보자. 예를들어, 텍스트뷰가 리니어 레이아웃에 감싸져 있고 그 리니어 위에 또 리니어로 감싸져있고.. 뭐 이런 상황에서 화면이 터치되면 가장 최하위에 깔린 텍스트뷰가 제일 먼저 처리 권한을 갖게 된다. 그리고 만약에 텍스트뷰에 연결된 onTouchListener의 onTouch메소드에서 true를 반환하면 더이상 상위 뷰에 터치 이벤트가 전달되지 않지만 false를 리턴하는 경우에는 parent view에 터치 이벤트가 전달된다. 조상 -> 부모 -> 자식 순서대로 터치 이벤트가 전달되고 자식->부모..
페인트보드 구현중 Canvas객체의 save메소드와 restore메소드가 하는 역할이 무엇인지 궁금해서 찾아 보았다.역시 개발자의 참고서라고 할 수 있는 스택오버플로우에 자세히 설명 되어 있어서 가져왔다. Even when I first answered this question a few years ago, I didn't really understand how Canvastransforms (like translate, rotate, etc.) worked. I used to think that translate moved the thing that you were drawing. Actually, translate moves the entire coordinate system. This has the..
안드로이드의 외장 공간이란?public static File getExternalStorageDirectory() 이 함수는 외장 메모리 디렉토리를 리턴한다. 다른 컴퓨터에 의해서 외장 메모리가 연결되었거나, 디바이스로부터 외장 메모리가 제거된경우, 또다른 문제가 발생한 경우 이 외장 메모리 디렉토리를 접근할수없다.따라서, 현재 외장 메모리를 이용할수 있는가를 getExternalStorageState() 메서드로 다음과 같이 확인을 먼저 해줘야 한다. 12 if (Environment.MEDIA_MOUNTED.equals(state)){ //외장 메모리가 제대로 연결 되었는가? Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //카메라 앱 실..
파일에 대한 Content URI 생성하기Content URI를 통해서 다른 앱에 현재 내 앱의 파일을 공유하기 위해선 내 앱의 파일에 대한 Content URI를 생성해야 한다.그러기 위해선 파일을 하나 생성한 다음 File.getUriForFile()메서드에 매개변수로 그 파일을 전달하면 된다. 그럼 이 함수는 그 파일에 대한Content URI를 생성하여 되돌려준다. 이 Content URI는 임시권한이 부여 되어 있으며 인텐트에 담아서 다른 앱에 전송되게 된다.그럼 그 인텐트를 받은 앱은 내 앱에 있는 파일을 ContentResolver.openFileDescriptor를 통해서 접근할수 있게 된다. 만약 내 앱에 있는 default_image.jpg를 다른 앱에 공유하고 싶다면?123File i..
z 안드로이드 공식 문서이다. 요약을 해보자면 다음과 같다. 1. 앱 간 파일을 공유하는 방법은 파일 공유를 요청한 앱에게 요청을 수신한 앱이 파일을 공유해주는것이다.2. 파일을 안전하게 공유해주는 방법은 그 파일에 대한 content URI (content://~~)를 요청 앱에 전달해주고 그 content uri에 대한 일시적인 접근 권한을 요청 앱에게 주는것이다.3. 안드로이드의 FileProvider라는 Content Provider의 하위클래스의 getUriForFile()을 수행하면 위에서말한 파일에 대한 content uri를 얻은뒤에 그 content uri에 대한 임시 접근 권한을 부여한 다음 다른 앱에 content uri를 전달할 수 있다. 이 uri를 받은 앱에게만 그 임시 접근 권..
- Total
- Today
- Yesterday
- state
- typescript
- reactdom
- useEffect
- type alias
- useRef
- computed
- design system
- hydrate
- mobx
- es6
- Polyfill
- react hooks
- javascript
- storybook
- reducer
- await
- return type
- async
- props
- reflow
- Babel
- Action
- server side rendering
- react
- promise
- atomic design
- webpack
- Next.js
- rendering scope
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |