서블릿 컨테이너란? 이 서블릿을 웹 서버에 올리기만 해서는 클라이언트의 요청을 처리할 수 없기 때문에 이 서블릿을 관리해주는 서블릿 컨테이너가 필요한 것이다. 서블릿 컨테이너가 하는 역할을 대충 정리해보면 1. 서블릿의 생명 주기 관리서블릿 컨테이너가 실행 되면, 서블릿 클래스를 인스턴스화시키고 초기화 시킨다.(탄생)또한, 클라이언트로 부터 어떤 요청이 들어왔을때 그 요청에 해당하는 적절한 서블릿에 맵핑 시켜준다.(전성기)서블릿이 사망하는 순간 서블릿 컨테이너는 가비지 컬렉션을 실행한다.(사망) 2. 멀티 스레딩 관리클라이언트의 요청이 들어올때마다 쓰레드를 생성한다. 하나의 서블릿에 여러개의 쓰레드가 동작하면서, 동시에 여러 클라이언트의 요청을 처리 할 수 있게 된다. 3.보안 관리서블릿 컨테이너 자체에..
MIME TYPE이란 이미지나 사진 동영상 파일등은 바이너리 데이터이다. 즉 0과 1의 조합으로 구성되어 있다. 초기 이메일 시스템에서는 본문에 들어갈 텍스트 뿐만 아니라 첨부파일도 전송 가능하게 하기 위해서 바이너리 데이터인 첨부파일을 아스키 코드로 인코딩하는 방법을 찾아야 했다. 즉, 이메일은 아스키 코드로만 주고 받고 할 수 있었다. MIME이란 Multipurpose Internet Mail Extension 이란 뜻인데, 보면 다목적의 인터넷 메일 확장이라는 뜻이다. 즉, 바이너리 데이터인 첨부파일을 아스키 코드로 인코딩하여 본문에 덧붙이겠다는 뜻이다.(EXtension의 의미) 보낼때 인코딩된 바이너리 데이터(사진,이미지등)가 어떤 타입인지를 명시해야 받는 측에서 그것대로 해석 할 수 있다. ..
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..
지금 현재 개발중인 부분은 글쓰기 창에서 카메라 버튼을 클릭했을때 카메라 앱이 실행되게끔 하는 부분이다. 암시적 인텐트와 파일 프로바이더 및 Content uri 개념등등을 공부하고 실제 구현에 들어갔다. 그런데 개발 도중 다음과 같은 에러메세지가 발생하였다. 정확한 에러 메시지명 : java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.sec.android.app.camera/.Camera launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } clip={text/uri-list U:co..
안드로이드의 외장 공간이란?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
- useEffect
- await
- storybook
- Action
- reflow
- design system
- Polyfill
- javascript
- return type
- useRef
- props
- type alias
- typescript
- atomic design
- state
- async
- hydrate
- Next.js
- promise
- es6
- computed
- react
- reducer
- mobx
- server side rendering
- Babel
- react hooks
- webpack
- reactdom
- 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 |