드디어 PintOS 3rd Project가 끝났다. 짝짝짝 👏🏻👏🏻👏🏻 (격한 반응)
이번 프로젝트는 2주가 주어졌는데, 왜인지 뼈저리게 느낄 수 있었다. 지난 1주차에도 TIL을 많이 작성하지 못했는데, 이번 2주차에도 거의 작성하지 못했다.
이런 식으로 노션에 개인 공부를 위한 깃북 정리 등은 계속 했지만, VELOG에 글을 남기지 못하고 말았다,, 지난 프로젝트를 마치면서 이번 프로젝트에서도 TIL을 열심히 쓰자고 다짐했는데, 아쉽게도 지키지 못한 셈이다. 왜 못 썼지? 라는 과거형 후회는 건설적이지 않으니, 대신 미래형 후회를 하며 어떻게 해야 다음에는 좀 더 나은 사람이 될 수 있을까 고민해보자 🙂
'다음에는 그러지 말아야지'라는 미래형 후회를 실천하기 위해선, 역설적이게도 과거를 분석하는 것도 중요하다고 생각한다. 내 인생에서 큰 부분을 차지하는 농구에서도, 대회에서 이기든 지든 나중에 경기를 되짚어 보는 것이 실력 향상에 큰 도움이 되었기 때문이다. 다만, '이러지 말걸' 혹은 '왜 그랬을까' 라고 후회하며 과거에 얽매이는 대신, '다음에는 이렇게 해야겠다'라는 다짐과 함께 현재와 미래에 초점을 맞추어야 할 것이다.
그런 관점에서 Project 3를 돌이켜보자면, 크게는 2가지를 짚고 넘어가고 싶다.
우선 하루하루를 맺고 끊음이 불분명했던 것이 첫 번째 패인이라고 생각한다. 프로젝트를 시작하며 새로운 팀원들과 함께 퇴근은 자유롭게 하되, 출근은 10시 반까지 하자고 합의했었다. 하지만 프로젝트를 진행하다보니 공부할 양과 구현 후에 해결해야 할 버그가 너무나도 많았고, 출퇴근이 잘 이루어지지 않았다. 나 같은 경우에는 밤샘보다는 아침 일찍 혹은 새벽에 나오는 것이 훨씬 편한 반면, 다른 팀원은 아예 밤을 새고 다음 날에 아예 늦게 나오는 것을 선호하는 경우였다. 그리고 마지막 한 명은 우리 둘의 중간이었던 것 같다. 그러다보니 뒤로 갈수록 시간표가 잘 맞지 않는 느낌이었고, 악순환이 반복되었다. 물론 각자 성향이 다르고 과제의 난이도가 상당히 높아서 그런 것이라 누구 하나의 잘못은 절대 아니지만, 좀 더 확실히 출퇴근 시간을 정하고 다같이 지켰으면 좋았을 것 같다.
두 번째 패인은, 지난 Project 1과 2를 어느정도 수월하게 진행했기에, Project 3도 결국엔 일찍 끝낼 수 있지 않을까라는 다소 안일한 생각을 가졌던 것이 아닐까 싶다. 원래 이런 식으로 달력에 동그라미를 치며 하루하루를 보내는데, P3시작을 기점으로 단 하나의 동그라미도 치지 못했다... 1일부터 19일까지 가족들이 속초에서 휴가를 보내고 있었던지라, 3rd Project를 시작할 때는 16~17일 즈음에 잘 마무리하고 속초를 갈 수 있지 않을까 싶었지만, 헛된 꿈이었다. 다음 주면 '나만의 무기' 프로젝트를 진행하고 그 이후에야 각 협력사에 지원하게 되니깐 아직 협력사의 코딩테스트와 면접까지는 2달 정도는 남았다는 생각을 갖고 있었는데, 완전히 생각이 바뀌었다. 좀 더 확실한 나만의 루틴을 가지고, 가능한 시간을 최대한 효율적으로 활용할 수 있도록 계획을 세워야겠다. 정글에 처음 들어왔을 때, 코치님께서 누구에게나 24시간이 주어져 있는 것은 동일하다고 하신 적이 있다. 나 역시 효율성을 중시하는 입장에서 그 말씀에 크게 공감했고 항상 공부할 때는 진짜 공부에만 집중하며 효율적인 몰입을 하려고 노력했는데, 지난 2주는 다소 아쉬웠던 것 같다. 괜찮다, 다시 달리자...!
이렇게 PintOS 3rd Project 기간을 간단히 돌아봤는데, 그렇다면 결과는 어땠을까? 요일 감각이 무뎌질 정도로 지난 2주간 팀원들과 열심히 달려왔는데, 결과는 아쉽게도 4 FAIL로 마무리했다. 물론 정신없이 달려온 것을 생각하면 괜찮다고 볼 수도 있지만, 어쨌거나 ALL PASS를 받아내진 못했다. 위 스크린샷의 마지막인 cow는 추가과제인 'Copy On Write'에 해당하며, 그 외의 실패한 케이스는 다음과 같다. 여기서 page-merge-par의 경우엔 3번 성공하면 1번 실패한다. PASS 와 FAIL 을 왔다갔다 한다면, 그건 FAIL이나 마찬가지기에 이 역시 실패목록에 추가해주었다.
이 WIL을 작성하는 현재까지는, 이 3가지 테스트를 해결한 팀이 없는듯하다.
사실 운영진 분들과의 면담 이후, 이번 3rd Project는 반 전체가 지난 기수의 블로그나 코드, 심지어 한양대 PPT자료도 보지 말고 해보자는 분위기로 흘러가며 실제로 그렇게 진행했는데, 그러다보니 모든 케이스 통과에는 아쉽게 실패한 것 같다.
하지만 진짜 셋이서 뭉쳐서 고민하며 하나의 컴퓨터에서 코드를 짜보고 디버깅하며 나눴던 수많은 대화와 토론은 분명 값졌고, 우리가 좋은 개발자로 성장하는 데 있어 좋은 밑거름이 되지 않을까 싶다. 가상메모리가 무엇인지 항상 막연하게 생각하고 있었는데, 직접 구현하며 다양한 버그에 부딪히고 해결하다보니 지금까지 사용해 온 OS가 얼마나 대단한지를 다시 한 번 체감하며 경의를 표한다.
개발자가 이렇게 대단한 OS, 이렇게 뛰어난 컴퓨터를 가지고 최고의 효율을 내려면 컴퓨터에게 일을 잘 시킬 수 있어야 할 것이고, 그러려면 기본적으로 컴퓨터를 잘 이해해야 할 것이다. CS 기초가 왜 중요한지, 왜 정글 과정이 이렇게 구성되었는지 그 의도를 이제야 알 것 같다 :) 남은 기간도 화이팅 해보자 !!! 😎