Taking baby-developer steps

22.06.14. push_swap 프로그램 과제 완료 / minitalk 과제 시작 본문

Logs/학습 log

22.06.14. push_swap 프로그램 과제 완료 / minitalk 과제 시작

Surin Lee 2022. 6. 14. 20:11

push_swap과제가 끝난 후 벌써 1주일이 되었다.

길고 길었던 디버깅과 최적화 과정을 버티고 버텨 오기로 끝까지 완성했지만, 아직 구현력이 매우 딸리는 나로서는, 인터넷에 공개된 다른 코드들을 빨리 빨리 받아들이고 이해하는 것이 더욱 중요하다는 깨달음을 얻었다. push_swap은 2달이나 소모할 과제는 아니였던것 같다.

물론 이것도 경험을 하고서야 깨달은 것이지만..! 

지금은 '나만의', '새로운 것'을 창조하려고 하는것 보다는 효율적인 방법을 잘 찾아보고 습득하는 것에 더 익숙해지는게 더 알맞은 방법인것 같다. 기본적인 방법들을 사용할 수 있어야 응용이 있는거고, 그 응용에서 더 나아가 새로운 방법을 창출해내는 능력이 길러지는 것이니...!

 

짠내 폴폴 나던 나의 push_swap은 또 이렇게 나에게 교훈을 남기고...!

오늘 minitalk 과제를 시작하기로 했다.

push_swap 과제를 하며 프로그램을 만들기 전 미리 계획하지 않고, 일단 정렬이 가능하기는 한지 코드부터 짜면서 감을 익혀서 인지, 프로그램을 모두 완성하는 데 시간도 오래걸렸고 나중에 함수에 수정사항들이 엄청나게 많아지면서 긴긴 수정과 디버깅, 그리고 리팩토링의 시간을 가지게 되었는데, 그 고통의 과정속에서 "다음 과제에서는 꼭 미리 주요 내용을 모두 학습하고 계획을 세워서 과제를 하리라" 하고 몇번이고 다짐했다.

 

-minitalk / pipex 과제를 고르기 전,

길고 긴 push_swap과제를 하면서, 미리 3서클의 과제인 "철학자들의 저녁식사 문제"를 대비해 짬짬히 운영체제 공부를 하고 있었는데, 마침 프로세스간 통신(IPC)에 대한 내용이 나왔고, 이번 minitalk과 pipex가 IPC의 각각 다른 방법을 이용해서 해결하는 과제임을 알게되었다. IPC에 대한 내용을 학습하고 나서, signal passing 방법인 minitalk과 shared memory 방식인 pipex 중 무슨 과제를 할지에 대해 많은 시간 고민했는데, push_swap 과제에서 시간을 너무 많이 쓰기도 했고, pipex는 후에 3서클의 다른 과제인 minishell을 하면 비슷한 내용을 학습하게 되므로, siganl passing 방법을 접해보자는 마음으로 minitalk과제를 선택했고, 그 결정을 내린게 바로 오늘이다.

 

결정을 내리기전, 감사하게도 미리 각각의 과제를 이미 해결하신 동료 카뎃분들께서 과제에 대한 인사이트를 많이 주셔서, 전반적인 내용들을 많이 접할 수 있었다. 그러나 어떤 과제를 할지 정하지 못해, minitalk과 pipex에서 허용한 함수들의 사용법 및 역할 등을 자료 조사한 후 결정을 내리다보니 결정 시기가 조금은 늦어졌나 싶기도 하다..! 그치만 이번 과제에서는 밑그림을 그리는 단계에서 시간을 많이 써보기로 결심했기때문에 후회는 없다!

 

Comments