일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 마일섬
- Project 1
- 아직도 실험 중
- 글리치
- botw
- 글루민
- 자 이제 시작이야
- 일지 시작한 지 얼마나 됐다고
- 셋업
- 핀토스 프로젝트 4
- 핀토스 프로젝트 1
- 가테
- multi-oom
- 황금 장미
- alarm clock
- 제발흰박
- PINTOS
- 끝
- 바빠지나?
- 핀토스 프로젝트
- 노가다
- 핀토스 프로젝트 3
- 내일부터
- 핀토스 프로젝트 2
- 파란 장미
- Today
- Total
거북이의 쉼터
(2022.04.03) 핀토스 끝낸 후기 본문
음... 뭐부터 시작해야 할까... 뭔가 느낌이 전역할 때 마지막 인사하는 느낌이라...
일단 2021년 9월 ~ 11월, 2022년 2월 ~ 4월에 걸친 대규모 프로젝트 하나가 끝났다. 나는 초등학교 때도 일기 미뤘다가 몰아서 썼던 사람이라 이렇게 꾸준히 한 주제를 잡고 끝까지 써본 적이 실질적으로 처음이기 때문에 굉장히 뿌듯하다.
이번 학기를 시작하기 이전부터 핀토스를 구현하기 시작한 것은 큰 이유는 아니었다. 그냥 다른 사람들이 일할 때 내가 놀고 싶었기 때문이다. 특히 플젝 3, 4를 하면서 같이 핀토스를 짜는 학생들 표정이 구겨져갈 때 난 옆에서 여유롭게 티 타임을 가지면 정말 기분이 좋을 것 같았다. 난 아직 인간은 덜 된 것 같다.
그래도 막상 수업을 시작하니 내가 아는 사람들은 도와주고 싶은 심리가 생기긴 했는데, 뭐 다들 잘 하니까... 특별히 내가 건들일 것은 없는 것 같았다. 다들 잘 따라오겠지... 아?마
개인적으로 프로젝트를 진행하면서 조교님들에게 질문하려는 것은 최대한 자제하려고 했었다. 프로젝트 3과 4를 진행하고 있는데 piazza에 질문을 올리는 것은 프로젝트 1, 2를 진행하고 있는 다른 사람들에게 광역 어그로를 시전하는 것이라고 생각했고 (이런 감정은 조용히 즐겨야 고수인거다), 메일을 보내는 것도 최대한 안 하려고 했다. 다만 설계와 평가상에 주요한 부분은 어쩔 수가 없었기에, fork와 mmap을 동시에 쓰는 부분이라거나, buffer cache의 테스트 케이스의 오류는 지적을 할 수 밖에 없었다. piazza에 올린 것은 프로젝트 4였는데, 그 때 당시가 프로젝트 1이 끝나고 1주일이 지나기 전이었다. 부디 다른 학생들에게 노여움을 산 일이 있다면 화를 풀어주기를....
첫 느낌은 홀가분하다. 핀토스의 특성상 A 구간에서 실수한 것이 A에서의 에러로 나타나지 않고 B, C를 거쳐 D에서도 나타나는 일이 흔했다. 때문에 사소한 실수를 했어도, 그것들이 여러 구간을 거쳐서 증폭되면서 결과가 사소해지지 않을 때가 많았기 때문에, 디버깅 지옥에 빠졌었다. 코딩에서 2시간을 소모하면서 실수를 했을 때는, 디버깅은 보통 그 두 배, 심할 때는 4배 정도의 시간을 썼어야 했기에 한 줄 한 줄 적어가는 것 자체가 스트레스였다. 포스팅에서는 make check 이후, 오류가 났을 때 "분석해보았다"라고 적힌 것이 실제로는 30분 정도의 시간을 들여가면서 오류 지점을 찾을 때도 있었다. 이런 디버깅 지옥에서 드디어 탈출했으니, 정말 해방감이 느껴진다.
두 번째로는 핀토스를 구현하면서는 정말 설계가 중요하다는 사실을 깨달았다. 사실 이것은 이후에 내가 진행할 여러 프로젝트에서도 적용될 수 있는 말일 것이다. 이 점을 가장 심하게 체감했을 때가 dup2를 구현하면서였는데, 구현 이후 한 번의 실행만에 아무 문제 없이 모든 테스트가 돌아갔다는 쾌감을 아직도 잊을 수 없다. 이외에도 설계에 들인 시간이 길면 길수록, 디버깅 시간이 비교적 짧아졌다는 것을 볼 때, 설계가 튼튼하다면 실수도 줄어든다는 것을 반증한 것 같다. 1학년 때인가, 컴퓨터 공학자가 컴퓨터 앞에 앉아있는 시간보다 생각에 들이는 시간이 길어야 한다고 들었던 기억이 나는데, 그 뜻이 무엇인지를 실제로 경험한 것 같다.
마지막으로 체력 관리가 좀 더 수월해질 것 같다. 나이가 반반백을 찍게 되면서 슬슬 몸에서 운동을 하지 않으면 죽을 것 같다는 신호를 보내오는데, 이를 언제까지고 무시할 수는 없어서 요즘 닌텐도로 링피트를 하면서 운동을 하고 있다. 근데 핀토스를 진행하는 동안에는 허구한 날 구현이나 디버깅을 하면서 운동해야 할 시간에 컴퓨터를 붙잡고 있었던 때가 많았다. 때문에 이왕 시간 놓친거 그냥 코딩이나 하자는 식으로 끼니도 걸러가면서 컴퓨터 앞에 앉아있다보니까 건강이 축났다. 핀토스가 끝난 지금 시점에서, 이젠 온전히 운동에 시간을 쓰면서 망가진 체력을 복원할 수 있을 것 같다. 맨날 심야 코딩을 하거나 밤을 새면서 피곤에 쩔어있지 않아도 되며, 컴퓨터 앞에는 좀 덜 앉아있을 수 있을 것 같다.
이후 이번 학기 동안에는 프로젝트 상에 변경 내용이 생길 경우에는 프로젝트 2, 3, 4를 수정할 것이다. 큰 변화는 없겠지만 프로젝트 4의 답변 내용을 보면 무시할 수 있을 정도는 아닌 것 같아서 예의주시는 하고 있어야 할 것 같다. 또 정말 큰 심경의 변화가 생기게 될 경우에는 프로젝트 4의 일부 엑스트라 프로젝트를 구현할 것이다. 물론 확률은 정말 낮다. 아마 높은 확률로 남은 기간은 그동안 못 만났던 사람들을 만나고 다니고, 대학원 입시 준비를 할 것 같다. 대학원 면접이 끝난 이후에는 만약 교수님께서 허락하신다면 추후에 해당 내용 중에서 코드는 제외하고, 매뉴얼의 번역과 각 프로젝트에서 어떤 방식으로 접근해야 할지, 그리고 주요하게 실수할 수 있는 내용을 모아서 1회차 OS 수강생들을 위한 지침서 같은 내용을 쓰고 싶다. 그것도 엄청 걸리겠지... 만만치 않은 장기 프로젝트가 될 것 같지만 일단 시도는 해보도록 하겠다.
중간고사가 이제 2주 뒤에 계획되어 있다. 시험에 대비해서 배운 내용이나 천천히 돌아봐야겠다. 일단 오늘까진 쉬고...
'코딩 삽질 > KAIST PINTOS (CS330)' 카테고리의 다른 글
(2022.12.10) 포스팅 공개 (2) | 2022.12.10 |
---|---|
(2022.04.02) Soft Link 구현 (0) | 2022.04.02 |
(2022.04.02) Soft Link 가이드라인 (0) | 2022.04.02 |
(2022.04.02) Subdirectories 구현 (0) | 2022.04.02 |
(2022.03.29) Subdirectories 가이드라인 (2) (0) | 2022.03.29 |