본문 바로가기

분류 전체보기

(19)
Virtual Machine vs Container Container와 VM을 비교할때 설명하는 부분이 정리가 필요하여 이곳에 정리하려한다. VM(Virtual Machine) 컴퓨터 환경을 가상화하여 소프트웨어화 한것으로 Hypervisor위에 OS, Memory, Driver 등과 같은 컴퓨터환경이 구성되기위해 필요한 요소들이 갖춰진다. 서버 한대에서 여러개의 OS를 사용할 수 있는 장점과 서버공간을 효율적으로 사용할 수 있다. Container VM과 비교하였을때 어플리케이션 중심으로 설계되었다고 볼 수 있다. Container는 별도의 OS나 Driver없이 Host OS를 공유한다. 개별 어플리케이션을 위한 가상공간을 할당해준다. 컨테이너 기술은 리눅스에서 프로세스 격리를 위해 사용하던 기술들을 조합하여 발전한 것으로 chroot, namespa..
Kubernetes 개념 - Object 먼저 Kubernetes란??? Kubernetes : 구글에서 개발한 컨테이너 오케스트레이션 다음은 Kubernetes가 구성되는 개념인 Object와 Controller에 대해서 정리해보려고한다. Object란 "하나의 의도를 담은 레코드" 라고 쿠버네티스 공식문서에 나와있다. - 여기서 의도를 담은 레코드란 무엇일까?? 레코드마다 음악이 다르듯이 Kuberntes에서도 각 object들이 어떤 의미를 가지고 행하는것인지 하는게 아닐까?? 라고 추측해본다 (주관적인 생각) Kubernets에서 기본적인 구성단위가 되는건 크게 Basic Object와 Basic Object를 추가관리하는 Controller로 나뉜다고한다. Basic Object - Pod 쿠버네티스에서 가장 기본적인 배포단위, 컨테이..
Lock의 개념 Lock에 대해서 정리해보려한다. Lock이란?? 데이터의 일관성을 보장하기 위한 방법. Lock의 종류는 2가지로 나뉜다. Shared Lock (공유 Lock 또는 Read Lock) 데이터를 조회할때 사용. Read Lock이 걸려있을때는 다른 Read Lock을 설정할 수 있음 데이터에 Lock을 걸었지만 다른 사용자나 기기에선 조회가 가능하지만 변경이 불가능 Exclusive Lock (배타적 Lock 또는 Write lock) 데이터를 변경할때 사용, Write Lock이 걸려있을때는 다른 Write Lock을 설정할 수 없음. Dead Lock이란? - 2개 이상의 트랜잭션이 리소스의 Lock을 할당받기위해서 발생하는 교착상태 Dead Lock 해결방안 - Dead Lock을 발견하면 하나의..
Transaction이란? 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위 하나의 작업을 수행하기위해 모아놓은 데이터베이스들의 연산 집합을 뜻하며 "데이터베이스의 상태를 변화시키는 하나의 논리적기능을 수행하는 작업 단위" 이다 ※ 트랜잭션의 특징 원자성 (Atomicity) 일관성 (Consistency) 독립성 (Isolation) 지속성 (Durability) ACID 원자성 : 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것 일관성 : 트랜잭션의 작업처리 결과가 항상 일관되야 한다는 것 독립성: 하나의 트랜잭션에는 다른 트랜잭션이 관여할 수 없다는 것 지속성: 트랜잭션이 성공적으로 완료되었을 경우 결과는 영구적으로 반영되야한다는 것
Service Mesh란?? Service Mesh에대해서 정리해보려한다. Microservices Architecture 가 적용된 시스템의 내부 통신을 구조화 해보면 Mesh(망) 형태로 보여 Service Mesh라고 명명하였다고 한다. Service Mesh란?? - 마이크로 서비스간의 통신(네트워크)를 담당하는 역할 - 마이크로 서비스간의 통신을 추상화하고 네트워크 기능을 비즈니스 로직과 분리한 Infrastructure layer이다. - URL 경로, Header, API 버전 등을 기반으로 하는 7계층 Network layer이다. 왜 Service Mesh를 적용하는가??? - 서비스 와 인스턴스의 증가로 Microservices의 복잡성이 증가하고 동적인 인스턴스가 Up/Down 되는 상태에서 각 서비스간 수 많은..
Kubernetes 개념 - Controller Kubernetes Controller란?? -> Basic Object를 생성하고 관리하는 역할을 한다. 1. Deployment 2. ReplicaSet 3. StatefulSet 4. DaemonSet 5. Job 컨트롤러의 역할을 구분하면서 해당하는 컨트롤러들을 분류해보자. - 역할 1. Auto-Healing Pod 의 문제가 생기거나 실행되는 노드에 문제가 생기면 해당 Pod를 다시 실행하는 기능 ( Replicaset, Daemonset이 여기에 해당) 2. Software Update Pod에 대한 버전 및 자동 업데이트를 담당하며 롤백을 할수 있다.(Deployment) 3. Auto-Scaling Pod에 리소스가 부족할때 추가적으로 Pod를 생성하고 분산하여 Pod를 죽지않게한다. 4..
MVC패턴이란??? 오늘은 MVC패턴에 대해서 정리해보려한다. MVC - Model + View + Controller 의 약자로써 디자인패턴 중 하나이다. 디자인패턴 : 기존 환경에서 반복적으로 일어나는 문제들을 '어떻게' 풀어갈것인가에 대한 솔루션 - 하나의 프로젝트, 어플리케이션 등을 구성할때 구성요소들을 역할로 구분한 것 Spring Framework는 MVC패턴을 중시한다!! Model 비즈니스 로직을 구현하는 영역 데이터베이스에 연결되어 CRUD 작업을 수행하거나 데이터를 처리한다. View 사용자에게 출력할 영역 User의 모니터에서 출력되는 화면을 담당하는 영역으로, HTML, JSP, CSS, JS 등을 모아두는 영역 Controller 사용자의 요청을 받고 업무를 수행하는 Model을 호출하는 영역으로 입..
추상클래스와 인터페이스 정리 오늘은 추상클래스와 인터페이스에 대해서 정리해보려한다. 1. 추상 클래스 (abstract class) 하나 이상의 추상 메소드를 포함하는 클래스 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있다. ※ 추상 메소드(abstract method) 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드 더보기 - 오버라이딩 (Overriding) 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 재정의하는 것 오버라이딩은 부모 클래스의 메소드를 재정의하는 것이므로, 자식 클래스에서는 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 함 @Override Override 어노테이션은 오버라이딩을 검증하는 기능을..