스파르타 강의 WIL

[스파르타코딩클럽] 웹개발 종합반 - 4주차 WIL

상상그대로 2022. 10. 25. 11:20

서문

 

 인터넷 코딩 강의 사이트 스파르타 코딩클럽 웹개발 종합반 102기의 4주차 강의를 전부 보고 작성한 개발일지입니다.

 

코드 조각(스니펫) 관리의 필요성을 깨닫다.

 

 스파르타 코딩클럽에서는 지금까지 강의에 필요한 스니펫을 클릭-복사로 제공해주어서 아주 편리하다. 강의를 보면서 따라 칠 필요도 없고, 해당 강의의 강의 노트로 찾아가 복사할 필요도 없다. 템플릿은 미리 제공하여 강의를 듣는 사람이 집중해야할 부분만 집중하도록 영리하게 배려하고 있다.

 모든 프레임워크, 라이브러리, 그 외 여러 개발자 도구는 개발자가 핵심 비즈니스 로직에만 집중하도록 하는 것이 목적이다. 똑같은 부분을 매번 따라하는 건 시간낭비고 생산성을 낮추는 일이다. 스파르타 코딩클럽의 강의를 들어보면, 매번 하는 이야기가 있다.

 

외우지 마라. 이전에 만들어진 걸 가져다 써라.
다 외울 필요 없이 나중에 찾을 수 있을 정도만 되면 된다.

 

 코드를 재활용하는 일은 개발자에겐 필수소양이나 다름없다. 그러니까 필요한 코드를 바로바로 찾아 쓸 수 있도록 잘 관리하는 능력도 중요하다. 나중에는 모듈로 만들어서 Import로 쉽게 가져다쓸 수 있게 만들 수 있을 것이다. 그리고 궁극적으로는 패키지들을 모아놓은 라이브러리에 올려서 코드 한 줄로 설치할 수 있게도 만들 수 있을 것이다.

 스파르타 코딩클럽의 웹개발 종합강의는 참 영리하게도 날 목마르게 했다. 1-3강까지는 기존 파일을 열어보고 다시 붙여넣기를 할 필요가 없을 정도로 정형적이었다. 강의를 듣는 사람마다 부분적으로 달라질만한 코드가 없었으니까.

 

#클라우드 몽고디비 연결 코드
from pymongo import MongoClient
client = MongoClient('mongodb_url')
db = client.dbsparta

 

 데이터베이스에 연결하기 시작한 이후로는 슬슬 개인화된 코드 조각이 나온다. 예를 들면, 몽고디비 연결 url은 각자의 데이터베이스로 연결해야하기에 그렇다. 이외에도 기존에 숙제로 수강생 사이에 달라진 부분도 있다. 그런 탓인지 이번 주차에서는 버튼만으로 코드를 복사하는 그런 친절한 스니펫 복사의 비율이 줄어갔다. 혹은 의도적일지도 모르겠다.

 기존의 작업 파일을 열어 필요한 코드를 찾고 복사하는 일은 번거로웠다. 이전에는 이게 그렇게 불편하게 느껴지지 않았는데 필요한 스니펫을 클릭 한 번만으로 복사 붙여넣기를 하는 것에 익숙해져버린 탓일 것이다. 의학 드라마에서 보면 수술하는 의사가 뭐가 필요하다고 하면, 주변에서 건네주는 듯한 그러한 도움이 익숙해졌다.
 이 강의에서는 파이참을 쓰고 있어서, IDE니까 스니펫 관리 기능도 있지 않을까 찾아보니 스크레치 기능이 있었다. 어떤 프로젝트를 하던간에 스크래치 파일을 따로 빼놓으면 이전 파일을 찾아볼 필요도 없이 바로 쓸 수 있겠다는 생각이 들었다.

 

“가까운 길을 먼 길인 듯 가는 방법을 적보다 먼저 아는 자가 승리한다(先知迂直之計者勝)”

“군쟁(軍爭)의 어려움은 돌아가는 길을 직행하는 길인듯 가고 불리한 우환을 이로움으로 만드는 데 있다. 그 길은 돌기도 하고, 미끼로 적을 유인하기도 하고, 상대보다 늦게 출발해 먼저 도착하기도 한다. 이런 사람이 우직지계를 아는 사람이다.”

≪손자≫ 군쟁편

 

 당장 코딩에만 집중하여 과제를 끝내고 마는 것은 현재로선 시간을 아끼고 신경 쓸 부분을 줄이는 걸지도 모르겠다. 그렇지만 앞으로 긴 개발자 인생을 봐야한다. 지금까지 코딩해온 부분들을 각각 파편화된 프로젝트로 두는 것보다 앞으로 코딩할 여러 프로젝트의 바퀴들로 재조립해두어둔다면 계속해서 발전해나갈 수 있을 것이다. 사람이 어떤 생산적인 일을 할 때에는 밑천이 필요하다. 그 밑천을 평소에 잘 마련해두는 습관이 필요하단 생각이 들었다.

 

한 눈에 보려하지 말고 나눠보자.

 

 자동차를 한 눈에 보고 원리를 이해할 수 있는 사람은 드물다. 그렇지만 자동차의 부품을 하나하나 나누어 원리를 공부한다면 보다 쉽다. 프로그램도 마찬가지다. 복잡한 코드를 한 눈으로 보면 도대체 무슨 코드인지 이해가 되지 않는다. 모든 흐름을 한 눈에 파악하려고 하는 탓이다. 아무래도 복잡한 코드 공포증이 있다면 이러하게 생각할 확률이 높다.

 반성하자면 나도 그랬다. 먼 과거의 일도 아니고 이번 주의 이야기다. 4주차 강의를 처음 접하고 코드를 봤을 때에 이런 생각을 했다.

 

이렇게 복잡한 걸 어떻게 이해하지?

 

 결론적으로 나는 길어진 코드의 양에 겁먹고 이해를 포기했던 것이다. 복잡하다고 생각했던 코드는 잘 나눠서 보면 기존에 배웠던 코드들의 형식 그대로였고, 세부적인 사항만 달라져있었다. 이미 배운 간단한 코드들이 조합되어있는 모습을 보고 이건 안 된다며 포기하고 만 것이다.

 인생에서 두려움이란 위험한 걸 피해가게 해준다. 그렇지만 동시에 스스로가 나아갈 수 있는 길을 포기하게 만들기도 한다. 웹개발 종합반을 들으면서 파이썬과 크롤링, 그리고 정말 기초적인 서버 - 클라이언트 구조 만들기를 배웠다.

 모든 일들은 한 번에 이루어져야하는 법이 없다. 세상에 모든 훌륭한 생산적인 일들은 프로세스를 나누고, 서로 분업하는 등 잘게 나누는 식으로 진행된다. 복잡한 걸 간단하고 기초적인 부분들로 나누는 사고는 개발자에게 참으로 필요하다.

 

정리하며

 

 아무래도 기초적인 부분을 다루는 강의이다보니 배운 부분에 대한 것보다 개발자로서의 인식 변화가 더 중요하게 느껴져 그 부분을 작성해버렸다. 코딩을 잘 모르는 사람들을 위해서 많이 고민한 흔적이 보였다.

 스파르타 코딩클럽의 강의를 지금까지 들어본 바, 해당 사이트의 강의들은 목적이 분명하다. 개발에 필요한 상세한 지식을 수강자에게 주입하지 않는다. 그저 막연한 두려움이라는 안개를 치워버리고, 거기에는 잘 닦인 길이 있다는 사실을 알려준다. 그 길을 함께 따라 걸어준다. 결코 어려운 길이 아니며 너도 쉽게 할 수 있다는 인식을 심어준다.

 스포츠에 흔히 사용되는 말로 위닝 멘탈리티(Winning Mentality)가 있는데 여기에 잘 어울리지 않을까 싶다. 스파르타 코딩클럽은 수강자에게 '할 수 있다는 자신감'을 심어주는 강의라고 생각한다. 동시에 길을 알려주는 길잡이기도 하다.

 만약 코딩에 대한 두려움이 짙게 깔려있어서 시작하기도 전에 지레 포기해버리는 유형의 사람이라면, 스파르타 코딩클럽을 추천한다. 일단 스파르타하게 끌고 가는 강의들을 들으면 어느샌가 성공 경험이 쌓여서 두려움이 걷힐 것이다.