Skip to content
isdnetworks
Go back

과제가 끝날 때 남기는 것

연구 과제가 끝나서 결과물을 정리해 넘겨야 했다. 코드와 문서만 넘기면 되는 줄 알았는데 아니었다.

Table of contents

Open Table of contents

재현이 안 됐다

받는 쪽에서 make 가 중간에 죽는다는 연락이 왔는데 내 자리에서는 잘 되던 것이었다.

원인을 찾아보니 하나가 아니었다.

전부 내 환경에만 있는 것들이었고 오래전에 설정해 두고 잊은 것이라 문서에 적힐 리가 없었다.

원인 — 내 환경에만 있던 것들

문서를 쓸 때 나는 내 자리에서 그것을 읽는데 필요한 것이 이미 다 깔려 있으니 무엇이 빠졌는지가 안 보인다.

몇 해 동안 쌓인 것 중에 어느 것이 이 과제에 필요한지를 나도 모르고 있었다. PATH 에 들어 있는 도구도 LD_LIBRARY_PATH 가 가리키는 라이브러리도 그냥 원래 있는 것으로 느껴진다.

그래서 내 자리에서 문서를 아무리 다시 읽어도 이 목록은 안 나온다. 빠진 것은 읽어서 찾는 것이 아니라 없는 자리에서 부딪혀야 나온다.

깨끗한 환경에서 해 봤다

아무것도 안 깔린 환경을 만들어 저장소에서 받아 ./configuremake 까지 그대로 밟았다. 여러 번 막혔고 막힐 때마다 문서에 한 줄씩 추가했다.

[빌드 환경]
컴파일러 X 버전 N (다른 버전에서 오류 확인됨)
필요 라이브러리: A, B, C
환경변수: TOOL_PATH=...

[빌드]
$ ./configure --with-...
$ make

gcc 는 판까지 적었고 다른 판에서 오류가 나는 것을 확인했으므로 그 사실도 괄호에 적어 뒀다. TOOL_PATH 처럼 값이 내 계정 자리를 가리키던 환경 변수도 이름과 함께 적었다.

이 과정을 안 밟았으면 주고받는 연락이 계속 이어졌을 것이다. 내 자리에서는 된다는 답만 반복하게 된다.

실행 조건도 적었다

make 가 끝나도 실행이 안 되는 경우가 따로 있었다. USB 장비가 연결돼 있어야 하고 설정 파일이 있어야 하고 장치를 여는 권한이 필요했다.

조건을 적으면서 그것이 없을 때 무슨 오류가 나는지도 같이 적었다.

장비 미연결 시: "device not found" → USB 연결 확인
설정 없음:      "config missing"   → config.example 복사

받는 쪽은 조건을 먼저 읽는 것이 아니라 오류를 먼저 만난다. device not found 라는 문구가 README 에 있으면 그것을 검색해서 해당 항목으로 바로 간다.

무엇이 필요한지만 적으면 그 연결이 안 만들어진다. config missing 옆에 config.example 을 복사하라고 적어 두니 질문이 눈에 띄게 줄었다.

검증 — 시험 방법과 원본 자료

이 과제는 수치 목표가 있었다. 그러면 결과 숫자만이 아니라 그 숫자를 어떻게 쟀는지도 넘겨야 한다.

넷 중에 측정 스크립트가 특히 중요했는데 그것이 없으면 같은 조건에서 다시 잴 방법이 없다.

그리고 내가 측정한 원본 CSV 도 같이 넘겼다. 나중에 다시 쟀을 때 비교할 기준이 있어야 값이 달라졌는지를 안다.

재현할 수 없는 숫자는 근거가 아니라 주장에 그친다. 받는 쪽이 스스로 재서 같은 값을 얻어야 그 숫자가 자기 것이 된다.

안 된 것도 적었다

해 봤다가 안 됐던 방법도 문서에 남겼다.

[검토했으나 채택하지 않음]
방법 A — 이론상 더 빠르나 X 제약으로 불가
방법 B — 구현했으나 Y 조건에서 불안정. 코드는 branch/exp-b 에 있음

이유까지 적어야 쓸모가 있는데 안 된다고만 적으면 다음 사람이 같은 것을 처음부터 다시 해 본다.

방법 B는 코드를 지우지 않고 svnbranch/exp-b 에 남겨 뒀다. 불안정했던 조건이 달라지면 쓸 수 있을지도 모른다.

주의 — 남은 제약

완성했다고 말하기 어려운 자리가 있었다. 그것을 숨기지 않고 적었다.

[알려진 제약]
- 온도 N도 이상에서 오차 증가 (보정 미적용)
- 동시 연결 M개 이상에서 미검증
- 장시간 운영 시험 미실시 (최대 연속 K시간까지만 확인)

여기서 미검증과 안 됨을 구분해 적는 것이 중요했는데 앞의 것은 해 보면 될 수도 있고 뒤의 것은 다른 길을 찾아야 한다.

안 해 본 것을 안 된다고 적지도 않고 될 것이라고 적지도 않았다. 어디까지 확인했는지를 숫자로 적으면 받는 쪽이 그 선 밖을 스스로 판단한다.

넘기고 나서

넘긴 뒤에는 그 일을 들여다보지 않았는데 잘 쓰이는지 문제는 없는지 궁금하기는 했다.

그런데 계속 보고 있으면 받은 쪽이 그것을 자기 것으로 못 만들고 무엇을 고칠 때마다 물어보게 된다.

그리고 나도 다음 일에 집중을 못 하게 되므로 질문이 오면 답하는 정도로 뒀다.

정리


Share this post on:

Previous Post
실패가 쌓이는데 건마다 대응했다
Next Post
둘 중 무엇을 지울지 몰랐다