예전 코드을 읽으며..

요 몇일 예전에 퇴사하신 분이 만들었던 모듈들의 동작 분석이 필요해서 코드를 읽어볼 일이 생겼습니다.

평범한 VHDL과 verilog코딩인데 참 읽기가 어렵다는 생각이 들었습니다. 코드를 읽으면서 투덜거림도 몇번 하고.. 의심도 하고..

그런데, 내가 만들어둔 모듈도 분명 누군가 보면서, 읽기힘들다고 투덜거리지 않았을까.. 라는데 까지 생각이 미치니 갑자기 책임감이 더 커지는 느낌이었습니다.

“소프트웨어 개발에 있어서 프로그램작성에 들어가는 노력은 10%이며 나머지 90%는 이미 작성된 코드의유지보수, 디버깅, 문서화 작업”이므로, “좋은 프로그램은 쉽게 읽고 이해할 수 있는 것어야 한다”한다는 말이 진실로 다가옵니다. 또한, TeX과 문학적 프로그래밍 기법을 고안한 Knuth 교수의 ” 따라서, 컴퓨터 프로그래밍은 한 편의문학 작품을 창작해 내는예술 활동이다”라는 말에 공감하고 있구요. [이 문장의 대부분은 KTUG의 작은 나무님이 KLDP 공개 세미나에서 발표한 자료에서 발췌했습니다. http://hyunwuk.tistory.com/43 ]

제가, 합성의 효율을 높인다고 이상한 코드를 쓰는 것도 중요하지만 “읽기 쉬운 코드”를 쓰면서 합성 효율을 높일수도 있는 방법을 쓰는 것이 더 중요하겠습니다.
혹, 선택해야 한다면, 잘 쓰여진 주석과 의미 있는 신호 이름을 사용하는 것이 좋겠지요.

지금보다 미래를 위해서 여러가지를 안배한다는 것이 중요하다는 생각이 듭니다. 제가 이 생활을 계속하는 동안은 말입니다.

5 thoughts on “예전 코드을 읽으며..

  1. 작은나무

    안녕하세요. KTUG의 작은나무입니다.
    “babyworm” 이라는 아이디는 케이턱 게시판에서 본적이 있고, 공개소프트웨어에 대해서 올리신 글도 공감하며 읽었습니다. 감사합니다.

    위에 쓰신 글에서 “소프트웨어 개발에 있어서 프로그램작성에 들어가는 노력은 10%이며 나머지 90%는 이미 작성된 코드의유지보수, 디버깅, 문서화 작업”는 Knuth 교수님의 말씀이 아니라, 미국의 소프트웨어 관련 회사들의 통계가 그렇다고 하네요.

    자주 들르겠습니다.
    반갑습니다. 🙂

    Reply
    1. babyworm

      앗.. 찾아주셔서 감사합니다. 어떻게 아시고.. ^^;
      제가 잘못읽은 것이군요. 지적해주셔서 감사합니다.

      Reply
  2. gnil

    verification 얘기두 해주세요~ ^^
    요새 중장기적인 관심을 갖고 있어서요;;

    Reply
    1. babyworm

      저 역시 검증 부분이 주된 관심사죠.. ^^;
      근데, 그리 잘 알고 있는 건 아니라 여러가지 “시도” 수준이라 그리 좋은 이야기를 들려드리기는 어려울 것 같습니다.
      시간 될때 이야기를 해 보도록 하지요.

      Reply
  3. gnil

    영감 좀 얻을까 싶어 책은 막 모으고 있는데요…
    써먹기는 커녕 잘 보지도 않아서 막막한 것 같아요;;
    책은 Writing Testbenches, Assertion-based Design, Appiled Formal Verification, 하드웨어 설계기술(Hardware Design Verification 번역서), Comprehensive Functional Verification, ASIC & FPGA Verification 등등

    Reply

Leave a Reply to gnilCancel reply