728x90

Base/개념정리 26

가상화 기술

가상화란? 가상화란 단일 시스템에서 특정 환경을 위한 전용 리소스를 임시로 할당하는 기술 말한다. 가상화하는 대상에 따라 가상머신, 가상OS 등으로 불릴 수 있다. 가상머신은 하드웨어를 소프트웨어적으로 구현한 것을 말한다. virtual box 같은 것들을 통해 만드는 것이 바로 가상머신이다. 우리는 virtual box 를 통해 원하는 CPU, 메모리, 디스크를 할당해서 간단하게 하드웨어를 구현할 수 있다. 이렇게 구현한 가상머신 위에 OS를 설치하면 가상OS가 되는 것이다. 그런데 하드웨어에는 기본적으로 OS가 따라오기 때문에 가상머신 == 가상OS 라고 생각해도 무방하다. ​ 하이퍼바이저(hypervisor) 가상화를 구현하기 위한 기반기술이다. 가상화를 통해 여러 OS가 존재할 경우 각 OS에서는..

Base/개념정리 2021.04.02

싱글쓰레드와 멀티쓰레드, 동기와 비동기

개념이 자꾸 헷갈려서 정리해 놓는다. ​ 싱글쓰레드 : 하나의 쓰레드로 일을 수행한다. 멀티쓰레드 : 다수의 쓰레드로 일을 수행한다. 동기 : 이전작업이 종료된 뒤에 다음 작업을 수행한다. 비동기 : 이전작업의 종료여부과 관계없이 다음 작업을 수행한다. ​ 써놓고보니 더 헷갈린다. 싱글쓰레드==동기, 멀티쓰레드==비동기 같은데 다들 아니라고 한다. 싱글쓰레드도 내부작업은 비동기로 할 수 있고, 멀티쓰레드도 내부작업은 동기로 할 수 있다. 싱글쓰레드, 멀티쓰레드는 단순히 일을 하는 사람이 몇명인지로 구분하고 동기, 비동기는 실제로 일을 어떤식으로 처리하는지로 구분한다. 에초에 연관지어서 생각하면 안된다. ​ 예를 내가 우체국 사장이라고 생각해보자. 아침에 우편배달을 업무를 시작하는데 집배원은 한명이라면 싱..

Base/개념정리 2021.04.02

32비트, 64비트 차이점?

컴퓨터는 모든 데이터를 2진수로 변환해서 처리한다. 2진수란 0, 1로만 구성된 숫자를 의미한다. 이때 하나의 자릿수가 1bit의 공간을 차지한다. ​ 2bit의 공간으로는 아래와 같은 데이터를 나타낼 수 있다. 00 01 10 11 ​ 3bit라면 아래와 같다. 000 001 010 011 100 101 110 111 ​ 4bit라면 아래와 같다. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ​ nbit는 2^n까지의 정보를 나타낼 수 있으며 1bit가 증가할 때마다 정보량도 2배로 증가한다. 다르게 말하면 비트가 클수록 한번에 표현할 수 있는 정보도 커진다. 극단적으로 생각하자면 땅을 판다고 할 때 삽으..

Base/개념정리 2021.04.02

TCP/UDP 그리고 IP

TCP와 UDP는 둘 다 정보를 패킷 형태로 인터넷에서 전송할 때 쓰이는 프로토콜이다. IP(Internet Protocol) 위에 설계된 프로토콜로 IP주소가 있는 곳으로 정보를 전달하는데 그 방법으로 TCP와 UDP가 있는 것이다. ​ TCP는 데이터를 전송하기 전에 상대방이 준비가 되었는지 확인하고 준비가 되었을 때 별도의 소켓을 연결해서 전송을 시작한다. 또한 전송이 모두 끝났으면 잘 받았는지 확인하고 제대로 가지 않았다면 재전송을 시도한다. 이런 이유로 연결지향형 프로토콜이며 신뢰성 서비스라고도 부른다. 다만 TCP는 데이터를 전송할 때 패킷단위로 잘게 나눠서 전송을 하기 때문에 받는 쪽에서는 이를 다시 재조립하는 과정이 필요하다. ​ UDP는 TCP와 달리 상대방이 준비가 되었는지, 전송은 잘..

Base/개념정리 2021.04.02

HTTP1.0 , HTTP1.1, HTTP2.0

일단 http의 정의는 다음과 같다. 인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다. 하이퍼텍스트는 문서 중간중간에 특정 키워드를 두고 문자나 그림을 상호 유기적으로 결합하여 연결시킴으로써, 서로 다른 문서라 할지라도 하나의 문서인 것처럼 보이면서 참조하기 쉽도록 하는 방식을 의미한다. [네이버 지식백과] HTTP [hypertext transfer protocol] (두산백과) 여기에서 중요한 것은 하이퍼텍스트인데 처음부터 하이퍼텍스트가 제공 되었던 것은 아니고 초기에는 단순히 새로운 텍스트를 연결하는 링크만 제공할 뿐이었다. 그러다가 그림, 동영상 같은 미디어 결합이 추가되면서 서서히 발전해나갔고 그 과정 속에서 http1.0, http1.1, http2.0 ..

Base/개념정리 2021.04.02

페이로드(payload)

위키백과의 설명을 그대로 빌리자면 아래와 같다. 페이로드(영어: payload)는 사용에 있어서 전송되는 데이터를 뜻한다. 페이로드는 전송의 근본적인 목적이 되는 데이터의 일부분으로 그 데이터와 함께 전송되는 헤더와 메타데이터와 같은 데이터는 제외한다. restApi 를 기준으로 생각해보자면 request parameter 를 의미한다. 그 형태는 json 이 많이 사용된다.

Base/개념정리 2021.04.02

User-Agent

웹페이지 접속시에 접속한 기기가 어떤 정보를 가지고 있는지 확인할 수 있는데 그중 user agent 를 통해 어떤 브라우저( 익스플로러, 크롬, 사파리 등..)로 접속했는지 알 수 있다. ​ Servlet 를 사용하는 웹서버라면 request header 에서 아래와 같이 확인할 수 있다. String userAgent = request.getHeader("User-Agent") javascript 에서는 navigator 를 통해 아래와 같이 확인할 수 있다. var broswerInfo = navigator.userAgent; 간단하게 크롬브라우저에서 Console 창에서 아래와 같이 확인할 수 있다. ​ 이 값은 모바일에서 WebVnew 를 호출할때 임의로 변경할 수도 있다. 하지만 이를 활용하는..

Base/개념정리 2021.04.02

DAO와 Repository

둘은 모두 Persistence 을 구현하는 객체이다. Persistence는 한글로 표현하면 영속성이다. 그럼 영속성은 뭔가? 좀 더 익숙한 동의어로 표현하면 지속성을 의미한다. IT 기준에서 본다면 프로그램이 종료되어도 유지될 수 있는 데이터를 저장하는 것을 의미한다. 데이터베이스를 사용한다고 했을 때 프로그램상에서 데이터베이스와 통신하는 객체를 우리는 Repository 또는 DAO 라고 부른다. ​ 예전부터 뜻도 모르고 DAO 라는 객체를 만들어서 써왔는데 어느순간 Repository 라는 용어가 등장했다. 이렇게 비슷한 의미를 가진 용어가 등장하게 되면 패키지명, 클래스명, 변수명 등을 정할 때 바빠죽겠는데 불필요한 고통에 시달리게 된다. 이를 사전에 방지하고자 의미를 좀 더 명확하게 정리해보고..

Base/개념정리 2021.04.02

폴링

폴링(polling)이란 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다. ​ 이 방식은 버스, 멀티포인트 형태와 같이 여러 개의 장치가 동일 회선을 사용하는 상황에서 주로 사용된다. 서버의 제어 장치(또는 프로그램)는 순차적으로 각 단말 장치(또는 프로그램)에 회선을 사용하기 원하는지를 물어본다.

Base/개념정리 2021.04.02

프로비저닝(provisioning)

프로비저닝은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. ​ 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EB%B9%84%EC%A0%80%EB%8B%9D

Base/개념정리 2021.04.02
728x90