본문 바로가기

2024-04-16 정확하게 쓸 거면 TIL은 시간낭비다

codeConnection 2024. 4. 16.

내일배움캠프에서 Git 특강은 총 2회차로 구성되어 있고 4월 15일 어제 1회차를 수강하였고 오늘은 TIL 특강을 수강하였다.

 

먼저 제목은 오해가 있을 수 있지만 제목의 정확한 의미를 후술한다. 간단히 이야기 하자면 머리털 나고 처음 듣는 프로그래밍 용어들을 정확히 내뱉는 입문자는 제대로 공부하고 있는 것이 아닐 수도 있다고 생각한다. 그저 누군가 내 글을 보진 않을까 걱정하며 강의나 교육자료에 있는 명칭이나 문구를 그대로 옮겨적은 것일 확률이 높다고 생각한다. 물론 정확히 이해해서 그렇게 적은 거면 정말 훌륭한 인재겠지만 나의 경우에는 그렇지 않다.

 

내가 잘못 이해했으면 잘못 이해한대로 작성하는 것이 맞다고 생각한다. 그래야 내가 공부했던 흔적을 제대로 기록할 수 있다고 생각한다.

Git 특강 1회차

먼저 Git은 개발자라면 안전하고 효율적인 협업을 위해 사용을 능숙하게 할 필요가 있다는 점은 익히 알고 있었다. 따라서 사전캠프 기간에 주어진 교육자료에는 Git에 대해 다루는 내용이 없었지만 인프런에서 입문 자료를 구입하여 수강하였었다. 수강만 하고 실제로 실습해볼 과정이 없었기 때문에 자세한 기억은 나지 않았지만 Git 강의를 들으며 블로그에 필사했던 내용을 보고 복기하며 기억을 더듬어 가고 있었다.

 

팀 프로젝트가 시작되고 예상하지 못한 어려움들이 Git에서 계속 발생하여 발목을 잡았다. master와 branch라는 개념은 이해가 되지만 막상 실제로 해보니 터미널에서는 계속 에러가 났고, merge라는 개념도 이해는 되지만 현재 입문 수준인 우리가 활용하기엔 다소 복잡한 느낌이 있어 미니 팀 프로젝트를 진행하면서는 조장이 일일이 브랜치를 돌며 수고로움을 더하기로 한다. 본인 공부할 시간도 부족할 텐데 계속 zep에 남아 이것저것 처리하는 조장께 격려와 응원의 말을 드리며 함께 남아 이것저것 공부를 하다보니 2시간 가까이 흘러 남아 계시던 튜터님이 우리를 보고 방문하셔서 이것저것 조언을 해주셔 양질의 정보도 덤으로 얻었다.

 

프로그래밍을 업으로 삼자고 결심한 이상 Git은 당연히 숙련이 되어야 하는 스택이라고 생각하고 계속 공부하고 내 것으로 만들어보고자 한다. 지금은 하는 것마다 막히지만 계속 경험하다 보면 어느새 내것이 되어 있으리라 생각한다.

TIL 특강

TIL은 오늘 배운 것을 정리하거나 회고하는 것을 말한다. 사실 프로그래밍이나 IT 업계에서 주로 사용되는 이런 개념은 나에겐 생소한 개념이다. 군대에서부터 지금까지 8년이 넘도록 꾸준히 일기를 작성하는 습관이 있는 나지만, 오늘 배운 것을 정리한다는 개념은 처음 듣는 개념이다.

 

TIL을 꾸준히 작성하는 것이 좋다는 이야기는 처음부터 계속 반복적으로 듣는 이야기이고 이유도 다양하지만 공통적으로는 나의 꾸준함과 성실성을 보여줄 수 있는 도구가 될 수 있다는 것이다. 그리고 나도 이 부분에 큰 공감을 한다.

 

내가 이 블로그를 만든 것도 TIL을 작성해야겠다는 필요성이 느껴져서 만든 것이고, 2개월 간 100여 개가 넘는 TIL을 작성하였다. 물론 지금은 프로젝트를 진행할 수준이 아니기 때문에 단순히 배운 것을 기록하는 것이었기에 수준은 낮다. 하지만 그럼에도 내가 그 모든 글을 필사할 때 정말 신경썼던 것은 배운 것 그대로 쓰지 않는다는 것이다. 이유는 시간낭비라고 생각했다.

 

예를 들어서 모던 자바스크립트 튜토리얼을 배운다고 했을 때 그 내용을 그대로 적게 되면 일단 현실적으로 저작권에 위배되는 행동이기도 하고, 그걸 떠나서 그냥 다시 그 사이트 들어가서 찾아보는 게 더 빠르지 나중에 내 블로그에 와서 그것을 찾아본들 효율성도 떨어지는 일이라고 생각했기 때문이다.

 

그래서 나는 배운 것을 그대로 쓰지 않고 반드시 나의 언어로 재해석하여 작성했다. 내가 작성한 글들을 얼핏 보면 배운 것을 그대로 옮겨 적었다고 생각할 수 있겠지만 자세히 읽어 보면 용어들이 엉망진창일 것이다. 엉망진창임을 알면서도 그렇게 적은 이유는 내가 지금 코딩 강사를 할 목적으로 공부하는 것도 아니고 토론회에 참석할 것도 아니기에 정확한 명칭을 아는 것도 중요하지만, 우리나라 말로 번역했을 때 어색하거나 난해한 개념들은 나의 언어로 바꾸어 작성했다. 그리고 이것들은 나중에 이 개념들을 모두 이해하게 됐을 때 쯤 전부 수정할 예정이다.

 

예를들어 '변수'라는 것은 일상생활에서는 어떠한 일이 갑자기 생기거나 일이 틀어졌을 때 사용하는 단어이다. 그런데 프로그래밍에서는 어떠한 값을 담는 그릇의 개념으로 사용된다. 그래서 나는 아직도 변수의 정확한 정의를 모른다. 변수하면 '그릇'이라는 단어만 떠오른다. 변수와 같이 그나마 쉬운 개념은 이렇게까지 할 필요는 없겠지만 객체, 배열 등 더 어려운 개념이 나오면 이것을 어떻게든 이미지로 시각화하여 머릿속에 그림을 그려야 이해가 쉬워진다.

 

30년 간 문과에 절여진 인간의 사고방식을 탈피하여 컴퓨터의 사고방식을 이해할 수 있도록 앞으로도 나는 TIL을 작성하는 것을 아주 수준 높은 문서를 작성하는 것이 아니라 나의 언어로 제 멋대로 해석하는 글로 적을 것이다. 누구 보라고 작성하는 글이 아니라 내가 이렇게 이해하려고 노력했고, 내가 이해한 바는 이렇다라는 것을 솔직하게 보여주는 것이 더 좋다고 생각하기 때문이다. 누가 알까? 나중에 누군가 내 글을 보고 '아 잘못 이해했구나'생각이 되면 피드백을 해줄 것이고 그러면 더 큰 발전이 있지 않을까 싶다.

댓글