정글사관학교 개발일지/운영체제-PintOS

PintOS Project 4 - WIL(정글사관학교 92일차 TIL)

Woonys 2022. 2. 3. 11:09
반응형

이번 주에는 설날도 겹치고 번아웃도 오고 여러 면에서 집중을 잘 못했다. 사실 다 변명이지..반성할 건 반성하고 털어낼 건 오늘 이 시간에서 털어내도록 하자.

 

이번주에 공부한 것들은 아래와 같다.

 

반효경 교수님 운영체제 강의

 

운영체제 - File system (1) File system

운영체제 - File system (2) File system implementation

운영체제 - File system (3) File system implementation 2

 

PintOS Project 4 - File Systems (1) Indexed and Extensible Files

PintOS Project 4 - File Systems (2) Extensible Files

Start

주말 하루는 푹 쉬기

 

일주일에 하루는 푹 쉬는 게 확실히 필요하다. 그간 쉼없이 달리다보니 마지막 주차에서 힘이 다 빠졌다. 통으로 쉴 것까진 없다손 치더라도, 적어도 오전 오후는 정비하는 시간을 가질 필요가 있다. 설 기간 동안 쉬고 나니 확실히 회복됐다. 번아웃이니 뭐니 하는 것도 다 육체에서 오는 문제가 정신까지 침범해서 일어나는 현상이 크다. 육체가 정신을 지배한다. 앞으로 다가올 5주 프로젝트는 훨씬 타이트할 것이니 이 부분을 유념해서 잘 쉴 수 있도록 하자.

Stop

멀티태스킹 금지!

 

멀티태스킹하지 말자. 이번 주차부터 핀토스가 아닌 다른 공부를 시작하는 사람들이 하나둘씩 늘어나기 시작했다. 나는 결국 핀토스를 선택했지만, 그걸 선택하기까지 마음이 많이 흔들렸다. 핀토스를 하면서도 지금 내가 하는 게 맞나.. 싶어서 계속 다른 것을 찾아봤다. 그래서인지 영 효율이 좋지 않았던 한 주였다. 안그래도 손이 느린데 흔들리기까지 하니 원..

 

한 번에 무조건 하나만 한다.

Continue

시간 재면서 공부하기(뽀모도로 타이머)

 

3번째 프로젝트를 진행하던 주차부터 중간에 타임 끊길 일이 많아지면서 타이머를 쓰는 것이 뭔 의미가 있겠나 싶어 쓰지 않았다. 그러다 연휴 쉬고 다시 돌아와서부터 긴장감을 주기 위해 타이머를 쓰기 시작했다. 확실히 시간을 재지 않고 공부하면 내가 뭘 하고 있는지에 대한 감시는 물론이요, 중간에 잠깐 딴짓을 대체 얼마나 늘어지게 하는지에 대한 감도 잡히지 않는다. 시간을 트래킹하면서 봐도 하루에 순공 10시간을 채우는 게 정말 힘든데, 시간을 재지 않고 했을 때 효율이 얼마나 잘 나오겠나 싶다.

 

사실 이 타이머의 문제는 급작스런 이슈가 발생할 때 트래킹이 어렵다는 게 문제다. 예를 들어 자리에 앉아 일을 하던 와중에 급작스럽게 다른 사람이 불러 일을 도와줘야 한다거나 하면 그 시간 동안 분명 나는 작업을 했지만 실제 타이머는 이를 트래킹하기가 어려우니.. 이런 일이 종종 발생하면서부터 스트레스를 받아 그냥 타이머를 쓰지 않게 됐다.

 

PintOS, What I learned?

6주 간의 대장정이 끝났다. 이 핀토스 기간 동안 난 무엇을 배웠나. 크게 두 가지였다.

 

1. High level에서 OS에 대한 깊이 있는 이해

책과 Gitbook, 권영진 교수님 강의와 반효경 교수님 운영체제 강의를 들으며 운영체제가 왜 이렇게 설계되었는지에 대한 이해를 보다 깊이있게 볼 수 있었다. 만약 내가 컴공과 학생이라고 가정할 때, 학부에서 가르쳐주는 운영체제 이론 강의만 들었다면 절대 이정도까지 깊이 있게 개념을 익히지 못했을 것이다. 적어도 운영체제는 웬만한 컴공과 수준 이상으로 공부했다는 자신감은 생겼다.

 

2. Low level에서 코드 설계 로직에 대한 이해

사실 코드를 설계하는 과정은 개념 공부할 때만큼 디테일하게 살펴보지 못했다는 아쉬움이 있다. 모든 코드를 다 직접 짠 것도 아니요, 참고한 코드도 백프로 이해했나 하면 그것도 아니었다. 그나마 위안이라면 코드를 짜는 것 이상으로 읽고 이해하는 게 프로그래머의 중요한 소양이라는 것! <프로그래머의 뇌>라는 인지과학 책 내용을 인용해본다.

 

프로그래밍을 처음 배우고 나면 코드를 작성하는 것에 훨씬 더 많은 관심과 시간을 쏟는다. 문제를 어떻게 풀고 그것을 코드로 구현하는지를 집중적으로 훈련한다. 코드를 읽는 연습은 거의 전무할 것이다. (...)

코드를 읽는 목적은 다양하다. 기능을 추가하거나 버그를 발견하기 위해서 혹은 코드가 실행될 더 큰 시스템을 이해하기 위해서다. (...)

연구에 의하면 프로그래머의 시간 중 거의 60%를 코드를 '작성'하는 게 아니라 '이해'하는 데 사용된다고 한다.

- < 프로그래머의 뇌>

 

확실히 위의 내용에 비추어 생각해본다면 핀토스 기간 동안 수없이 많은 코드를 읽고, 코드 간에 어떻게 연결되어 있는지에 대한 방대한 흐름을 타고 가면서 로직을 이해하는데 많은 시간을 할애했다. 모든 것을 다 이해하진 못했지만 적어도 주어진 기간 동안 충실히 이해하려고 노력했다는 점에서는 많은 것을 배운 건 사실이긴 하다.

 

핀토스가 끝났다. 이제 마지막까지 달려보자!

반응형