본문 바로가기
스타트업 도전기/Level0

인생은 마트료시카

by jisungStory 2023. 8. 18.
반응형

사진: Unsplash 의 Julia Kadel

인생은 마트료시카

까도 까도 끝이 없는 공부거리

 

 매일 글을 쓰고는 있지만 매일 블로그에 올리지는 않고 있습니다. 예전에는 뭐든지 콘텐츠가 될만한 건 정리해서 어떻게든 업로드를 하려고 했지만 동기 부여 없이 그저 글의 개수만 늘려 나가는 것이 대단히 소모적으로 느껴졌습니다. 누군가에게는 정보가 될 수도 있겠지만 저에게는 의미 없는 노동처럼 느껴졌습니다. 그래도 글쓰기를 멈추지는 않고 있습니다. 블로그에 글을 업로드한다는 목표를 가지고 움직여야 겨우 글 한편이 만들어집니다. 어떻게 보면 억지 목표처럼 보이는 것을 놓지 않고 수년간 글을 쓰는 이유는 글을 쓰면서 비로소 제가 그동안 해왔던 일들이 어느 정도 정리가 되기 때문입니다.

저는 지금 웹서비스를 만들고 있습니다. 거의 뼈대는 다 갖춰놓고 몇가지 기능들에 대해서 다듬어 가고 있는 중입니다. 중요하진 않지만 간략하게 설명하면 python이라는 언어를 기반으로 하는 django라는 웹프레임워크를 활용해서 웹사이트를 만들고 있습니다. 지금 바로 서버에 올려서 다른 분들이 볼 수 있게 만들 수도 있지만 아직 손봐야 할 것들이 조금 남아 있어서 차일피일 미루면서 서비스를 다듬고 있습니다. 다듬는다고 해서 완성도가 극적으로 올라가지는 않을 것 같습니다. 다만 제 자기만족에 가까운 일인 것 같습니다. 

 어떻게 해서 웹서비스를 만드는 데 까지 왔는지 지난 시간을 돌이켜 보면 ‘마트료시카’가 떠오릅니다. 러시아의 전통 인형인데 다산과 다복 그리고 부유함과 행운을 가져다 주는 이형이라고 합니다. 그런 의미 때문인지 이 인형은 다른 인형들과는 다른 독특함이 있습니다. 도자기 같은 인형의 뚜껑을 열면 똑같은 인형이 안에 들어 있습니다. 여러 가지 버전이 있겠지만 양파처럼 안에 공간이 없어질 때까지 계속해서 인형이 들어 있습니다. 이런 개성 때문에 이 인형은 전 세계 적으로 인기 있는 상품이 될 수 있었습니다. 

사진: Unsplash 의 Didssph

 저에게는 소프트웨어 개발이 이 ‘마트료시카’ 같습니다. 처음에 저는 아이폰 앱을 만들고 싶었습니다. 단순히 아이폰에서 작동하는 앱을 만들었지만 최근 앱들의 특징이 그러하듯이 네트워크와 의 통신이 필요 했습니다. 네트워크와 통신한다는 것은 개별 서버와 통신한다는 뜻이었고 그 서버는 다른 컴퓨터를 의미하는 것이었습니다. 그때부터 네트워크와 서버에 대한 공부가 시작되었습니다. 그러다가 제가 만든 앱이 네트워크 통신에 적합하지 않다는 것을 알게 되고 또 앱의 구조에 대해서 다시 공부하게 되었습니다. 어느 정도 되었다 싶을 때 서버를 운영할 거면 거기다가 웹사이트도 같이 운영하면 되지 않을까 하는 생각이 들었습니다. 아이폰앱 만 아니라 웹앱도 함께 만들어 서비스한다면 좀 더 사용자의 접근성이 더 좋아질 거라는 판단이었습니다. 그렇게 웹서비스에 대한 공부도 시작했습니다. 그런데 웹서비스에는 너무나 다양한 접근 방법이 있었습니다. 처음에 배운 것은 자바스크립트라는 언어 기반의 Node.js라는 프레임워크였습니다. 커뮤니티도 많고 최근에 많은 사람들이 사용하고 있는 웹프레임워크 였지만 이 프로젝트를 사용하는 내내 알 수 없는 오류와 기능 문제들로 고생했습니다. 간단한 웹서비스를 만들 수는 있었지만 자바스크립트라는 언어에 정을 붙일 수가 없었습니다. 

상당기간의 방황하는 시간을 지난후에 python이라는 언어를 만날 수 있었습니다. 처음에는 웹에 있는 정보들을 크롤링해서 데이터를 모으는 용도로 사용하려고 배운 것이었습니다. 그런데 이 언어를 활용한 웹프레임워크가 있다는 것을 알게 되었습니다.  Flask와 Django였습니다. 처음에는 Flask를 활용해서 서비스를 만드려고 했지만 제가 원하는 기능들을 구현하기 위하는 과정에서 또 여러 가지 알 수도 없고 이해할 수도 없는 문제들에 부딪혀 답보 상태에 빠졌습니다. 그렇게 Django까지 도착하게 되었습니다. 이 안에서는 그래도 어느 정도 제가 원하는 기능을 그나마 간단하게 만들어 낼 수 있었습니다. 그렇게 수개월에 거친 웹서비스 개발에 어느 정도 안정을 가져오는 듯했습니다. 

 개발이 마무리 되면 이 제품을 공개해서 사용자를 모아야 합니다. 서비스를 사용자가 사용할 수 있게 해 주어야 광고를 하든 서비스를 팔든 돈을 벌 수 있기 때문입니다. 간단하게 해결될 줄 알았던 이 ‘배포’는 다른 개발 회사에서는 DEV-OPS라고 불리며 다른 엔지니어분이 담당하고 있을 정도로 어려운 분야였습니다. 이 부분을 또 해결하기 위해 운영체제를 공부하고 네트워크와 웹서버가 어떻게 구성되는지 공부해야 했습니다. 겨우 AWS라고 서버를 대여해 주는 서비스를 찾긴 했지만 이것을 사용하기 위해서는 또 그 서비스에서 제공하는 기술들에 대해서 찾아보고 시행착오를 거쳐야만 했습니다. 

 여기서 그쳤으면 다행이라고 여겼을것 같습니다. 하지만 최근에는 이 서버에 웹사이트를 올리고 관리하는 것도 공부해야 합니다. 도커로 대표되는 container 가상화와 젠킨스로 대표되는 CI/CD 기술입니다. 이 부분에 대해서도 지금 공부를 해나가고 있는 과정입니다. 이게 끝나고 나면 또 어떤 공부가 기다리고 있을지 기대가 되기도 하지만 이제는 좀 지쳐가고 있습니다. 

무언가를 하나 만들어 내는데 이렇게 많은 공부과 과정이 필요하다는 걸 하면서 겨우 겨우 배워 나가고 있습니다. 처음에 단순하게 생각하고 시작했던 많은 것들이 지금 돌이켜 생각해보면 정말 잘 모르고 내렸던 결정들이 많이 있습니다. 하나를 제대로 해나가는 것도 매우 힘든 일인데도 불구하고 다른 기업들에서는 서너 명이 팀으로 하는 일들을 혼자서 해보겠다고 덤빈 것 자체가 무모한 판단이었습니다. 하지만 이제는 후회하는 것도 사치일 뿐입니다. 이제는 앞으로 걸어 나가는 것 외에는 할 수 있는 것이 없습니다. 

 지금의 프로젝트를 만들기 까지 만들어 왔던 갖은 시행착오들을 돌이켜 봅니다. 초심자의 위치에서 당연히 겪어야 했던 시행착오는 아이러니하게도 시행착오를 피하고자 하는 노력에서 비롯된 것들이 많았습니다. 시간을 줄이고자 했던 노력들이 오히려 작업시간을 늘리게 되는 경우도 있었습니다. 어떻게든 자동화시켜서 시간을 절약하기 위해 노력했지만 그 프로젝트의 방향에 따라 자동화된 코드가 오히려 다량의 오류를 발생시키기도 했습니다. 모든 시도는 결국 경험이 되어 지역 안에 자리 잡게 됩니다. 너무 많아서 잊어버리는 경우도 있지만 다시 만나게 되면 금세 해결책을 찾는 저를 보며 어느 정도 성장 했구나 하는 것을 느끼게 됩니다. 

 모든 성장은 도전하는 과정을 통해서 이루어지는것 같습니다. 저같이 평범한 사람은 더욱 그런 도전과 실패의 반복 속에서 앞으로 나아가는 수밖에 없습니다. 이제 또 어제 만들다 만 코드를 점검하기 위해 이 글을 마무리합니다. 

2023.08.11 - [스타트업 도전기/Level0] - 성장은 언제나 힘들다.

 

성장은 언제나 힘들다.

제가 이 일을 시작한 이유는 단순했습니다. ‘내가 하고 싶은 일을 하면서 살고 싶다.’라는 욕망 때문이었습니다. 그런 마음으로 시작한 다양한 일들은 이상하게도 하나 같이 사업의 길로 저를

jisungs.tistory.com

2022.12.22 - [스타트업 도전기/Level0] - 스타트업 도전기 - 필요 없는데요?

 

스타트업 도전기 - 필요 없는데요?

스타트업 도전기 필요 없는데요? 지난 한 달간 저는 열심히 쇼핑몰 홈페이지를 만들었습니다. 거의 제가 쓸 수 있는 거의 모든 시간을 작업에만 몰두했습니다. 더 생산적인 생활을 하기 위해서

jisungs.tistory.com

 

반응형

댓글