Notice
Recent Posts
«   2024/09   »
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
Archives
관리 메뉴

교대최소제곱법

[PintOS project 2 후기] 핀토스가 어렵다구요? 본문

크래프톤 정글

[PintOS project 2 후기] 핀토스가 어렵다구요?

옐라크레 2023. 12. 18. 00:41

핀토스는 진짜 전설이다

사실 project 1이 끝나면서 대충 이 핀토스 과제가 어떻게 이루어져있고 어떻게 접근해야하는지 파악했다고 생각했다

이게 양이 많은거지 깃북보고 시각화하고 하나하나 고쳐나가면 금방하지 않을까?

라는 오만한 생각을 했었고 project 2는 나에게 예절을 주입시켜 주었다

 

이번에도 hex_dump 트러블 슈팅이나 .bashrc 설정 트러블 슈팅 같은 이런 자세한 내용은 다음으로 미루고 핵심만 간략하게 진행하고자 한다

하루의 시간이 48시간이었다면....


돌아간다고 제대로 된 코드는 아니다!

"why it works?"를 항상 하고 있긴 했지만 프로젝트2에서 특히 많이 괴로웠던 것 같다

 

왜인지는 모르겠지만 all pass하는 내 코드

 

프로젝트1과 같은 경우 pass = 제대로 된 코드 였다면 프로젝트2는 pass해도 의심을 해야 했었다

처음 똑바로 안해놓으면 무조건 뒤에서 터진다는 것을 이전 프로젝트에서 경험했었기 때문에 프로젝트2는 이게 제대로 돌아가는 코드인지 확인하는 과정이 가장 힘들었던 것 같다

 

아 원래 여기서는 디테일한 부분을 말하고 싶지 않았는데 너무 답답해서 하소연하겠다

핀토스의 경우, 'make check'로 전체 테스트를 돌려볼 수도 있고 'make (test 이름)'으로 개별로도 돌려볼 수 있는데

둘은 같은 명령어를 사용하지만 현재 내 코드는 make check는 항상 pass를 하는 반면 make (test 이름)은 fail이 난다

정말 고구마 100개정도 먹은 기분이다...

23.12.16. 정글 생존 68일차. 아직 문제를 해결하지 못했다...

 

아무튼 정리를 하면 프로젝트1은 make check를 통해 유효성 검사를 해주었다면 프로젝트2는 그렇지 못해서 내가 직접 유효성 검사를 해야했다는 내용이다

만약 게임을 개발한다거나 서비스를 진행하는데 '이 코드 무조건 안 터져요!' 를 검사하는 코드가 있다?

전재산을 털어서 매수할테니 회사 이름을 말해라 

 

여담으로 이전에 류석영 학장님의 코드리뷰 강의를 들을 때 '테스트가 디버깅보다 쉽다!' 라는 말씀을 하시면서 구글의 테스트 코드에 대해서 강의하셨는데 이번 프로젝트2를 하면서 그것을 느낀 것 같다

 

포보스 선정 초보 개발자가 하는 실수 1위

자세한 내용은 추후에 다루겠지만 간단하게 핵심을 설명하면 C언어는 과거 버전과 호환성을 이유로 함수 원형이 정의되지 않은 함수는 암묵적으로 정의되었다고 생각하고 실행되는 경우가 있다는 점이다

 

그래서 포보스 선정 초보 개발자가 하는 실수 1위가 뭐냐? "include를 똑바로 하자"이다

나 같은 경우 파이썬을 주언어로 사용해왔고 나름 라이브러리 활용에는 자신있다고 생각했었는데 C는 조금 달랐다

파이썬은 import가 없으면 친절하게(?) 빨간 줄을 그어주고 터트리는 반면 C는 warning으로만 띄울 뿐 돌아가기 때문에 이 문제를 해결하기 위해 꼬박 하루는 매달린 것 같다

 

하루를 투자해 문제를 해결한 결과, include와 warning을 잘 검사하는 착한 개발자가 되었다!!!

착한 개발자가 된 자세한 트러블 슈팅은 추후에 다루겠다


최종적으로 프로젝트2의 리뷰를 한 번에 정리하자면

프로젝트2부터가 진짜 핀토스 시작이었다

근데 프로젝트3가 진짜라던데 정말 신난다!!!