캡슐화비슷한 역할을 하는 속성과 메소드들을 하나의 클래스로 모은것을 캡슐화 라고 한다. 캡슐화에 속한 개념으로 정보 은닉이라는것이 있는데, 캡슐 내부의 로직이나 변수들을 감추고 외부에는 기능(api)만을 제공하는것을 의미한다. 상속상속이란 클래스를 재사용 하는것이다. 상위 클래스를 하위 클래스에서 상속 받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려 받을 수 있다. 상속이 있기 때문에 코드를 재활용할 수 있고 그렇기 때문에 생산성이 높고 유지보수 하기가 좋다. 추상화추상화라는것은, 어떤 실체로부터 공통적인 부분이나 관심 있는 특성들만 한곳에 모은것을 의미한다. 예를들어서, 지구를 본따 만든 지구본을 예로 들 수 있다. 지구본은 실제 지구로 부터 관심 있는 특성들(대륙의 위치, 위도,경도)만 뽑아..
클래스는 속성과 행동을 가진 무언가를 추상적으로 정의한 것이다. 추상적이라는것은, 어떤 실체로부터 관심있는 사항이나 공통적인 부분을 뽑아서 모아놓은것을 의미한다. 예를들어, 사람이라는 클래스가 있을 수 있다. 사람이라는 어떤 실체로부터 관심있는 사항(나이,키,몸무게등)만을 모아서 클래스로 정의 할 수 있다는 것이다. 객체는 클래스로부터 실체화된 특정 인스턴스이다. 클래스는 단순히 분류라고 한다면 객체는 그 분류에 해당하는 실체이다. 예를들어 클래스와 객체의 관계는 사람 : 김연아 동물 : 펭귄 으로 비유 할 수 있다. 사람이라는 분류에 속하는 김연아라는 실체가 있고 동물이라는 분류에 속하는 펭귄이라는 실체가 있는것이다.
Q> 식사하는 철학자 문제란? A> 원탁에 여러명의 철학자가 앉아 있고 철학자의 수만큼의 포크가 철학자들 양옆에 놓여 있다. 만약에 4명의 철학자가 있다면 포크가 4개밖에 없기 때문에 최대 2명의 철학자가 동시에 식사를 할 수 있다. 여기서 철학자를 쓰레드로보고 포크를 공유 자원으로 보자. 각 쓰레드들은 포크(공유자원)를 얻기 위해서 계속 노력할것이다. 그런데 만약 모든 쓰레드들이 왼쪽에 있는 포크를 얻으면 어떻게 될까? 남아 있는 포크가 없는 상태에서 오른쪽 포크를 얻기 위해서 계속 오른쪽 철학자의 포크가 사용 가능해질때까지 기다릴것이다. 즉, 모든 철학자가 밥을 먹지 못하게 된다. 이것이 바로 데드락이다. 한 쓰레드가 얻고자 하는 공유 자원을 왼쪽 쓰레드가 갖고 있고 왼쪽 쓰레드는 또 왼쪽왼쪽쓰레드가..
공유 자원에 접근하고자 하는 두개의 쓰레드 a,b가 있다고 해보자. 이때, 공유 자원은 한번에 하나의 쓰레드만 접근해야 race condition이 발생하지 않기 때문에 하나의 쓰레드가 공유자원을 사용중이라면 다른 쓰레드는 그 쓰레드가 공유 자원을 모두 사용할때까지 기다려야 한다. 이때, 기다리는 쓰레드가 공유 자원을 사용할수 있는지 없는지 계속해서 무한 루프를 돌면서 조건문을 체크하는 방식이 busy waiting이다.이 바쁜대기라고 불리는 busy waiting은 cpu의 자원을 쓸데없이 낭비하기 때문에 좋지 않은 쓰레드 동기화 방식이다. 그렇기 때문에 쓰레드의 동기화를 위해서 busy waiting 방법을 쓸게 아니라 , 뮤텍스 세마포어(mutual exclusion) 또는 모니터를 사용해야 한다...
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의 공격기법 중 스크립트 인젝션은 대부분 클라이언트 브라우저에서 이 열쇠를 복사하는 행위라고 보시면됩니다. (이 세션아이디는 수십자의 임의 문자열이기 때문에 찍어맞추는건 거의 불가능합니다. : 어떤 소..
인터넷 홈페이지를 두 개 이상 제작하여 운용하다보면 하나의 도메인뿐아니라 여러개의 도메인을 셋팅하여 하나의 홈페이지가 뜨도록해야할 필요성을 느낄때가 있습니다.처음 가입시에는 하나의 도메인에 하나의 홈페이지를 운영하는 것이 가장 일반적이나 이용도중 필요에 의해서 다수개의 도메인을 가지게 될 때가 있으며 이때에 이들 도메인을 나름대로 활용할 방안을 찾게됩니다.이런 필요에 의해서 나온 것이 멀티도메인이란 개념이며 이와 유사한 개념으로 서브도메인, 가상도메인등이 있습니다.우선 이런 도메인에 관련된 용어부터 정의를 해보겠습니다. 기본도메인 : 처음에 신청했던 도메인으로 홈페이지를 운용하고 있는 도메인멀티도메인 : 기본도메인에 호스트이름만 다르게붙여서 사용하는 여러개의 도메인서브도메인 : 멀티도메인과 거의 같은 개..
- Total
- Today
- Yesterday
- useRef
- return type
- async
- promise
- design system
- server side rendering
- Babel
- Polyfill
- useEffect
- mobx
- typescript
- await
- props
- react hooks
- storybook
- Next.js
- reducer
- type alias
- state
- computed
- reflow
- hydrate
- webpack
- rendering scope
- es6
- Action
- react
- atomic design
- javascript
- reactdom
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |