대략 월~목요일까지 수요일은 쉬었으니까.
3일동안 C언어로 1,200줄 정도 작성한 것 같다.
포인터 삽질 좀 많이 하고 변수 scope를 잘못 잡아서 삽잘하고
initialize 때문에 삽질 더 하고.
코딩하면서 중간 중간에 refactoring을 바로 진행했는 데. 장단점이 있었다.
장점이라면 module화 과정에서 initialize를 더 확실히, 쉽게 할 수 있게 됐고 오타를 쉽게 잡을 수 있었다.
프로그램의 흐름도 더 명확해졌다.
단점이라면 그 때문에 포인터 삽질과 변수 scope 문제가 떠올랐다는 것.
다음번에 비슷한 프로그램을 짠다면 참고가 될테니까 훨씬 빨리 짜겠지.
memory allocation에 따른 string boundary, buffer overflow문제와 garbage collection 문제로 고민을 많이
한듯.
Perl로 prototype 짰을 때보다 기능이 늘기도 했지만 (메모리 access에서 DB기반으로 이동)
시간도 3~4배 들고 프로그램 크기도 3~4배 커졌다.
이것과는 별도로 단순히 웹페이지를 만든다고 쳤을 때 PHP라면 하루에 3,000줄은 짰을 텐데.
C언어라서 300줄 밖에 못 짠 듯하다.
C++로 짰다면 STL을 이용할 수 있었을 테니 시간과 프로그램 size를 절반으로 만들 수 있었을 텐데. 아쉽군.
Berkeley DB의 C++ library에 익숙하지 않았고 지난 한 달간 짠 프로그램들에서 string처리 속도를 빠르게 하기 위해서는 char*만 써야한다고 머리가 굳어있어서 STL을 생각하지 못했다.
STL이 좋기는 하지만 file, db I/O를 위해서는 결국 char* 형으로 변환해야하는 문제가 있단 말이지...
내 프로그램 같이 I/O를 매우 자주 하는 프로그램에서는 string을 써도 사실 그리 편하지가 않다.
boundary 문제를 절반으로 줄여주긴 하겠지만 나머지 절반의 문제를 또 풀어야 한다.
Java나 Perl, PHP로 짜면 그런거 고민 없어서 참 좋은데.. 그냥 perl로 버틸껄 그랬나.
얼마나 성능 차이 날지 확인하려면 perl 코드도 DB기반으로 바꿔야 해서 귀찮단 말이지..
댓글 없음:
댓글 쓰기