Language Classification 타입 언어는 정적 타입 언어와 동적 타입 언어로 나뉜다. 정적 타입 언어 변수의 타입이 컴파일 시간에 결정되어 고정되는 언어이다. 보통 컴파일 시간에 타입 검사를 진행한다. 정적 타입 언어의 예시로는 Java, C/C++, FORTRAN, Pascal, Scala가 있다. Java로 예를 들어 알아본다 String 타입으로 선언된 변수 name은 한번 타입이 선언되면 그 타입이 변할 수 없다. String name; // 변수는 선언된 타입을 가짐 name = "john"; // 값은 타입을 가짐 name = 32; // 변수는 타입이 변결될 수 없음동적 타입 언어 변수의 타입이 저장되는 값에 따라 실행 중에 바뀔 수 있는 언어로, 보통 실행 시간에 타입 검사를..
Type Conversion Type Conversion이란 타입 변환이다. 타입 변환의 종류에는 표현 범위가 더 넓은 쪽으로 변환하는 상향 변환인 확장 변환, 확장 변환의 반대로 표현 범위가 더 작은 자료형으로 반환하는 축소 변환이 있다. Java에서 자동 형변환은 거의 대부분 확장 변환이다. 확장 변환 예시 double y = 99; // 99.0java 확장 변환 순서 byte(1) < short(2) < int(4) < long(8) float(4) < double(8)축소 변환 예시 int 상수를 byte, short에 대입할 때 정보 손실이 없으면 자동으로 변환한다. byte b = 123; // 축소 변환 short s = 456; // 축소 변환 형변환 연산자 사용 예시 수식의 의해 계산된..
Data type 자료형은 값들의 집합 혹은 이 값들의 대한 연산들의 집합이다. 컴퓨터와 프로그래머에게 어떤 종류의 자료를 다루고 있는지 알려준다, 또한 자료가 어떤 값을 가질 수 있는지, 그 자료에 어떤 연산을 할 수 있는지를 제한한다. 자료형의 유형 자료형의 유형으로는 Basic Type과 Composite Type이 있다. Basic Type Basic Type은 기본 자료형이다. 예를 들어 int, boolean, string, char, float, double로 나뉜다. 분류 방식은 수치 타입, 불린 타입, 문자열 타입, 추가적으로 사용자 정의 기본 자료형인 열거형과 부분 타입으로 나뉜다. * 수치 타입 * 정수 타입 정수 값을 표현하는데 사용하는 바이트 수로 구분한다. FORTRAN과 같은 ..
블록 스토리지, 파일 스토리지, 오브젝트 스토리지의 차이점은? 블록 스토리지란 일정한 크기의 블록으로 나뉜 스토리지의 논리 볼륨을 블록 단위로 엑세스 하는 것이다. 각 블록이 독립적이기 때문에 서로 다른 운영체제에 엑세스할 수 있다. 따라서 효율적이고 안정적인 저장 방식이다. 하지만, 메타데이터의 기능이 제한적이고, 비용이 많이 든다는 점이 단점이다. 블록 스토리지는 파일 스토리지와는 다르게 단일 데이터 경로에 의존하지 않으므로 신속하게 데이터를 탐색할 수 있다. 파일 스토리지란 공유 파일 시스템을 통해 서버와 애플리케이션에 대한 엑세스를 제공하도록 클라우드에 데이터를 저장하는 방법이다. 예를 들어 도서관 카테고리와 같이, 인덱스를 이용해 찾아갈 수 있는 것이다. 오브젝트 스토리지란 볼륨 정보나 파일 위..
가상화란? 가상화란 물리적인 컴퓨터 자원을 추상화하며, 분산 컴퓨팅 환경을 가능하게 하는 것이다. 물리적인 컴포넌트를 논리적인 객체로 추상화한다. 예를 들어, 하나의 장치를 여러 개처럼 동작시키거나, 반대로 여러 개의 장치를 묶어 마치 하나의 장치인 것처럼 사용자에게 제공한다. 가상화의 대상 : 프로세서, 메모리, 스토리지, 네트워크 VM이란? VM이란 컴퓨터 환경을 소프트웨어적으로 구현한, 어플리케이션을 실행하기 위한 환경을 의미한다. 하이퍼바이저란? 하이퍼바이저란 하드웨어와 다수의 VM간의 인터페이스 역할을 하는, 즉 가상 머신을 생성하고 구동하는 소프트웨어이다. 하이퍼바이저 유형 하이퍼바이저는 2개의 타입으로 나뉜다. VM과 하이퍼바이저의 차이점은? 첫번째 타입은 전가상화로, 하드웨어에 어떤 소프트..
Docker란? 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 가장 대표적인 컨테이너 기술이다. Docker가 나오게 된 배경? 기존의 방식으로 나만의 앱을 만든다고 가정하면, 예를 들어 내컴퓨터의 운영체제에 안드로이드 앱, 웹서버, 데이터베이스가 깔리게된다. 하지만 이렇게 되면, 오류가 많아지고 신경써야할 게 많아진다. 그래서, 운영체제별로 각각의 안드로이드 앱, 웹 서버, 데이터베이스를 제공하면 어떨까? 라는 생각을 하게 되고 이것이 가상머신이다. 하나의 컴퓨터에 가상화를 통해 운영체제 각각마다 웹서버, 데이터베이스를 설치하는 방법을 생각하게 되는 것이다. 하지만, 가상머신을 사용한다면, 운영체제위에 운영체제가 있다보니 실행속도도 너무느려지게 된다. 한대의 컴퓨터 안에서 각각의 웹서버든 데이터베이스서버..