오늘도 운영체제 구조, 특히 그 중에서도 디자인 관점에서 공부를 해 보려고 한다. 프로세스 관리(Process Management) 프로세스는 실행중인 프로그램을 의미한다. 프로그램은 파일 형태로 존재하는 수동적 상태(Passive Entity)이며, 프로세스는 프로그램 카운터를 가지는 능동적 상태(Active Entity)이다. 싱글 스레드 프로세스는 1개의 프로그램 카운터를, 멀티 스레드 프로세스는 스레드당 1개의 카운터를 가진다. ※프로그램 카운터(Program Counter)란? 프로그램 카운터(Program counter, PC)는 마이크로프로세서(CPU) 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다. 때문에 명령어 포인터..
면접
이번 포스팅에서는 그래프 자료구조에 대해서 공부해 본다. 그래프 그래프(Graph)는 노드(node)와 그 노드를 연결하는 간선(edge)을 하나로 모아놓은 자료구조이다. 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있다. 예를 들면 지하철에서 다른 역으로 가는 최단 경로를 찾아주는 서비스도 그래프 알고리즘을 사용한다. 그래프의 한 종류로 트리 자료구조가 있는데 그래프와 트리의 차이는 다음과 같다. 그래프 관련 용어를 정리하면 다음과 같다. 먼저 정점과 간선의 연결 관계에서 방향성을 가지는 지를 가지고 나누어 볼 수 있다. 방향성이 없는 그래프를 무향 그래프(Undirected Graph)라 하고, 방향성이 포함되어 있는 그래프를 유향 그래프(Directed Graph)라고 한다. 무향 그래프에서 각..
오늘은 트리와 힙 자료구조에 대해서 알아보려고 한다. 트리 트리(Tree)는 스택이나 큐와 같은 선형 구조가 아닌 비선형 자료구조이다. 계층적(Hierarchical) 자료구조라고 표현하기도 한다. 유닉스/윈도우의 디렉터리(폴더) 구조가 대표적인 트리 구조의 예시이다. 트리와 관련된 용어들은 다음과 같다. 노드(Node) : 트리를 구성하는 기본 원소 간선(Edge) : 트리를 구성하기 위해 노드와 노드를 연결하는 선을 의미 루트 노드(Root Node) : 트리 구조에서 최상위에 있는 노드 부모 노드(Parent Node) : 루트 노드 방향으로 직접 연결된 노드 자식 노드(Child Node) : 루트 노드 반대방향으로 직접 연결된 노드 형제 노드(Siblings Node) : 같은 부모 노드를 갖는..
SW엔지니어로서 면접을 준비하면서 기본적인 컴퓨터 사이언스 지식을 복습하는 의미에서 이렇게 블로그에 정리를 하고자 한다. 가장 먼저 복습할 과목은 자료구조이다. 이번 글에서는 배열, 그리고 해시테이블에 대해서 복습해 보려 한다. 먼저 배열부터 살펴보자. 배열 배열(array)은 연관된 데이터를 모아서 한 번에 관리하기 위해 사용하는 데이터 타입이다. 배열은 논리적인 저장순서와 물리적인 저장순서가 일치한다. 따라서 인덱스(index)를 사용하여 해당 원소에 접근할 수가 있다. 인덱스를 알고 있다면 각각의 원소를 바로 찾아갈 수 있게 되므로 원소를 찾는데 걸리는 시간복잡도는 O(1) 이라고 볼 수 있고, 이를 임의 접근(random access)이 가능하다고 말한다. 반면에 새로운 데이터를 삭제하거나 삽입을..
소프트웨어 마에스트로(이하 소마)는 과학기술정보통신부에서 주관하는 국내 소프트웨어 전문가를 육성하는 프로그램이다. 지원 혜택이 파격적이고 우수한 SW 인재들이 많이 모이는 것으로 유명해서 경쟁률이 상당히 치열한 편이며, 컴퓨터를 공부하는 학부생 수준에서 할 수 있는 대외활동 중에서 탑클래스에 꼽힌다고 생각한다. 2010년 1기를 시작으로 2019년 현재 10기를 선발하고 있으며 필자도 10기 선발 전형에 지원하였다. 최종 합격 발표 여부는 나지 않았지만 추후에 소마를 지원하는 예비 연수생 분들에게 조금이나마 도움이 되면 좋겠다는 취지에서 이러한 글을 쓰게 되었다. 참고로 소마는 매년 전형 절차가 조금씩 바뀐다. 9기의 경우는 150명의 예비연수생을 선발한 뒤에 약 2개월 정도 예비 연수과정을 통해 100..
안녕하세요 메탈엔진입니다.제가 지원한 2018학년도 1학기 교환학생 발표가 오늘 나왔는데요. 다행히도 제가 가장 가고 싶었고 1지망으로 쓴 영국의 버밍엄 대학교에 합격을 하게 되었습니다! 1~4지망을 유럽으로 밀었고 사실 유럽 안에서만 결정이 나면 좋겠다고 생각을 했는데 다행히 제가 원하는 나라를 갈 수 있게 되었어요! (IELTS를 준비한 보람이 있네요 ㅋㅋㅋ) 그래서 이제부터 내년 이맘때쯤 까지 교환학생을 준비하는 과정부터 영국 생활까지 쭉 포스팅을 하려고 합니다. 그 첫 번째 시작은 바로 교환학생 지원할 때 자기소개서 및 면접을 준비하는 것인데요. 저같은 경우는 학점이 그리 높은 편이 아닌데 (3.1점대...ㅋㅋ) 1지망 그리고 영국에 붙은 것으로 봐서 학점이 그리 큰 요소는 아닌 것 같습니다. 제..