분류 전체보기 77

컨테이너란? 컨테이너와 VM의 차이

컨테이너: 소프트웨어 서비스를 실행하는 데 필요한 특정 버전의 프로그래밍 언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지 컨테이너의 이점 한 환경에서 다른 환경으로 이동될 때 애플리케이션이 올바르게 실행되지 못하는 문제는 지속되어 왔다. 이 문제는 일반적으로 구성 기본 라이브러리 요구 사항 및 기타 종속성의 차이로 발생한다. 컨테이너는 애플리케이션 패키징 및 배포에 대해 변경이 불가능한 경량 인프라를 제공하여 이 문제를 해결한다. 해당 종속성 및 해당 구성이 컨테이너 이미지로 함께 패키징되어 애플리케이션을 하나의 단위로 테스트하고 컨테이너 이미지 인스턴스로 배포할 수 있다. 컨테이너와 VM(Virtual Machine)의 차이 컨테이너와 VM 모두 소프트웨어 ..

Cloud/참고자료 2022.09.08

가상화(Virtualization)

가상화: 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술 하이퍼바이저(Hyperviser)라 불리는 소프트웨어가 하드웨어에 직접 연결되며 프로세서, 메모리, 스토리 등과 같은 단일 컴퓨터의 하드웨어 요소를 VM(가상 머신)이라는 별도의 고유하고 안전한 환경으로 분할할 수 있다. 각각의 VM은 자체 운영체제(OS)를 실행하며 마치 독립적인 컴퓨터인 것처럼 작동한다. 결국 가상화는 물리적 컴퓨터 하드웨어의 보다 효율적인 활용을 가능하게 해주며, 이를 통해 기업은 비용을 감소시킬 수 있다. 가상화는 클라우드 컴퓨팅 경제를 주도하는 기술이다. 가상화를 사용하여 클라우드 제공자는 기존의 물리적 컴퓨터 하드웨어를 사용하여 사용자에게 서비스를 제공할 수 있다. 가상화의 장..

Cloud/참고자료 2022.09.06

오픈스택(OpenStack)

오픈스택: IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트 공식적으로 클라우드 운영체제(Cloud OS)라 불리기도 한다. 구성 요소 프로젝트 명 서비스 내용 Nova Compute Service 클라우드 IaaS(Infrastructure as a Service) 구축에 필요한 가상 컴퓨트 인스턴스들을 제어하고 관리하기 위한 서비스, 오픈스택에서 가장 중요한 프로젝트 AWS EC2와 호환된 API 제공 Swift Storage Service 블록 스토리지(Block Stroage)가 아닌 오브젝트 스토리지(Object Storage) 환경을 구축하고 관리하기 위한 서비스, 오픈스택과 별개로 독립적 구축이 가능 AWS의 S3와 유사 Glance Imaging Service 가상 머신 이미지들을 저장/..

Cloud/참고자료 2022.09.06

리전(Region), 가용 영역(Availability Zone)

리전(Region): 가용영역이 2개 이상 구성된 지리적 영역 가용영역의 일종의 클러스터처럼 묶여있으며 많은 서비스들이 리전을 기반으로 해서 제공된다. 리전 내의 가용영역 간에는 높은 대역폭과 지연 시간이 매우 짧은 네트워크로 연결되어 고가용성은 물론 빠른 서비스 응답을 제공할 수 있다. 리전이나 가용영역은 AWS(아마존 웹서비스)에서 사용되는 용어이지만, 다른 클라우드 사업자(Azure, GCP, OCI) 등의 다른 클라우드 사업자에서도 동일하거나 유사한 의미로 사용된다. 가용영역(Availability Zone): 1개 이상의 물리 데이터센터를 묶은 논리적인 데이터센터 1개의 데이터센터일 수도 있고, 2개의 데이터 센터를 묶어놓은 것일 수도 있으나, 개념적으로 하나의 데이터센터라고 이해하면 된다. 가..

Cloud/참고자료 2022.09.02

final

final 키워드는 변수, 메서드, 클래스에 사용되며 어떤 곳에서 사용하느냐에 따라 다른 의미를 가진다. 변수(Variable) 변수에 final을 붙이면 변수는 재할당이 불가능하다라는 뜻이다. primitive type은 값을 변경할 수 없다는 뜻이고, 객체는 내부의 값은 변경할 수 있으나 객체 그 자체를 바꿀 수 없다는 뜻이다. public class Test { public static void main(String[] args) { final Map map = new HashMap(); final Person person = new Person(); final int a = 10; map.put("a", 1); map.put("b", 2); map.put("c", 3); map = new Hash..

Backend/Java 2022.08.16

@Retention

annotation 내부를 들여다보면 @Retention을 볼 수 있는데 개념을 어렴풋이 알고만 있다가 한 번 정리하고자 글을 쓴다. Indicates how long annotations with the annotated type are to be retained. If no Retention annotation is present on an annotation type declaration, the retention policy defaults to RetentionPolicy.CLASS. A Retention meta-annotation has effect only if the meta-annotated type is used directly for annotation. It has no effec..

Backend/Java 2022.08.15

Annotation(@)

java 개발을 하다보면 annotation을 많이 쓰게 된다. 사전적 의미로는 주석으로, 프로그램에 추가적인 정보를 제공해주는 메타데이터라고 할 수 있다. (메타데이터: 데이터를 위한 데이터) java가 기본적으로 제공하는 annotation이나 lombok library, 필요 시 개발하는 custom annotation 등이 있다. 문득, annotation을 제대로 알고 쓰는 건가 싶어 정보를 찾아보고 간략히 정리해본다. 용도 1. 보일러 플레이트 코드를 자동으로 생성할 수 있도록 정보를 제공 2. 컴파일 시 컴파일러가 에러 체크할 수 있도록 정보 제공 3. 런타임 시 특정 기능을 실행하도록 정보를 제공 @SpringBootApplication : @Configuration, @EnableAuto..

Backend/Java 2022.08.15

순수 함수란?

순수 함수 부수효과가 없는 함수 어떤 함수에 동일한 인자를 주었을 때 항상 같은 값을 리턴하는 함수 외부의 상태를 변경하지 않음 부수효과 외부의 상태를 변경하는 것 함수로 들어온 인자의 상태를 직접 변경하는 것 ex) int add(int a, int b) { return a + b; }여기서 add 함수는 인수로 같은 값을 주었을 때 리턴 값은 항상 같기 때문에 순수함수이다. int c = 20; int add2(int a, int b) { return a + b + c; } System.out.println(add2(10, 20)); // 50 c = 10; System.out.println(add2(10, 20)); // 40add2 함수에 add 함수와 동일한 인수를 넣어도 결과값이 달라진다. 순..

Backend/Java 2022.08.12

람다식(Lambda Expression), 람다란(Lambda)?

람다식(Labmda Expression) 이란 ? - 함수를 하나의 식(expression)으로 표현한 것 - 익명 함수(Anonymous Function)라고도 한다.(보통의 함수와 달리 이름이 없으므로) - 메서드처럼 특정 클래스에 종속되지 않기에 함수라고 부른다. - java에서 클래스를 만들지 않으면 함수를 사용할 수 없는데 함수형 인터페이스와 함께 람다를 제공함으로써 제약없이 함수를 사용할 수 있다. - java에서 기본적으로 함수형 인터페이스를 제공해주기 때문에 따로 생성하지 않아도 된다.(https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html) - 참조 변수로 함수형 인터페이스가 사용된다. - 익명 클..

Backend/Java 2022.08.12

메모리 단편화(Memory Fragmentation)

주 기억장치에서 메모리의 공간이 작은 공간으로 나뉘어져서, 사용하기에 충분한 공간은 있지만 사실상 사용이 불가능한 경우 메모리 단편화가 발생했다고 한다. 메모리 단편화는 외부 단편화, 내부 단편화로 나뉘어진다. 내부 단편화(Internal Fragmentation): 필요한 양보다 더 큰 메모리가 할당되었을 때 메모리 내부에서 사용하는 메모리 공간 외에 남는 사용하지 않는 메모리 공간이 발생했을 때 ex) 메모장을 실행했을 때 OS가 4KB를 할당해줬다고 하자. 메모장은 실제 1KB만을 차지한다. 필요 이상으로 메모리를 할당받은 것이고 3KB의 남는 공간이 생긴다. 이를 내부 단편화라고 한다. 외부 단편화(External Fragmentation): 메모리가 할당이 되고 해제가 되는 과정이 반복될 때 작..

CS/OS 2022.08.11