[클라우드실습] #4 Kubernetes
·
기타 전공/클라우드실습
• 쿠버네티스란? 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템이다.서버가 여러대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구라고 생각하면 쉽다! • 클러스터 구성요소 Cluster 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신의 집합 Master클러스터 전체를 컨트롤하며 내부에 있는 모든 노드를 관리하는 가상 머신 Worker마스터에 의해 명령을 받고 실제 컨테이너들이 생성되고 일을 하는 가상 머신• 쿠버네티스 클러스터 구성 cloud-controll-manager컨트롤러들을 클라우드 서비스와 연결하여 관리한다. kubelet모든 노드에서 실행되며 컨테이너 실행 및 지속적인 헬스체크를 통해 마스터의 kube-api-server..
[클라우드실습] #3 클라우드 네이티브 애플리케이션
·
기타 전공/클라우드실습
• 클라우드 네이티브 클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식이다.기존 애플리케이션 개발의 한계를 극복하고 민첩성, 생산성 등 효율화를 위해 등장하였다. 클라우드 네이티브 애플리케이션의 핵심은 '서비스' 이다. • 전통적인 애플리케이션 vs 클라우드 네이티브 애플리케이션구분전통적인 애플리케이션클라우드 네이티브 애플리케이션핵심정기적, 안정성민첩성개발 방법폭포수형 개발 방법애자일 개발방법팀 구성역할에 따른 별도 팀 구성(개발팀, 운영팀, QW팀, 보안팀 등)DevOps 방식 운영(개발-운영 간의 협업 프로세스 자동화)배포 주기길고 간헐적인 배포짧고 지속적인 배포(CI / CD)애플리케이션 아키텍처강한 결합단일(Monolithic)느슨한 결합분산(MicroService)..
[객체지향프로그래밍] #9 람다식
·
CS/객체지향프로그래밍
• 수학의 람다식 x, y의 값을 계산하는 수학 함수 f를 람다식으로 변환해보자.f(x, y) = x + y // x, y의 합을 구하는 수학의 함수 함수의 이름을 제거하고 간소하게 표현된다.(x, y) -> x + y 수학에서 람다식은 이름 없는 함수를 뜻한다.아래와 같이 괄호와 함께 x와 y에 대입될 값을 지정하면 계산이 이루어진다.((x, y) -> x + y)(2, 3)= 2 + 3= 5 • 자바의 람다식 자바에서는 함수를 메소드라고 부른다. • 람다식 구조 매개변수 리스트함수에 전달되는 매개변수를 나열한다생략 시, 컴파일러가 추론하여 알아서 처리한다.매개변수가 1개인 경우, 괄호를 생략할 수 있다. 애로우 토큰 ( -> )매개변수 리스트와 함수 코드를 분리시키는 역할이다.매개변수들을 전달하여 함..
[객체지향프로그래밍] #8 Nested Classes
·
CS/객체지향프로그래밍
• Nested Classes 다른 클래스 내에 정의된 클래스이다.외부 클래스의 멤버로 간주하며 멤버 변수 및 메서드에 접근할 수 있다.코드의 구조를 조직화하고 캡슐화하는데 유용하다. • Nested 클래스 4가지 1. Static Nested 클래스 (정적 중첩 클래스)외부 클래스의 정적 멤버로 선언되는 클래스이다외부 클래스의 인스턴스에 종속되지 않고 정적 멤버에만 접근한다. 2. Inner 클래스 (인스턴스 중첩 클래스)외부 클래스의 멤버 변수로 선언되는 클래스이다.외부 클래스의 인스턴스에 종속되며 모든 멤버에 접근할 수 있다.외부 클래스의 인스턴스를 통해 생성된다.class OuterClass { // 외부 클래스 class InnerClass { // 인스턴스 중첩 클래스 int..
[객체지향프로그래밍] #7 제네릭과 컬렉션
·
CS/객체지향프로그래밍
> Vector는 배열을 가변 크기로 다룰 수 있게 하고, 객체의 삽입, 삭제, 이동이 쉽도록 구성한 컬렉션 클래스이다.벡터에 삽입되는 요소의 개수에 따라 자동으로 크기를 조절한다.요소의 삽입과 삭제에 따라 자동으로 요소들의 자리를 이동한다. • 벡터 생성벡터를 생성할때 Vector의 E에 요소로 사용할 타입을 지정해야 한다.(int, char, double 등 기본 타입은 Wrapper 객체로 만들어야 저장해야 한다.)Vector v = new Vector(); • 주요 메소드 > HashMap은 key와 value의 쌍으로 구성되는 요소를 다루는 컬렉션이다.K는 키로 사용할 요소의 타입, V는 값으로 사용할 요소의 타입을 지정한다.HashMap h = new HashMap • 주요 메소드
[자료구조] #21 Graph(1)
·
CS/자료구조
• 그래프 임의의 두 개체의 연결 관계를 표현하는 자료구조이다.추천 시스템, 검색 시스템, 지식 표현 및 추출에 사용될 수 있다. • 그래프의 정의 그래프는 정점 집합과 간선 집합의 쌍으로 정의한다 G = (V, E) V(정점) : 하나의 노드는 고유한 key로 식별된다.E(간선) : E = {(u, v) | u, v ∈ V} • 그래프의 종류 방향 그래프 간선에 방향이 있어서 한쪽 방향으로만 갈 수 있다.(u → v)로 표현한다.(u → v) ≠ (v → u) 무방향 그래프 간선을 통해 양방향으로 갈 수 있다.(u, v) 또는 (u ↔ v)로 표현한다.(u, v) = (v, u) 가중치 그래프 간선에 비용(cost) 또는 가중치(weight)가 할당된 그래프이다. • 그래프 용어 인접 정점하나의 정점에..
[컴퓨터구조] #12 Memory(3)
·
CS/컴퓨터구조
Physical Addressing간단한 시스템에서 사용ex) 자동차, 엘리베이터, 디지털 카메라 등 Virtual Addressing최신 서버, 노트북, 스마트폰에서 사용 • Virtual Memory 메인 메모리를 스토리지의 캐시로 사용한다. 프로그램들은 메인 메모리를 공유한다.각 프로그램은 자주 사용하는 코드와 데이터를 저장하는 개별 가상 주소 공간을 가진다.메모리 참조 시 가상 주소를 사용한다.가상 주소 공간은 다른 프로세스로부터 보호된다. 가상 메모리의 block은 page라고 한다.주소 변환 실패는 Page fault라고 한다. • Virtual Address 프로그램은 메모리의 어느 위치에든 배치될 수 있다.여러 개의 프로그램이 동시에 수행될 수 있다. Address Translatinon은..
[컴퓨터구조] #11 Memory(2)
·
CS/컴퓨터구조
• Direct Mapped Problem Conflict Miss가 계속 반복해서 일어날 가능성이 있다. Block Size가 모두 4byte인 Extreme Case를 가정해보자.Cache에 하나의 Entry만 있기 때문에 Conflict Miss가 끊임없이 발생하게 된다. 위와 같은 상황을 Trashing이라고 한다.(Cache에 Data를 Loading하기 전에 반드시 원래 있던 Data를 쫓아내야 하는 상황) • Fully Associative Cache 각 Entry에 모든 주소로부터 온 Data가 저장될 수 있도록 한다. 장점 : Conflict Miss가 발생하지 않고 Cache가 꽉 차서 발생하는 Miss인 Capacity Miss만 발생한다.단점 : 모든 Entry의 Cache Tag를..
[컴퓨터구조] #10 Memory(1)
·
CS/컴퓨터구조
서로 다른 종류의 저장 장치는 다른 access time을 가진다. Random access 데이터가 어디있든지 간에 동일한 access time을 가진다.ex) DRAM, SRAM, Flash Memory Non-random access데이터의 위치에 따라 access time이 달라진다.현재는 거의 사용되지 않는다. • Dynamic Random Access Memory (DRAM) Data가 주기적으로 refresh 되어야 해서 Dynamic이다. Capacitor에 전하가 충전되는 것으로 data가 저장된다. 1 트랜지스터가 전하량을 확인하는데 사용된다.(충전되면 1, 빠지면 0) 데이터를 읽고 다시 써줘야 한다.구멍 뚫린 양동이라고 생각하면 이해하기 쉽다. • Static Random Acces..
[자료구조] #20 Disjoint Set
·
CS/자료구조
• Disjoint set (서로소 집합) 두 집합의 교집합이 empty하면 disjoint하다고 한다.입력을 여러 개의 상호 배타적인 그룹으로 나누어 관리할 때 사용한다. • 주요 연산 make-set(u) : 원소 u가 주어졌을때 u만을 담는 새로운 집합을 생성한다.find-set(u) : 입력 원소 u를 담고 있는 집합을 반환한다.union(u, v) : u를 가지고 있는 집합과 v를 가지고 있는 집합을 합친다. Disjoint set에서는 교집합 연산을 고려할 필요가 없다. • Disjoint Set의 표현 Disjoint set은 non-binary tree로 표현한다. 부모 노드를 가리키는 parent pointer tree를 사용한다.(각 자식 노드는 부모를 가리키고, 루트 노드는 자기 자신..