Security Requirements Confidentiality Data Integrity Availability User Authentication Non-repudiation Details of Theory of Secure Communication Condition of Perfect Secrecy P(M|C) = P(C|M)P(M) / P(C) P(M|C) = prob. of message M given C intercepted P(C|M) = prob. of cipher text C generated by M P(M) = prob. of M being selected P(C) = prob. of obtaining C Necessary and Sufficient Condition for Per..
Create DataFrame from Dictionary Array from pyspark.sql import Row valuesA = [('Pirate',1),('Monkey',2),('Ninja',3),('Spaghetti',4)] rdd1 = sc.parallelize(valuesA) rddA = rdd1.map(lambda x: Row(name = x[0], id = x[1])) TableA = sqlContext.createDataFrame(rddA) # TableA1 = spark.createDataFrame(valuesA, ['name', 'id']) valuesB = [('Rutabaga',1),('Pirate',2),('Ninja',3),('Darth Vader',4)] rdd2 = s..
이번 포스트에서는 빅 데이터 분산 처리∙분석 오픈소스 데이터 관리 플랫폼중 하나인 Hadoop에 대해 알아보도록 하겠습니다. 1. 분산 파일 시스템 (Distriuted File System) DFS (Distributed File System)는 클라이언트가 자신의 컴퓨터에 있는 것처럼 서버에 저장된 데이터에 액세스하고 처리 할 수 있는 클라이언트 / 서버 기반의 응용 프로그램입니다. 사용자가 서버의 파일에 접근하면 서버는 사용자에게 파일의 복사본을 전송합니다. 이 복사본은 데이터가 처리되는 동안 사용자의 컴퓨터에 캐시 된 후 서버로 반환됩니다. 분산 파일 시스템은 Master / Slave 구조로 되어 있는데 대략적인 구조는 아래 그림과 같습니다. 분산 파일 시스템은 NameNode, Secondar..
이번 포스트에서는 클라우드 컴퓨팅에서 사용되는 기술들에 대해 살펴보도록 하겠습니다. 1. Hypervisor (하이퍼바이저) 하이퍼 바이저 (Hypervisor)는 호스트 컴퓨터에서 다수의 운영체제(Operating System)를 동시에 실행하기 위한 논리적인 플랫폼 (Logical Platform) 을 의미합니다. 이를 다른 말로 VMM (Virtual Machine Monitor) 라고도 합니다. 하이퍼 바이저 (Hypervisor)는 대표적으로 두 가지 타입으로 구분되는데 이를 Type1, Type2라고 합니다. 1) Bare Metal Hypervisor (Type 1) Bare Metal은 단어 뜻으로는 그저 맨 쇳덩이라는 뜻이지만 IT 분야에서는 어떠한 Software(소프트웨어)도 담겨있지..
이번 포스트에서는 클라우드 시스템의 개요에 대해 살펴보도록 하겠습니다. 1. 클라우드 컴퓨팅 (Cloud Computing) 클라우드 컴퓨팅은 하드웨어나 소프트웨어 등 각종 IT 자원을 직접 구축하고 운영하는 기존의 방식과는 달리 네트워크를 통해 접속하여 서비스의 형태로 이용하는 기술을 말합니다. 즉, 어떤 Software를 설치하지 않고 이용하는 것을 클라우드 컴퓨팅(Cloud Computing)이라고 합니다. 비유를 하자면, 예전에는 집집마다 자체 발전기를 구축하여 직접 전기를 생산하여 사용했었다면 현재는 큰 규모의 발전소에서 전기를 생산하여 각 건물로 전기를 공급해주는 방식을 취하고 있습니다. 그리고 전기를 사용하는 사람은 사용한 만큼의 요금을 내게 됩니다. 이것이 바로 클라우드 컴퓨팅과 동일하다고..
HDFS(Hadoop Distributed File System) : Cluster에 데이터를 저장 Map Reduce : Cluster의 데이터를 처리 RDD(Resilent Distributed Dataset) - Core data structure in Spark - Distributed, resilient, immutable(수정이 안됨) - lazy evaluated : evaluation command가 나올 때 evaluation된다. - Abstract Data Set - Distribution은 System이 수행함. - Fault가 발생하면 System이 복구함. Big Issues in Distributed System Fault Tolerant : Distributed PC에 고장이..
이번 포스트에서는 비트연산에 대해 살펴보도록 하겠습니다. 프로그램에서 사용하는 n비트 정수는 내부적으로 n개의 비트로 구성된 이진수 형태로 저장이 됩니다. 예를 들어 32Bit int 자료형에서 42는 아래와 같습니다. 00000000000000000000000000101010 이진수를 10진수로 변경하는 방법은 각 자리 수에 2의 n-1제곱을 곱해주면 구할 수 있습니다. (중학교 때 배운 것으로 간주하고 넘어가겠습니다.) 부호가 있는 n비트 정수 변수에는 -2^(n-1) 부터 2^(n-1)-1까지의 정수를 저장할 수 있습니다. 부호가 있는 정수 표현에서 가장 왼쪽 비트는 부호를 나타내며 0은 양수를 나타내고 1은 음수를 나타냅니다. 나머지 n-1개의 비트는 정수의 크기를 표현하게 됩니다. 부호가 없는 ..
이번 포스트에서는 문제 풀이를 위한 프로그래밍 기법 두번째 재귀적 알고리즘에 대해서 알아보도록 하겠습니다. 재귀를 사용하면 알고리즘을 잘 구현할 수 있게 되는 경우가 많이 있습니다.(안좋은 경우도 있지만) 문제 풀이를 하면서 답이 될 수 있을 만한 재귀적 풀이 후보들을 소개해보고자 합니다. 1. 부분집합 생성하기 재귀를 사용하는 예 중 부분집합 생성하기에 대해 살펴보도록 하겠습니다. 원소가 n개인 집합의 모든 부분집합을 생성하는 알고리즘을 구현해야하는 상황에 있다고 생각해봅시다. {1, 2, 3}의 부분집합은 (공집합), {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} 이렇게 있습니다. 우선 부분집합을 구하는 search라는 함수는 다음과 같은 벡터를 사용합니다. 1 vec..
- Total
- Today
- Yesterday
- retrofit
- 아이폰
- Kotlin
- 컬렉션
- 코틀린
- java
- Apple Watch
- Rxjava
- watchos
- 오토레이아웃
- 안드로이드
- C++
- Auto Layout
- apple
- 함수형
- 상속
- Reactive programming
- 스위프트
- android
- Notissu
- XCode
- 함수형프로그래밍
- Swift
- Elliotable
- CloudComputing
- 알고리즘
- databinding
- 애플워치
- ios
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |