사막의 여우
Loading...
2020. 1. 28. 13:12

[오픈스택 클라우드 개념] 인증 서비스(Keystone)

blog post 이번 포스트에서는 오픈스택에서의 인증, 승인 등의 서비스를 제공하는 Keystone 서비스에 관하여 다뤄보도록 하겠습니다. 오픈스택 인증 서비스(Keystone) 특징 앞서 말씀드린 바와 같이 Keystone의 핵심은 사용자 및 각종 서비스 접근에 대한 인증 서비스를 제공하는 것이지만, 이에 더하여 다양한 기능을 수행합니다. 구체적으로 Keystone 서비스는 오픈스택 시스템의 백엔드에서 아래와 같은 기능들을 수행합니다. - Identity: Keystone 서비스의 핵심 기능입니다. 사용자 및 그룹, 프로젝트, 역할 등을 관리합니다. - Assignment: 역할을 관리하고 사용자에게 역할을 할당합니다. - Resource: 자원 할당을 위해 도메인 별로 조직을 구분하고 조직 내 프로..

2020. 1. 10. 21:43

[Mac] 맥 VMware Fusion 11.5에서 Windows 8.1, 10 Guest OS (가상머신) 화면 깜빡임 및 블랙아웃, 블랙스크린 현상

blog post 블랙아웃 상황 기존 패럴렐즈에서 사용하던 Windows 8.1 가상머신을 VMware로 마이그레이션 하고 Vmware 툴을 설치했습니다. 이후 재부팅을 하고 보니 아래와 같이 화면이 심하게 깜빡이기 시작했습니다. 처음 보는 현상이었는데, 깜빡이는 도중에도 마우스나 키보드 사용은 가능했습니다. 하지만 사용하면 할 수록 깜빡임이 심해졌고, 결국 완전히 블랙스크린이 되어버려서 더 이상 컨트롤이 어려운 상황이 되었습니다. 이를 해결하기 위해 여러가지 방법을 찾아 보았고, 근본적인 원인을 찾은 것은 아니지만 해결하는 과정을 기록해 봅니다. 1. 비디오 드라이버 문제? 혹시나 하는 생각에 우선 재부팅부터 해보았지만 효과는 없었습니다. 따라서 비디오 드라이버에 문제가 있을 것으로 의심되었습니다. 사..

[C++ / STL] sort 함수를 활용한 오름차순 / 내림차순 정렬

blog post Sort 알고리즘 얼마전 현장 코딩 테스트에서 Sort 함수를 활용한 내림차순 정렬을 구현하려고 했는데 키워드가 생각이 안나서 써먹지 못한 경험이 있습니다. 결국은 직접 내림차순 정렬을 구현했는데, C++ STL의 기본 알고리즘 중에 greater 와 less를 활용하면 정렬을 아주 간단하게 구현할 수 있습니다. STL Sort 함수 우선 STL Sort 함수의 기본 포맷은 다음과 같습니다. default (1) template void sort (RandomAccessIterator first, RandomAccessIterator last); custom (2) template void sort (RandomAccessIterator first, RandomAccessIterator..

2020. 1. 2. 01:16

[C++] 5가지 온라인 컴파일러 사이트 비교

blog post 개발환경을 구축하기 위해서는 여러가지로 손이 참 많이 갑니다. 그래서 저는 온라인 컴파일 환경을 자주 사용하는 편입니다. 물론 이번 포스팅에서 추천드릴 사이트들은 기업에서의 대규모 프로젝트를 빌드하고 테스트하기에 적합한 환경은 절대 아닙니다. 다만 어떤 알고리즘을 테스트해야 하는 경우, 혹은 코딩 테스트를 연습하면서 디버깅을 해보고 싶거나, 컴파일러 별로 어떤 차이가 있는지 알고싶은 경우에 유용합니다. 컴파일러 사이트 별로 지원하는 언어나 컴파일러, 라이브러리 등이 전부 다릅니다. 본 포스팅에서는 주로 C++과 관련하여 각 온라인 컴파일 서버별 특징들을 살펴보도록 하겠습니다. OnlineGDB 제가 가장 즐겨쓰는 온라인 컴파일 사이트 입니다. 사실 Boost 라이브러리를 지원하지 않는다..

2020. 1. 1. 20:44

[알고리즘 / C++] DFS(깊이 우선 탐색) 알고리즘 개념 및 스택과 재귀를 활용한 구현

DFS(Depth First Search) 알고리즘 DFS(깊이 우선 탐색) 역시 앞서 포스팅했던 BFS 알고리즘과 마찬가지로 길찾기 알고리즘을 구현할 때 유용한 그래프 탐색 알고리즘입니다. Brute Force(완전탐색) 형태로 모든 경우의 수를 다 시도하여 답을 찾는 방법으로, 이름과 같이 깊이(Depth)를 끊임없이 추적하며 전체 정점을 탐색합니다. 앞서 인접행렬과 BFS탐색 알고리즘에서 보였던 아래와 같은 그래프와 인접행렬을 예로 들어보겠습니다. 1부터 탐색을 시작한다고 가정할 때, BFS가 2와 3을 큐에 담는 것과 달리, DFS는 오직 가장 근접한 값인 2만 스택에 담습니다. 그리고 두번째 뎁스인 2에서 다음 탐색을 이어갈 정점을 찾습니다. 1,4,5가 2와 연결되어있지만, 1은 이미 탐색을 ..

2019. 12. 26. 17:07

[Algorithm / C++] 인접행렬과 BFS (너비 우선 탐색) 알고리즘 및 구현

이번 포스팅에서는 탐색 알고리즘에서 가장 중요하게 활용되는 BFS 알고리즘과 인접 행렬에 대해 다루도록 하겠습니다. 인접행렬 인접행렬에 대한 설명은 다른 사이트에서 워낙 많이 다뤄 온 주제이기 때문에 본 포스팅에서 구체적으로 설명하지 않겠습니다. 그럼에도 불구하고 본 포스팅에서 인접행렬을 다루는 가장 큰 이유는 BFS 알고리즘과 관련이 많기 때문입니다. 보통 경로 탐색 알고리즘을 사용하는 경우, 예를 들어 A->Z로 가는 방향에 대해 최적의 경로를 찾고자 하는 경우, 다양한 방식으로 경로를 계산하고 이를 표현할 수 있습니다. 어떠한 알고리즘을 사용하느냐에 따라 경로가 달라지는데, 이러한 경로에 대한 정보를 행렬로 표현할 수 있습니다. 흔히 사용되는 행렬이 인접행렬입니다. 인접 행렬에는 다음과 같이 몇 가..

2019. 12. 26. 03:40

[Algorithm / C++] String을 파싱하는 3가지 방법

문자열 파싱 알고리즘 String 처리와 관련된 알고리즘 문제를 해결하는 과정에서 종종 Sub String을 파싱해서 처리해야 하는 상황에 직면하곤 합니다. 사실 파싱하는 방법은 머릿속으로 방법을 그리는 것은 쉽다고 생각할 수 있지만 직접 만들어보지 않으면 생각보다 어려울 수도 있습니다. 그래서 이번 포스팅에서는 알고리즘 문제를 해결하기 위해 반드시 필요한 문자열 파싱 알고리즘에 대해 다루고자 합니다. 문자열을 파싱하는 방법은 정말 다양합니다. 언어에 따라서는 기본적으로 파싱 기능을 제공하기도 합니다. Java가 대표적으로 파싱을 위한 tokenizer기능을 제공하고 있습니다. C++의 경우에는 공식적으로 STL을 통한 파싱 알고리즘은 아직 제공하지 않고 있습니다. (다만 시간 포맷으로 구성된 strin..

2019. 12. 25. 17:17

[Algorithm / C++] BackTracking 기법을 활용한 순열(Permutation)과 조합(Combination) 구현

blog post 순열과 조합 개발 과정에서 어떤 집합의 경우의 수를 찾아야 하는 경우가 종종 있습니다. 이때 경우에 따라 조합 혹은 순열을 활용해야 하는데, 둘의 차이는 다음과 같습니다. - 조합(Combination): 순서 바뀜 허용 안함. 중복 허용 안함. 표현: nCr = n! / r! * (n - r)! . - 순열(Permutation): 순서 바뀜 허용. 중복 허용 안함. 표현: nPr = nCr x r! . 예를 들어 {1,2,3} 세개의 요소를 가지고 있는 벡터 v={1,2,3} 를 활용하여 각각 순열과 조합을 구성하고자 하는 경우 아래와 같은 경우의 수를 도출할 수 있습니다. 순열: - 3개의 원소로 조합 가능한 모든 구성: 3P3 (nPn = n!). 가능한 구성: {1,2,3}, ..

2019. 12. 24. 02:05

[리눅스 네트워크] 1개의 NIC에서 Veth를 이용하여 멀티 IP 구성하기 (Update. 2020.04.30)

blog post Veth peer 구성부터 활용까지 집에서 오픈스택 기반 Private 클라우드를 구축하던 도중 호스트 네트워크 구성 단계에서 문제가 발생했습니다. 가상화가 필요 없는 Cinder, Controller, Network 노드는 어차피 Vmware로 돌릴 계획이므로 가상 NIC를 2개씩 (각각 관리용, 통신용 NIC)구성하였으나, Compute Node가 문제였습니다. 현재 Compute Node의 경우, 가상화를 지원하는 Intel NUC Kit으로 구축하였는데 문제는 물리 NIC가 한 개라는 점입니다. 이럴때 흔히 다음과 같이 멀티 IP를 사용하여 구성하곤 합니다: eno0:0 - 192.168.0.2/24 --> gw - 192.168.0.1 eno0:1 - 192.168.0.3/24..

2018. 1. 28. 16:53

가로수길에 입점한 전 세계 500호 애플스토어 오픈 방문기

b l o g p o s t 아이폰 배터리 게이트로 최근 떠들석 했던 애플이 국내 500호 애플스토어를 오픈했다는 소식을 듣고 방문해봤습니다. 배터리 사건 이후 썩 이미지가 좋지 않았는데, 국내 첫 오픈으로 궁금했던 터라 오픈 당일에 방문해봤습니다. 역시 어마어마한 인파가 휘몰아쳐 내부는 발 디딜 곳도 없었고, 사진도 찍기 힘들어서 2장 밖에 건지질 못했네요.. 우선 위치는 신사역과 압구정 역 사이에 있는 가로수길 중앙에 있어요. 길은 찾기 쉬웠습니다. 저는 신사역 방면에서 출발했고 가로수길 입구에서 길 따라 쭉 가면 바로 나와요. 외부 전경 미국에서 방문했을 당시 가장 인상적이었던건 전면 유리로 된 애플 스토어 외관이었습니다. 국내 가로수길점 애플 스토어 역시 전면 유리로 되어 주변 건물 중에 눈에 띄..