최근에는, 논문을 하나 새로 쓰고 있습니다. 그리고 꽤 오랫동안 블로그를 운영한 덕분인지 책도 집필 제의가 들어와서 조금 진행을 해보고 있는 상황이죠. 대학원 연구실을 떠난 이후에는 상대적으로 긴 호흡의 문서화 프로젝트들을 진행하는 일이 많지 않았는데, 지금 그 둘은 새롭게 집중해서 진행해야하는 프로젝트가 새로 생긴 셈이죠.
논문을 작성할 때는 보통 워드를 사용해서 씁니다. 워드가 그냥 한회사의 제품이기는 하지만 거의 독점과 같은 상황이다 보니까, 대부분의 저널들의 기본 템플릿이 워드인 경우가 많으니까요. 다만, 앞서 말한 것처럼 비교적 긴 호흡으로 관리를 해야 할때는 워드파일을 "FileName_001.docx", "FileName_002.docx"와 같이 버전별로 여러 개 만들어서, 관리하곤 하죠.
다만, 생각을 조금 해보니까, 결과물은 워드에 담더라도, 초기에는 그냥 이를 mark-down으로 정리하는 것이 더 낫지 않나? 하는 생각이 들었습니다.
Strongness of markdown+git
결론부터 작성하자면, 저는 Markdown과 Git을 이용해서 논문과 책을 쓰기로 마음 먹었습니다. “야 그냥 하던대로 하지 왜 그래?”라고 누군가 말한다면, 맞는 이야기입니다. 사실 그럴 어쩌면 그럴 필요가 없을 수도 있죠. 하지만 저는 결론을 내렸고, 이렇게 했을 때 제가 얻을 수 있는 이득이 무엇인지를 먼저 정리해보기로 했습니다.
1) 구형 맥에서 쓰기 편하다: 예전보다는 맥용 MS-office 프로그램이 나쁘지 않지만, 여전히 좀 벅벅대는 느낌이 있습니다. 물론, 추가로 제 맥북은 RAM이 고작 4GB인 구형이죠. 따라서, 맥-워드를 띄워두면 버벅대는 느낌이 들 때가 있습니다. 그래서 가능하면 크롬 위에서 돌아가는 구글 닥스를 주로 씁니다(물론, 구글 닥스도 램을 많이 먹기는 마찬가지죠).
2) 코드와 문서를 함께 관리: 제가 쓰는 논문과 책은 모두 파이썬 코드와 함께 관리되어야 합니다. 코드를 사용해서 분석한 결과가 논문과 책에 담기는 셈이죠. 따라서, 이 둘은 하나의 폴더 내에서 함께 관리하면 좋습니다. 이미 저는 프로젝트들은 git의 관리하에 두고 있는데, 만약 문서는 워드로 관리한다면 IDE와 워드를 동시에 띄워놓아야 합니다. 코드 상에서의 진전이 반드시 문서의 진전과 동일하다고 볼 수는 없지만, 이 둘을 함께 관리한다면 조금 더 효율적이겠죠. 추가로, IDE와 워드 프로그램을 둘 다 띄워놓음으로써 램을 낭비하지 않고, 하나만 띄워놓음으로써 조금 더 효율적으로 RAM을 사용할 수 있다는 강점도 있죠.
3) 진행상황을 한눈에 파악: 워드로 작성할 경우, 매번 여러 파일들을 동시에 만들게 됨은 물론, 새롭게 만들어지는 파일에 ~~~완료.docx와 같은 이름을 붙여서 관리하곤 하죠. 뭐, 어찌 보면 직관적이라고 생각될 수도 있지만, 이보다는 Git을 사용해서 문서의 점진적인 진전 형태를 체계적으로 관리할 수 있다는 강점이있을 것 같아요. 추가로. 오늘 하루에 몇 자나 추가했는지에 대해서 잘 알 수 있다는 강점도 있죠.
뭐 결국은 결론을 정해두고 강점들을 찾는 것이지만, 제가 볼 때는 이러한 강점들이 있다고 생각해요. 네, 이제 저는 Git을 이용해서 논문을 쓸 겁니다.
Git diff
다만, git을 써서 논문을 쓰려고 한다면 git을 조금 더 잘 아는 것이 필요할 것 같다는 생각이 들었습니다. 그중에서 가장 중요한 것은 git diff, 이전 커밋 대비 현재 어떤 차이가 있는지를 파악할 수 있는 명령어를 잘 이해하는 것이 필요할 것 같아요.
따라서, 오늘은 git diff를 좀 더 잘 사용해보려고 합니다.
Just git diff
그냥 git diff를 쓰면 이전의 commit 대비 현재의 directory에서의 차이를 보여줍니다. 빨간색은 ‘삭제된 내용’, 초록색은 ‘추가된 내용’이죠. 다만, git은 기본적으로는 줄 단위로 관리하기 때문에, 그냥 git diff로 보면 그 변화가 한번에 보이지 않아요.
Use git diff --color-words: 단어 단위로 보기
git diff --color-words를 사용하면, 줄단위가 아니라, 단어 단위로 어디가 지워지고 어디가 남아있고 어디가 추가되었는지를 좀 더 확실하게 볼 수 있습니다.
wrap-up
원래는 좀 더 많은 다양한 내용이 있을까? 해서 봤는데, 일단은 이게 다 인것 같아요.
조금 아쉬운 점이라면, “글자 수를 센다거나”하는 각 파일별 점진적인 변화를 체크하는 것이 없거나, 혹은 제가 찾기 어렵거나 둘 중 하나인 것 같습니다. 전체 프로젝트에 대해서는 알 수 있지만, 하나의 파일 별로 어느 정도 진전이 있는지 파악할 수 있다면 더 좋을 것 같긴 한데, 음, 조금 아쉽네요.
댓글남기기