brunch

You can make anything
by writing

C.S.Lewis

by 마크 Jan 14. 2022

작은 단위 코딩을 계속해봐야 하는 이유

합체 로봇을 만들려면 작은 로봇부터 만들자

코딩을 배우기 시작하면 남들이 만들어 놓은 프로그램에 자연스럽게 눈이 간다. 남들은 어떤 것들을 만들고 있을까 궁금한 것은 너무 자연스러운 현상이다.


하지만 이 과정에서 코딩을 배우는 열정이 식거나 힘이 풀리는 경우도 더러 있다. 내 코딩 실력은 아직 유아 수준인데 판다랭크같은 사이트를 만들려면 얼마나 더 공부해야 할까, 할 수는 있을까 지레 겁을 먹는다.


처음부터 완성된 서비스를 목표로 하다 보면 길이 보이지 않아 포기하기 십상이다. 그래서 거대한 서비스를 목표로 가기보다는 작은 프로젝트를 하나씩 만들어보면서 실력을 쌓아가는 것도 좋은 코딩 공부 방법이다.


천리길도 한걸음부터

예를 들어, for문을 배우다 보면 필히 구구단 프로그램을 만들게 된다. 이를 통해 2단 for문을 사용하는 법과 개념을 알게 되는데 이걸 어디에다 써먹을까 싶지만 앞으로 어떤 프로그램을 만들던지 이 형태의 프로그램을 짜는 일이 많아진다. 구구단은 그저 하찮은 코딩이 아니다. 좀 더 복잡하게 말하자면 알고리즘 시간복잡도 o(n^2) 형태의 대표적인 프로그래밍이다.


잘 작동하는 구구단 코드를 가지고 있다면 비슷한 형태의 코딩을 할 때 가져다 쓸 수 있다. 최근에 내가 했던 방법을 예로 설명해 보겠다.


티스토리 백업 프로그램 만들기

배경

며칠 전에 티스토리 백업 프로그램을 만들었다. 최근 티스토리 블로그 서버 오류가 잦아지자 티스토리 이용자들 사이에서 불안감이 확산했다. 워드프레스로 이사 가야 하는 거 아니냐는 이야기들이 솔솔 들려왔다. 블로그 이사 가려면 내 글과 사진을 일일이 복사해서 저장해 두어야 하는데 수십, 수백 개나 되는 포스팅을 일일이 저장해둔다는 것은 어려운 일이다. 하지만 단순 반복 작업은 코딩을 통해 쉽게 할 수 있다. 그래서 만들어 보기로 했다.


기능 정의

백업 프로그램은 티스토리 주소를 입력하면 해당 블로그의 전체 포스팅 주소를 수집한다. 그 뒤 각 포스팅을 크롤링하여 포스팅 글을 개별 txt 파일로 저장하고 이미지를 정해진 폴더에 다운로드하게 하는 것이 목표였다.


정리하자면,

1. 티스토리 블로그 주소 입력받기

2. 해당 주소의 모든 포스팅 url 및 제목을 수집해 엑셀 파일로 저장하기

3. 각 포스팅 url을 기준으로 크롤링하여 글은 txt 파일로, img 태그를 수집해 src 속성에 있는 이미지를 크롤링해 다운로드하기


아런 과정을 프로그래밍하면 되었다.


코드 짜기(이전에 만들어 둔 코드 복사해오기)

코드 짜기라기 보단 복붙의 연속이었다.

티스토리 블로그 전체 제목 및 주소를 가져오는 건 이미 전에 만들었었다. 현재 내가 운영하는 사이트 티스워드의 너의 티스토리에 이 기능이 사용되었다. 이때 쓴 코드를 그대로 가져오면 되었다.


블로그 글 크롤링하고 txt 파일로 저장하는 것도 예전에 크롤링 공부하면서 이미 만들었었다. 간단한 코드다. 포스팅 주소로 크롤링해서 본문에 해당되는 html을 가져온 뒤 태그들을 날리면 끝이다.


텍스트 파일로 저장하는 것 역시 오래전에 여러 프로그램을 만들면서 쓰던 코드다.


이렇게 필요한 기능들은 이미 예전에 다 만들어봤던 것이라 가져와서 조립만 하면 되었다. 그래서 티스토리 백업 프로그램은 제작 시간이 반나절도 채 걸리지 않았던 것이다.


물론 이 프로그램은 다르게 말하자면, 내가 그동안 수많은 시간을 갈아 넣어 공부했던 노력들이 반영된 것이라고도 할 수 있다. 처음부터 이 프로그램을 만들려면 많은 시간과 시행착오를 겪었겠지만, 작은 프로그램들을 조금씩 만들어두다 보니 큰 것을 만들 때 수월해지는 것이다.


완성

이렇게 만든 프로그램을 이용할 수 있게 크몽 서비스에 등록해 두었고 이를 티스워드 너의 티스토리에 링크를 달아 두었다. 아래 링크가 크몽에 등록한 서비스이다.


그리고 티스워드 너의 티스토리에도 링크를 달아 두었다.


티스 포장 이사 라는 이름을 붙여 보았다.


이 서비스 이름을 티스 포장 이사라고 붙였다. 이름을 지어주신 '코딩하는 블로거방' 단톡방의 '코딩탐구(블탐)'님께 이 자리를 빌려 감사의 말을 전한다.


코딩을 공부하면서 아주 작은 기능을 가진 프로그램을 꾸준히 코딩해두는 것을 추천한다. 그 코드들이 계속 쓰이는 것을 경험할 수 있을 것이다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari