← All Posts

[WIL06] 6주차 새로운 틀 깨보기

공부와 나만의 휴식찾아보기

이번주 과정#

이번주는 pintos들어가기 전 malloc을 구현해보는 과정이였다. 동적메모리의 이론적으로 공부하고 써보기만했는데 malloc을 구현한다고?의 느낌이였다 csapp를 이번주에는 지난주퀴즈의 좌절을 맛봤기때문에 공부를 열심히했다..

csapp

이해가 안가는부분은 빼곡하게 적었었는데 사실 이론을 공부하느라 거의 이틀을 가까이 쏟아부었고 팀원의 학습조언에 따라 직접 코드를 따라쳐보니 이해가 더 잘되기 시작했었다

특히 find-fit은 쉬웠으나 place()구현부분이 어려워서 ai와 같이 공부했었고 코어타임때의 팀원의 설명덕에 이해가 되기 시작했다 설명을 매우잘하시는 것 같다!

칠판

두번째는 평소라면 과제만 열심히 했을텐데 생각의 틀을 좀 바꿔봤다. implict를 구현하고나서 버디시스템의 이론을 공부했었는데 버디시스템도 free블록을 재사용할수없나? 라는 호기심이 생기고 버디시스템을 좀 더 깊게공부하게됐는데 평소라면 그냥 아 이런게 있구나 정도 넘어가지만 다 좋으면 이걸 쓰는데 왜 안쓸까에 대한 궁금증도있었고 개선을 정말 못하는걸까?에 대한 집착도 생겼다 결국 약 이틀간 논문들을 찾아보면서 직접 알고리즘을 설계해보았는데…

lab

버디의 장점을 살리고 내부단편화를 해결하는건 이론적으론 가능할순있겠으나 복잡도가 올라간다는 것이였고 아이디어1~3과정을 거치면서 세상에 나랑 비슷한 알고리즘이 있을텐데 계속찾아보면서 벤치마킹도 찾아보고 논문들의 단점도 생각해봤다

이런과정들을 거치면서 버디시스템을 더 깊게 알게되었다는 장점이랄까? 궁금증이 조금 해소되면서 설계를 해봤는데 연구수준에 가까워서 쉽지않았다… 결론은 아이디어만 냈고 구현은 하진않았지만 이이야기에 대해 궁금하신분들은 아래 블로그를 보면 좋을것같다

https://bloro.dev/posts/cs/buddysystem-internalfragmentation/buddysystem-internalfragmentation/

새롭게 배운점#

일단 이번주에 동석코치님이 말씀하신 마인드셋을 읽고나서 생각의 관점이 달라졌는데 피드백을 적극 수용해서 나를 발전시킨다 라는 취지로 이번주에는 공부하는 마인드를 바꿨고 팀원들의 피드백을 적극적으로 수용해 나를 개선시켰다. 그리고 실제로 발표가 많이 개선되었던 점에서 또 하나 배웠던것같다

두번째로는 학습을 하는 방식인데 처음엔 책의 이론대로 직접 코드를 짜지않았고 아래줄에 무슨의미인지 쓰는방식으로했으나 직접 쳐보면서 하니까 더 이해가 빨랐다

이번주차에서는 팀원에게 많은 도움을 받았는데 모르는 개념을 적극적으로 물어보는것을 도전했고 이번운영진 티타임에서 코치님의 말씀을 듣고 내가 헛길로 샜구나..를 실감했다 과제에 집중해야될것같다.

특히 숲을 보고 실질적으로 해결해야되는게 무엇인지를 알아야 되고 코치님이 말씀하신대로 테스트케이스를 공부하는게 아니라 테스트케이스가 없는 다양한 상황을 미리 생각해보고 내가 해결책을 고민하고 검증하는것들을 고민해야되는구나를 알았다. 특히 점수 부분에서 점수를 높이는것보다 왜 점수가 안나왔는지를 이해해보라고 하셨고 왜 점수가 낮았는지 -> 어떤 문제에서 성능이 떨어지는지-> 그문제를 해결하기 위해 어떤 방법이 가능한지 -> 각 방법 장단점이 무엇인지까지 생각해봐야된다는것을 배웠다

개선해야될 부분#

딴길로 새지말고 주어진 과제에 집중하고 이번에는 문제를 어떻게 생각하고 해결해야되는지를 고민해보는 시간을 가져야될것같다.

여담#

책

사실 올해 책을 10권을 읽기가 목표였는데 아침에 두뇌회전을 위해 일찍오면 책을 3장이상을 읽는 패턴을 만들었다. 저녁에 읽으면 생각이 많아지다보니 잠이 오지않아서 아침으로 바꿨다..목표는 4권이 남았는데 올해 목표인 10권을 끝낼수있을까 싶은것도 있지만 핀토스기간에서는 잠시 접고 집중해봐야 될것같다.

다음주 계획#

이번에는 코치님이 말씀하신대로 방향을 좀 바꿔봐야될것같다. 테스트케이스를 생각해보고 저번주차에 내가 최대한 이해하는 방향으로 공부를 했었는데 이번에도 시간을 더 태워서라도 공부해야될것같다..이번에는 엄청난 과제인 요구사항 → 직접 분석 → 테스트 케이스 → 설계 → 작은 구현 → 검증 → 개선을 하는데 있어서 어떤 상황이 있을까를 생각해보고 왜? 인지를 고민해봐야될것같다.