
본 포스트에서는 OpenStack을 로컬 환경에 설치하고, 변경 사항을 제출하는 방법에 대해서 설명하고자 합니다. DevStack DevStack이란? DevStack은 git의 master 브랜치의 최신 버전을 기반으로 완전한 OpenStack 환경을 신속하게 띄우는 데 사용되는 확장 가능한 스크립트 모음입니다. DevStack은 개발 환경과 많은 OpenStack 프로젝트의 기능 테스트의 기초로서 상호적으로 사용됩니다. 즉, OpenStack을 쉽게 설치할 수 있도록 도와주는 스크립트라고 생각하시면 됩니다. DevStack 설치하기 주의! DevStack은 설치 중에 시스템의 많은 부분을 변경합니다. 오로지 이 목적으로만 사용되는 서버나 가상 머신에서만 DevStack을 실행하세요. Stack Use..

이번 포스트에서는 OpenStack에 contribute 하기 전에 해결하기 쉬운 버그나 이슈를 찾는 방법에 대해 설명할 것입니다. 본 포스트는 실제로 제가 OpenStack에 기여하기 위해 진행했던 과정들임을 참고해주시기 바랍니다. 해결하고자 하는 버그 또는 이슈 찾기 OpenStack에 기여하는 방법은 여러 가지가 존재합니다. 하지만 blueprint에 제시된 새로운 기능을 구현하거나, 양이 많은 패치는 처음 기여를 하는 개발자들에게는 어려운 일입니다. 따라서 우리는 해결하기 쉬운, 간단한 버그부터 찾아보도록 하겠습니다. 먼저, OpenStack의 이슈나 버그들은 현재 대부분 Launchpad를 통해서 보고됩니다. OpenStack에는 매우 많은 프로젝트가 존재하는데요, 여기서 본인이 기여하고자 하는..

Fragmentation (단편화) External fragmentation (외부 단편화) 프로세스를 실행하기 위한 메모리 공간이 physical 메모리 내에 존재하지만, 연속적이지 않아서 할당할 수 없는 상황 Internal fragmentation (내부 단편화) 프로세스를 실행하기 위해 메모리가 할당됐지만, 프로세스가 필요한 양보다 더 많이 할당되어 프로세스에게 할당된 메모리가 낭비되는 상황 50-percent rule First-fit을 통계적으로 분석해보면, 만약 메모리 내에서 N개의 블록이 할당되었을 때, 0.5N개의 블록이 internal fragmentation으로 손실될 수 있다. 즉, 1.5N개의 블록 중 0.5N개가 손실되므로, 메모리의 1/3을 쓸 수 없게 될 수 있다는 것을 의미..

문제 보기 이 문제는 브루트 포스 문제이다. 이 문제는 2019년 삼성 하반기 SW 역량 테스트에서 나온 두 번째 문제이다. 문제를 푸는데 3일이나 걸렸다... (도움을 주신 정인준 선배님 감사합니다ㅠㅠ) 지금 와서 되돌아보니 풀이의 큰 흐름은 맞았지만, 문제에서 간과하기 쉬운 조건들이 있었다. 이제는 삼성 SW 역량 테스트에서 알고리즘의 구현을 할 수 있는지 묻는 게 아니라, 문제 속에 찾기 힘든 조건들을 포함시키는 게 요즘 추세인 것 같다. 먼저, 백준에 나와있는 윷놀이 판의 그림은 헷갈리는 부분이 있으므로 이를 명확하게 하기 위해서 다음의 그림을 참고하면 좋을 것 같다. 위와 같은 윷놀이 판에서, 모든 경우의 수를 따져야 하므로 말이 지나갈 경로를 정해야 한다. 경로를 어떻게 구성하고 구현할지는 사..

Memory Access 프로그램은 실행되기 위해서 반드시 메모리에 로드되어야 한다. CPU는 오로지 레지스터와 메인 메모리에만 접근할 수 있다. 메모리 유닛은 메모리 주소들의 흐름만 볼 수 있다. context oblivious 메모리 주소만 알고 메모리에 대한 어떤 것도 모른다. Memory Protection Mechanism Address Binding 현대의 운영체제는 프로세스가 물리 메모리의 어떤 부분에도 상주할 수 있도록 한다. 컴파일러는 symbolic address를 relocatable address(= relative address)로 bind 한다. 링커와 로더는 relocatable address를 absolute address로 bind 한다. Address Binding Tim..

이번 포스트에서는, 변경 사항에 대해서 어떻게 추적하고, 각 리뷰 점수가 어떤 의미를 갖는지 알아보겠습니다. 변경사항 추적하기 변경사항을 제출하고 난 후, 여기서 변경사항을 추적할 수 있습니다. 로그인 후, 제출한 변경사항에 대해서 "Outgoing reviews", 리뷰하고 있는 변경사항에 대해서 "Incoming reviews", 본인이 리뷰어이거나 소유자인 변경사항에 대해 "Recently closed"인 대시보드를 볼 수 있습니다. 리뷰어 추가하기 때로는 우리의 패치에 대해서 의견을 내줄 사람들이 필요할 때가 있습니다. 왜냐하면 그 사람들은 여러 권한을 가지고 있을 수도 있고, 당신을 돕는 멘토일 수도 있기 때문입니다. 우리가 새로운 패치나 패치셋을 업로드했다는 것을 알리는 가장 쉬운 방법은 ge..

문제 보기 이 문제는 BFS와 시뮬레이션 문제이다. 갈수록 삼성 SW 역량 테스트의 문제가 점점 더 구현에 까다로운 조건을 추가하기 시작하는 게 느껴진다. 먼저, 문제를 풀기 위해 원판의 숫자를 어떻게 표현할 것인지에 대해서 생각해보아야 한다. 문제에서 주어진 원판을 행렬로 표현하면 다음과 같다. 이제 원판을 행렬로 나타냈으니, 원판을 회전시키는 함수를 작성한다. i번째의 원판을 회전시킬 때, i의 배수인 원판 모두 회전을 시켜야 한다. 이 부분에 대한 구현은 13~27번째 줄에 다음과 같이 구현되어 있다. def rotate(_x, _d, _k): # rotate counter-clockwise if _d: # for all disks which is multiple of x for i in range..
- Total
- Today
- Yesterday