2022년 6월 27일 월요일

소리전자는 웹사이트 관리를 하지 않는 것인가? 네이버 계정 정보 탈취 문제

소리전자(https://www.soriaudio.com/)는 진공관 오디오 앰프의 자작과 중고 거래에 관심이 있는 사람이라면 누구다 다 알 만한 웹사이트이다. 여기에서 판매하는 진공관 앰프 키트는 국내의 관련 취미 활동 저변 확대에 크게 기여를 하였다. 언젠가 한 번은 여기에서 파는 싱글 엔디드 앰프 키트를 구입해서 만들어 보고 싶은 욕망이 있다. 그러나 쓰레기나 다를 것이 없는 물건을 중고품으로 올리는 판매자들의 글이 일절 관리가 되지 않는 것을 보면 안타까울 때가 많다.

이 사이트의 가장 큰 문제는 회원 관리뿐만 아니라 보안 측면에서도 실소를 금치 못할 일이 종종 벌어진다는 것이다. 예를 들어 웹브라우저를 통해 접속을 해 보면 다음과 같이 네이버 ID와 암호를 넣으라는 창이 버젓이 뜰 때가 있다. 항상 그런 것은 아니다.



나도 작년 가을 무렵 이 창을 처음 보았을 때에는 네이버와 소리전자가 계정 연동이 된 것으로 착각을 했었다. 다행스럽게도 여기에 내 정보를 넣지는 않았다. 아마도 누군가가 네이버 계정 정보를 탈취하기 위하여 악성 코드를 심어 놓은 모양인데, 시간이 오래 흘러도 전혀 개선이 되지 않는다. 나는 소리전자 회원이 아니라서 관리자에게 알리거나 하는 등의 적극적인 요청을 하지 않았다.

와싸다 사이트에도 이에 대한 경고성 글이 올라온 상태이다. 다음의 글은 2022년 2월 1일에 올라온 것인데, 이것 말고도 주의를 요구하는 글이 많이 있다.

[주의요망] 인터넷 검색 후 소리전자 게시글 조회시 절대 네이버 계정 정보 넣지 마세요.

다음은 실제 피해자의 글이다.

꼭 읽어 주십시요(네이버 계정 도용)

구글을 검색해 보니 이미 2014년부터 이러한 문제에 대한 보고가 있었다(링크). 그 때에는 소리전자 웹사이트 내에 숨겨 놓은 네이버 계정 탈취용 html 문서를 띄우는 정도였는데, 이제는 아예 그럴싸하게 팝업 창을 만들어 낸다. 다소 과격한 발상이지만 인터넷보호나라 같은 곳에서 이런 웹사이트를 강제로 차단하면 어떨까 하는 생각을 잠깐 해 보았다. 

Mendeley Desktop은 더 이상 다운로드할 수 없다 - Mendeley Reference Manager로 변화하는 과정

다운로드한 논문 PDF 파일 정리를 위해 Mendeley Desktop을 열었더니 다음과 같인 메시지가 나타났다. 9월 1일부터 Medeley Desktop 다운로드가 불가능해진다고 한다.

Mendeley Desktop will no longer be available for download from 1st September 2022. As you have Mendeley Desktop installed you will still be able to sign in and use it as normal after this date. For more information sett https://blog.mendeley.com

멘델레이 블로그를 방문해 보니 다음과 같은 글이 최신 글로 올라온 상태였다. 2월 22일에 게시된 글이다. 거의 4개월 동안 이 블로그에는 새 글이 없었다는 뜻이다.

Introducing Medeley Reference Manager - designed for today's researcher workflow

드디어 Medeley가 EndNote를 넘볼 준비를 하려는 모양이다. 많은 학술지가 EndNote 형태의 레퍼런스 스타일 파일을 제공하고 있으며, Microsoft Word 안에서 'add-in' 기능을 사용하여 아주 쉽게 포매팅을 할 수 있다. 이제 Mendeley에서도 Meneley Cite라는 add-in을 제공한다고 한다.

PDF 파일을 관리할 때에는 Mendeley가 훨씬 편했었고, 논문 작성을 하면서 PubMed에 온라인으로 접속하여 참고문헌을 뽑아 삽입할 때는 EndNote가 유리하였다. 그렇다면 Medeley Cite에서는 EndNote의 'Cite While You Write(CWYW)'와 같은 기능을 제공하게 될 것인지? 혹은 내가 보유한 PDF 파일 - 즉 나의 Mendeley library에 존재하는 파일 - 에 대해서만 참고문헌으로서 정리를 해 주는 것인지? 

Getting started with Mendeley Cite에 의하면 아직 CWYW 기능에 상응하는 것은 구현되지 않은 것 같다. CWYW가 비록 논문을 쓸 때 대단히 편리한 기능인 것은 맞지만, 참고문헌 전문을 읽어보지 않고 단지 PubMed에서 초록 정도만 확인하고 인용하는 게으른 버릇을 고칠 필요는 있다. 단지 그 자료가 유명한 저널에 실렸기 때문에, 또는 그 자료를 내가 참고한 다른 논문에서 참고문헌으로 인용했기 때문에 단지 타성에 의해서 나도 인용한다는 것은 약간 부끄러운 노릇임을 솔직하게 고백한다.

서울대 AI 연구팀의 표절 논문 사건으로 학계가 시끌벅적하다.

"결국 터질게 터졌다"...서울대 AI 연구팀의 민낯

다른 기사에 의하면 제1저자가 camera-ready(최종본)를 대폭 바꾼 것이라고 윤 교수가 말했다고 한다. 그의 말에 따르면 학술대회 발표 승인이 난 뒤에 이런 일을 했다고 하니 이해가 잘 되지 않는 행위이다. 곧 열릴 연구진실성위원회에서 잘잘못을 가릴 것으로 믿는다.

논문 한 편을 만들어내는 작업은 참으로 고단한 과정이다. 실수가 있어서도 안 되고, 올바르지 않은 방법을 동원해서도 안 된다. 대충 편하게 마무리하려는 유혹과도 싸워야 한다. 더욱 어려운 것은 논문을 혼자 쓰는 일은 별로 없다는 것. 나 혼자 모든 것을 컨트롤하기가 곤란하다.

2022년 6월 24일 금요일

KMB 2022 학회 마지막 날 받은 뜻밖의 포스터 발표 장려상

한국미생물·생명공학회 국제학술대회 삼 일째 접어드는 날 아침, 발표를 듣고 있는데 갑자기 모르는 번호로부터 전화가 왔다. 포스터 발표 수상자로 선정되었으니 혹시 폐막식 때 상을 받을 수 있느냐는 것이었다. 학회 마지막 날이라서 수상자가 벌써 자리를 뜬 것은 아닌지 미리 확인하기 위함이었다.

고등학교를 졸업한 후로는 상을 받을 일이 거의 없었다. 대부분 대학원생이 포스터 발표자로서 상을 받게 되는데 머리에 허옇게 서리가 내린 중견 연구자가 포스터 발표자로 상을 받다니... 한국연구재단의 안내에 의하면 중견 연구자는 박사 학위 취득 후 10년이 경과한 사람이다. 이러한 기준을 따른다면 나는 박사 학위를 받은 뒤 무려 25년이 지났다. 정부출연연구소 소속 기준으로 정년 퇴직이 10년 미만으로 남았다.


시상식 사회를 보던 연세대 반용선 교수로부터 '수상자 중에 나이가 많은 분도 계시네요'라는 농담 섞인 말을 들으며 학생들 틈에서 쑥스럽지만 상장을 받았다. 수십 명의 수상자가 한꺼번에 단상에서 사진을 찍을 때에는 학회장 이정기 교수님의 배려로 바로 곁에 설 수 있었다. 쑥스럽고도 유쾌한 추억을 하나 남기게 되었다. 혹시 나를 잘 아는 포스터 심사위원의 '장난(?)'은 아니었을까 하는 생각도 하면서.

첫날 개회사를 하시던 학회장 이정기 교수님.

보통 학술대회 포스터라면 대학원생이나 연구원이 실험한 결과를 정리하여 직접 포스터를 작성하여 저자 이름 중에서 맨 앞에 위치하게 되고, 현장에서 발표를 진행한다. 그리고 전 과정을 지도 감독한 지도 교수가 맨 뒤에서 교신 저자로 자리잡게 된다. 이번에 상을 받은 내 포스터는 다른 연구원이 만든 실험 결과를 넘겨받아 생명정보학적 분석을 실시하여 내가 직접 포스터를 만들었다. 기본 가설을 세우기 위하여 NCBI에서 천 개 이상의 미생물 유전체 서열을 다운로드하여 분석 결과를 만들기도 하였다. 포스터를 만들자고 제안한 것도 나였고, 저자 목록의 중간을 차지하던 연구원과 UST 학생은 나의 동료일 뿐이다. 나는 그 동료들을 지도한다고 생각해 본 적이 한 번도 없고, 그 UST 학생의 지도 교수도 아니다. 보통의 대학에서 연구 활동이 벌어지는 구조와는 사뭇 다르다. 물론 내가 일하는 곳은 UST 캠퍼스의 하나인 것은 맞지만, 내가 2018년부터 2년 동안 기업 파견을 다녀오면서 UST 겸임교원을 그만 둔 이후 재임용 신청을 하지 않았다.

아직까지는 내가 제1저자로서 논문이나 포스터를 쓸 수 있다는 것에 대해 자부심을 느끼고 있다. 그러나 후학을 양성하여 그들로 하여금 좋은 연구를 하게 만들고 연구 과제 등을 통해 아낌없는 서포트를 하는 것이 현 시대가 필요로 하는 진정한 '중견 연구자'의 모습이라는 생각이 많이 든다. 물론 후배 연구자를 키워나가는 방법은 대학과 정부출연연구소가 매우 다르다. 이전부터 존재하던 학연 제도, 그리고 UST라는 비교적 최근에 만들어진 제도를 통해서 정부출연연구소는 대학의 형식을 따라가려고 애를 쓰지만 결코 같아질 수도 없고, 같아져서도 안 된다. 나는 이렇게 '잘 만들어진' 제도를 제대로 이용하지도 못했으며, 나를 돋보이게 애를 쓰지도 않았고, 그저 자유로운 영혼으로 연구를 즐기며 살아왔던 것 같다. 사람들을 규합하고 큰 일을 꾸미는 능력, 추진력, 그리고 내가 아무리 독학으로 따라잡으려 애를 써도 잘 되지 않는 (bio)informatics 분야의 분석 결과를 수월하게 쏟아내는 연구자들의 발표를 2박 3일 동안 들으며 과연 나는 어떤 경쟁력을 갖추고 이 분야의 발전에 기여를 할 수 있을지 많은 반성을 하였다. 아니, 단 한 점이라도 의미 있는 흔적을 남길 수 있었으면 좋겠다.

1,800명 정도가 사전 등록을 한 대규모의 학술행사를 성공적으로 마치기 위해서 애를 쓴 학회 관계자와 봉사자, 그리고 후원 업체들에게 이렇게 개인 블로그로나마 고마운 마음을 전한다.

태평양 건너편의 해외 석학이 온라인으로 실시간 기조 연설(plenary lecture)을 하고 있다. 오디오 상태도 매우 완벽하였다. 참으로 놀라운 세상이다. 


굿바이, HICO!


2022년 6월 22일 수요일

경주에서 완성한 Roary 매뉴얼

제49회 한국미생물·생명공학회 국제학술대회 및 정기학술대회에 참석하기 위해 경주화백컨벤션센터(HICO)를 찾았다. 본격적인 장마를 하루 앞두고 무척이나 덥고 습한 날씨가 기승을 부리고 있었다.

HICO 앞마당에서.

EMBL Peer Bork 박사의 발표 "Analyzing Microbiomes for Human and Plenatary Health" 이렇게 좋은 아이디어를 갖고서 대규모 연구를 하니 우리는 뭘 하지?

이번에 받은 가방은 마음에 든다. HICO에서 실시하는 설문조사에 응하고 휴대폰 거치대를 얻었다.

일정을 조금 일찍 마치고 숙소로 돌아와서 쉬면서 위키 사이트에 수일 동안 써 오던 Roary 설명서를 완성하였다. Pan genome analysis pipeline인 roary는 2015년에 논문으로 공개된 뒤 지금은 거의 업데이트가 이루어지지 않는다. 그도 그럴 것이 더 이상 개선할 여지도 없다고 생각한다. Roary는 내가 가장 즐겨 사용하는 생명정보학 프로그램 중 하나이지만, 그 기능을 완벽하게 이해하는 것도 아니었다. 별도로 Word 파일로 만들어서 계속 수정해 나가고 있는 나의 유전체 분석 매뉴얼에서 roary는 매우 큰 비중을 차지하고 있으나 늘 부족함을 느끼고 있었다. 위키 사이트에 작성한 매뉴얼은 아예 이 Word 파일을 참조하지 않고 거의 새로 쓰다시피 하였다. 정확하게 말하자면 방문자를 위한 친절한 입문서는 전혀 아니다.

Roray는 GFF3 파일을 대상으로 pan genome(core + accessory)를 계산하여 매우 다양한 형태의 결과 파일을 만든다. 부속 스크립트를 이용하여 각종 수치를 시각화해 주기도 하고, 유전체(구체적으로는 GFF3 파일) 단위의 operation을 할 수도 있다. 기본적으로 gene cluster ID를 반환하지만, 아미노산 서열을 뽑아내는 것도 가능하다. 내가 만든 매뉴얼의 후반부에서는 roary 결과물을 이용하여 GFF3 파일로부터 지정된 cluster ID에 해당하는 유전자의 염기서열을 추출하는 방법을 설명하였다. 이는 roary 자체 및 부속 스크립트의 기능으로 해결되지 않는다.

매뉴얼을 작성하면서 CSV(comma-separated values) 파일을 다루는 유틸리티 중 하나인 csvkit를 알게 되었고, 'seqkit grep' 명령어를 사용하여 ID의 정규 표현식에 의한 서열 추출 방법도 익히게 되었다. Lorance Stinson의 AWK CVS parser는 상당히 도전적인 과제가 될 것이다. AWK를 복잡한 스크립트로 쓰는 것도 모자라서 함수까지 만들어 사용하다니! xsv는 csvkit보다 더 나아 보이는데, 내가 아는 리눅스 시스템에서 설치하기가 조금 까다롭다. Nix/NixOS? Rust? Cargo? 이것이 다 무엇인가? 우분투 22.04 LTS에서 xsv를 설치해 보니 희한한 곳에 binary를 만들어 놓는다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ sudo apt install cargo
$ cargo install xsv
...
  Installing /home/hyjeong/.cargo/bin/xsv
   Installed package `xsv v0.13.0` (executable `xsv`)
warning: be sure to add `/home/hyjeong/.cargo/bin` to your PATH to be able to run the installed binaries
$ ~/.cargo/bin/xsv
xsv is a suite of CSV command line utilities.

Please choose one of the following commands:
    cat         Concatenate by row or column
    count       Count records
    fixlengths  Makes all records have same length
    flatten     Show one field per line
    fmt         Format CSV output (change field delimiter)
    frequency   Show frequency tables
    headers     Show header names
    help        Show this usage message.
    index       Create CSV index for faster access
    input       Read CSV data with special quoting rules
    join        Join CSV files
    sample      Randomly sample CSV data
    search      Search CSV data with regexes
    select      Select columns from CSV
    slice       Slice records from CSV
    sort        Sort CSV data
    split       Split CSV data into many files
    stats       Compute basic statistics
    table       Align CSV data into columns

Roary 말고도 몇 가지 주제에 대한 매뉴얼 작성 거리를 머릿속에 쌓아두고 있다. 너무 늦어지지 전에 해결해야 되는데...



2022년 6월 17일 금요일

학술논문 출판에서 scooping을 어떻게 막을 것인가? - ASM Journal의 새로운 정책

구글에서 영단어 'scoop'의 정확한 의미를 찾아 보았다. 국어에는 이것과 정확히 일치하는 낱말은 없다.

팝콘이 담긴 스쿠프 사진은 Pixabay에서 내려받은 것(Pixabay license - free for commercial use)


공들여 연구한 내용을 학술논문으로 정리하여 이제 막 투고를 하고 심사 중인데, 별안간 같은 주제의 논문이 다른 학술지에서 먼저 발표된다면 이처럼 맥이 빠지는 일은 없을 것이다. 대부분의 경우는 우연의 일치일 것이다. 생명과학 분야에서 한창 떠오르는 주제라면 이를 연구하는 사람이 전 세계에 어디 나 혼자뿐이겠는가? 어떠한 아이디어를 확인하기 위해 A라는 모델 생명체에서 연구를 진행하여 논문을 투고하고 심사 과정에 있는데, 다른 연구팀에서 동일 또는 유사한 주제를 B라는 모델 생명체에서 연구하여 오늘 갑자기 논문을 출판했다고 치자. 이러한 사실을 리뷰어가 알게 되면 내 논문이 무사히 출판될 가능성이 적어질 것이 자명하다. 

어디서 주워 들은 이야기를 하나 소개해 본다. 리뷰어가 투고자 A의 논문을 유난히 오랫동안 심사를 하면서 시간을 끌고, 그 사이에 그 논문의 아이디어를 이용하여 리뷰어 자신(혹은 잘 알고 지내는 다른 연구자?)이 별도로 실험을 진행하여 재빨리 논문을 먼저 낸 다음, 비슷한 연구 결과가 이미 발표되었으니 A의 논문을 출판에 적합하지 않다고 거절하는 것이다. 이는 사실 범죄에 가까운 행위이다. 실제로 이러한 일이 얼마나 존재하는지는 모르겠으나, scoop의 아주 나쁜 사례이다. 대부분의  scooping은 경쟁적인 연구 분야에서 우연의 일치로 벌어지는 것으로 보아야 할 것이다.  

ASM(American Society for Microbiology)에서 New Scooping Protection Policy라는 제목의 이메일을 보냈다. 이 정책과 관련된 웹사이트는 이곳이다. ASM 학술지에 투고를 한 경우, 그보다 앞서 6개월까지 유사한 논문이 발표되거나 preprint로 공개되었는지를 점검해 준다는 것이다. 어찌보면 이는 논문 투고를 준비하는 저자가 사전에 꼼꼼히 점검해야 할 일인지도 모른다. 이 정책을 음미해 보자면 투고자를 위해 scooping을 방지해 주는 것이 아니라, 아주 최근에 이미 다른 연구자에 의해서 논문으로 공개된 것과 유사하거나 일치하는 연구 결과를 ASM에 또 투고하는 헛짓거리를 하지 말라는 것 아닌가?

이는 저자를 scoop에서 보호하는 것이 아니라 저널을 보호하기 위한 정책에 더 가까워 보인다. '누가 가장 먼저 했는가?'는 학문 분야뿐만 아니라 모든 분야에서 누구나 다 중요하게 여기고 기억하는 기준이 된다. A라는 저널에 어떤 연구 결과가 먼저 발표되고, 뒤이어서 B라는 저널에서 이와 유사한 것이 발표된다면(B에 논문을 투고한 저자나 리뷰어 모두 A 저널에 유사한 연구 결과가 앞서서 발표된 것을 미처 모르는 상태에서), A 저널에 실린 논문의 인용 가능성이 더 커진다. 임팩트 팩터 또는 여러 가지 지표료 매겨지는 학술지의 순위에서 A << B가 아니라면 말이다.

누구나 쉽게 정보를 찾아볼 수 있는 시대가 되었으므로 '미처 모르고 있었다'라는 변명을 하기는 점점 더 어려워진다. 나의 독창성을 검증하기 위해 미리 검토해 봐야 할 정보의 범위가 너무나 넓어지고 있으니 삶의 피로도 역시 높아진다.

2022년 6월 16일 목요일

로드 자전거의 튜브 상태가 예사롭지 않다

모름지기 기계나 도구는 쓰지 않으면 망가진다. 사람이 살지 않는 집이 금방 망가지는 것처럼. 자전거도 예외가 될 수 없다. 저녁에 집 근처 1 km 정도 떨어진 식당에서 모임이 있어서 차는 집에 세워두고 오랜만에 자전거를 타고 1 km 정도를 이동해 보려고 계획하였다. 펌프를 집어들고 바람을 채우는데 공기가 새는 소리가 들린다. 앞바퀴는 타이어 옆면에서, 뒷바퀴는 밸브 근처에서...

아마 튜브가 팽창하지 않은 상태로 몇년을 방치하다 보니 튜브가 눌리고 접힌 곳에 손상이 발생한 것 같다. 대부분은 수선 가능하지만, 밸브 근처에서 튜브가 뚫리면 손을 쓸 수가 없다. 어쩌면 앞뒤 튜브를 전부 교체하는 것이 현명할 것이다. 

브레이크 선의 당김을 해제하고, 휠을 분리하고(QR이라서 어렵지는 않음), 타이어를 힘겹게 분리하고, 튜브를 교체하고... 손에 시커멓게 기름때를 묻혀가며 작업할 생각을 하니 벌써부터 한숨이 난다. 어휴...

일단 교체용 튜브를 몇개 구입해 놓는 것에서 출발하자. 

2022년 6월 10일 금요일

펄(Perl) 뻘짓 - pod를 이용한 펄 스크립트의 매뉴얼 작성

Pod(plain old documentation format, 링크)를 이용하여 펄 스크립트의 도움말을 만들어 보았다. Pod는 펄 프로그램이나 모듈의 documentation에 쓰이는 간단한 마크업 언어이다. 코드 내부에 문서를 직접 작성한다는 것이 특징인데, 코드가 아닌 텍스트 정보만을 저장한 .pod 파일을 만들어 활용할 수도 있다. 순수한 pod 문서의 사례는  리눅스 배포본이라면 다 갖고 있을 /usr/share/perl5/pod/perlpod.pod 파일(펄 안내서)을 참조하면 된다. 이 파일을 확인하려면 리눅스 명령행에서 'perldoc perlpod'를 입력하자. 이 문서(perlko)의 한글판은 여기에 있다.

코드 내부에 작성해 넣는 문서는 어떤 용도인가? 당연히 그 코드의 설명을 위한 것이다. 가령 펄에서 '#'로 시작하는 줄(주석)은 인터프리터가 해석하지 않고 지나가므로, 코드의 특정 부분을 설명하는 용도로 쓰인다. 그러나 이러한 방식의 정보는 코드를 텍스트 편집기로 열어야만 보인다. Pod는 코드 안에 작성되지만 실행을 통해서 화면에 일정한 형식을 갖추어 보기 좋은 형태로 뿌려진다. 따라서 코드의 설명서를 별도로 작성하는 수고를 덜어준다. 한글 Perl Maven 웹사이트의 Pod 소개문을 읽어 보면 개념을 잡는데 도움이 될 것이다.

요즘 가장 인기 있는 마크업 언어는 아마도 간단하고 문법이 쉬운 경량의 Markdown이 아닐까 한다. LaTeX도 마크업 언어의 일종으로 간주된다. 생명과학 전공자로서 LaTeX으로 학위논문을 썼던 나도 상당한 수준의 '뻘짓러'가 아니었을까? 도대체 왜 그랬었지?

엇, perlko 문서의 저자에 '신정식'이란 이름이 보인다. 현재 구글의 소프트웨어 엔지니어로 일하는, 내가 아는 그 Jungshik Shin이 맞을 것이다. 그는 인터넷의 한글화에 큰 공헌을 했던 것으로 알고 있다. Nerd와 Geek가 득실거렸던 대학교 1학년 때의 기숙사가 생각난다. 신정식과는 몇 개의 수업을 같이 들었었던 것 같다. 

펄 스크립트 또는 모듈 내에 심은 pod 문서를 보려면 'perldoc <script명>'을 입력하는 것이 일반적이다. 그러나 도움말을 보기 위하여 다른 명령어를 또 불러야 한다는 것이 성가시다. 그래서 명령행에 인수가 없거나 혹은 '-h' 또는 '--help'라는 단일 인수가 주어졌을 때 내부적으로 'perldoc <스크립트>'를 실행하여 스크립트 내에 심어놓은 도움말이 출력되게 하였다. 명령어 바로 뒤에 연달아 입력하는 문자열을 option, switch, flag, argument 등으로 세분해야 한다고 믿는 사람도 있겠지만, 그건 별로 중요하지 않다.


Pod 공식 설명 문서만으로는 그 문법을 이해하기가 어려워서 Bio::Seq.pm을 편집기로 열어서 실제 사례를 참조하였다. Bio::Seq 파일의 위치를 알고 싶다면 다음과 같이 입력한다. Bio와 Seq 사이의 연속된 콜론 두 개는 디렉토리('/')를 의미한다. 따라서 Bio::Seq.pm 모듈 파일의 실제 이름은 Seq.pm이다. 'perldoc -l Bio::Seq.pm'이라 입력해도 결과는 같다.

$ perldoc -l Bio::SeqIO
/usr/local/share/perl5/Bio/SeqIO.pm

기술 문서를 마크다운으로 배포하는 것은 이상할 것이 없지만, 요즘 분위기에서는 pod 파일로 배포하기는 적합하지 않다. 그저 펄 스크립트 내에 심어서 설명 용도로 쓰는 것이 최선일 것이다.


2022년 6월 16일 업데이트

Bash 스크립트 내에 POD-like documentation을 삽입하는 방법도 있다. 매우 유용한 팁이 아닐 수 없다. 다음에 소개할 문서는 2007년에 작성된 매우 오래된 것이다.


그런데 O'Reilly에서 발간한 Bash Cookbook에도 이미 Embedding Documentation in Shell Script라는 문서가 있다. 여기에서는 스크립트 내에서 =pod라는 태그를 쓰지 않는다. 두 문서 모두 연구해 볼 만한 가치가 있다.