Day5
fshare 프로그램을 직접 구현하면서 여러가지 개념들을 익혔다. 제일 골치아팠던 부분은 역시 포인터 였는데, 이것 때문에 처음에는 시간이 조금 걸렸다. 그런데 이해가 된다고 생각이 든 순간부터는 속도가 붙었던 것 같다. 하지만 솔직히 완벽하게 개념을 익혔다고는 하기 어려울 것 같다. 파일 디스크립터를 통해서 데이터를 읽고 쓰는 과정은 이제 많이 익숙해 졌다는 생각이 들었다.
- C언어에서 void* 의 arithmetic 은 원칙적으로 맞지 않다. 관련해서 내용을 조금 찾아 봤는데, 컴파일러에 따라서 오류는 나지 않을 수 있지만, 그 말인 즉슨 범용적으로 이렇게 사용해서는 안된다는 것으로 이해했다. 나는 int * 와 같은 것을 char * 로 캐스팅하는게 어색하다고 생각했던 것 같다. 교수님이 지난번에 c에서는 char type 을 1바이트로 사용한다고 강조해주셨던 것이 기억이 났다.
- opendir을 통해서 얻은 entry들은 close 되면 모두 해제된다. 조금 생각해 보니 당연히 그래야 하는 것 같다... 그래도 이렇게 짚고 넘어가는 것이 나중에 실수를 방지해 줄 것이라는 생각이 든다.
- 프로그램을 짜다가 디버깅 해야할 부분이 생기면, 함수 단위로 작은 프로그램을 만들어서 테스트하고, 확실히 공부한 후에 적용하는 것이 바람직하다. 이런 방법을 유닛 테스팅 이라고 한다. 생각을 복잡하게 하지말고, 손을 바쁘게 움직여야 한다. 그렇게 하는 것이 오히려 결과적으로 효율이 좋다! 내 경험상으로도 큰 프로그램에서 테스트를 하다보면 이것 저것 건들이게되어서 결국에는 꼬이게 되었던 것 같다.